资源描述:
《数值分析与实验的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数值分析与实验的论文 论文关键词:列主元高斯消去法雅可比法高斯-赛德尔迭代法幂法 论文摘要:本文通过实例对线性方程组数值解法和矩阵的特征值及特向量的计算进行了探讨。在对线性方程组数值解法的讨论下用到了列主元高斯消去法、雅可比法和高斯-赛德尔迭代法。正是高斯消去法在消元时存在一些必须的条件,才启发我们通过列主元高斯消去法来对线性方程组数值解法作进一步的研究,达到了很好的的效果。同时用雅可比法和高斯-赛德尔迭代法对相类似的问题的探讨来比较它们的优劣,使我们在分析问题时能更好的把握方法。在求矩阵按模最大的特征值及
2、对应特征向量时,本文用到了幂法,可以使现实中很多复杂的计算简单。 第一章:线性方程组数值解法 实验目的 熟悉求解线性方程组的有关理论和方法;会编制列主元消去法,雅可比及高斯-赛德尔迭代法的程序;通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。 实验内容 列主元高斯消去法求解线形方程组; 雅可比法和高斯-赛德尔迭代法解方程组; 1.1题目:列主元高斯消去法求解线形方程组 方程组为: 1.1.1列主元高斯消去法算法 将方程用增广矩阵表示 1)消元过程 对k=1,2,….,n-1
3、 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#includevoidcolpivot(float*c,intn,floatx[]){inti,j,t,k;floatp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j
4、++)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*(
5、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));}}voidmain(){voidcolpivot(float*,int,float[]);inti;floatx[4];floatc[4][5]={1,-1,2,-1,-8,2,-2,3,-3,-20,1,1,1,0,-2,1,-1,4,3,4
6、,};colpivot(c[0],4,x);for(i=0;i<=3;i++)printf("x[%d]=%f",i,x[i]);} 1.1.3输出结果 1.1.4结果分析 从输出结果可以得到=-6.999999,=3.000000, =2.000000,=2.000000 从结果和过程可以知道这种方法一般能保证舍入误差不扩散,这个方法基本上是稳定的。.cOm 1.2题目雅可比法解方程组 方程组为: 1.2.1雅可比迭代法算法 设方程组ax=b的系数矩阵的对角线元素(i=1,2,
7、…,n),m为迭代次数容许的最大值为容许误差。 1取初始向量令k=0. 2对i=1,2,…,n计算 3如果则输出结果;否则执行4 4如果则不收敛,终止程序;否则,转2 1.2.2程序#include#include#defineeps1e-6#definemax100voidjacobi(float*a,intn,floatx[]){inti,j,k=0;floatepsilon,s;float*y=neax){printf("diedaifasan");return;}}deletey;}voidm
8、ain(){sinti;floata[4][5]={10,-1,2,0,-11,0,8,-1,3,-11,2,-1,10,0,6,-1,3,-1,11,25};floatx[4];jacobi(a[0],4,x);for(i=0;i<4;i++)printf("x[%d]=%f",i,x[i]);} 1.2.3输出结果 1.2.4结果分析 迭代次数增加时,精度越高。