网站大量收购闲置独家精品文档,联系QQ:2885784924

数值分析与试验.DOC

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析与试验

数值分析与实验 ????2010-11-20 14:02:00???论文代写???作者:佚名??? ???? 论文关键词: 列主元高斯消去法? 雅可比法? 高斯-赛德尔迭代法? 幂法 论文摘要:本文通过实例对线性方程组数值解法和矩阵的特征值及特向量的计算进行了探讨。在对线性方程组数值解法的讨论下用到了列主元高斯消去法、雅可比法和高斯-赛德尔迭代法。正是高斯消去法在消元时存在一些必须的条件,才启发我们通过列主元高斯消去法来对线性方程组数值解法作进一步的研究,达到了很好的的效果。同时用雅可比法和高斯-赛德尔迭代法对相类似的问题的探讨来比较它们的优劣,使我们在分析问题时能更好的把握方法。在求矩阵按模最大的特征值及对应特征向量时,本文用到了幂法,可以使现实中很多复杂的计算简单。 第一章:线性方程组数值解法 实验目的 熟悉求解线性方程组的有关理论和方法 ;会编制列主元消去法,雅可比及高斯-赛德尔迭代法的程序 ;通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。 实验内容 列主元高斯消去法求解线形方程组; 雅可比法和高斯-赛德尔迭代法解方程组; 1.1? 题目:列主元高斯消去法求解线形方程组 方程组为: 1.1.1? 列主元高斯消去法算法 将方程用增广矩阵 表示 1)??????????? 消元过程 对k=1,2,….,n-1 1 选主元,找 使得 2 如果 则矩阵A奇异,程序结束;否则执行3 3 如果 则交换第k行与第 行对应元素位置, j=k,…,n+1 4 消元,对i=k+1,…,n计算 对j=k+1,…,n+1计算 2)? 回代过程 1 若 则矩阵A奇异,程序结束;否则执行2 2 ?;对i=n-1,…2,1计算 #include #include void ColPivot(float *c,int n,float x[]) ?{ int i,j,t,k; ? float p; ? for(i=0;i=n-2;i++) {k=i; for(j=i+1;j=n-1;j++) if(fabs(*(c+j*(n+1)+i))(fabs(*(c+k*(n+1)+i))))k=j; ? if(k!=i) ? for(j=i;j=n;j++) ?? { ??? p=*(c+i*(n+1)+j); ??? *(c+i*(n+1)+j)=*(c+k*(n+1)+j); ??? *(c+k*(n+1)+j)=p; ?? } for(j=i+1;j=n-1;j++) { ? p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i)); for(t=i;t=n;t++)*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t)); } } ? for(i=n-1;i=0;i--) ? { ? for(j=n-1;j=i+1;j--) ??? (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j)); ? x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i)); ? } } void main() { ?void ColPivot(float*,int,float[]); ?int i; ?float x[4]; ?float c[4][5]={1,-1,2,-1,-8,2,-2,3,-3,-20,1,1,1,0,-2,1,-1,4,3,4,}; ColPivot(c[0],4,x); for(i=0;i=3;i++)printf(x[%d]=%f\n,i,x[i]); } 1.1.3? 输出结果 1.1.4结果分析 从输出结果可以得到 =-6.999999,=3.000000, =2.000000,=2.000000 从结果和过程可以知道这种方法一般能保证舍入误差不扩散,这个方法基本上是稳定的。 1.2? 题目? 雅可比法解方程组 方程组为:? 1.2.1? 雅可比迭代法算法 设方程组Ax=b的系数矩阵的对角线元素(i=1,2,…,n),M为迭代次数容许的最大值 为容许误差。 1 取初始向量 令k=0. 2 对i=1,2,…,n计算 3 如果则输出结果;否则执行4 4 如果则不收敛,终止程序;否则,转2 1.2.2?? 程 序 #include #include #define eps 1e-6 #define max 100 void Jacobi(float *a,int n,float x[]) { ? int i,j,k=0; ? float epsilon,s; ? float *y= new float [n]; ? for(i=0;i ? while(1) { ? epsilon=0; ? k++; ? for(i=0;iN;I++) P

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档