《数值分析与实验.doc》由会员分享,可在线阅读,更多相关《数值分析与实验.doc(4页珍藏版)》请在三一办公上搜索。
1、数值分析与实验文章来源 毕业论文网 论文关键词: 列主元高斯消去法 雅可比法 高斯赛德尔迭代法 幂法论文摘要:本文通过实例对线性方程组数值解法和矩阵的特征值及特向量的计算进行了探讨。在对线性方程组数值解法的讨论下用到了列主元高斯消去法、雅可比法和高斯赛德尔迭代法。正是高斯消去法在消元时存在一些必须的条件,才启发我们通过列主元高斯消去法来对线性方程组数值解法作进一步的研究,达到了很好的的效果。同时用雅可比法和高斯赛德尔迭代法对相类似的问题的探讨来比较它们的优劣,使我们在分析问题时能更好的把握方法。在求矩阵按模最大的特征值及对应特征向量时,本文用到了幂法,可以使
2、现实中很多复杂的计算简单。第一章:线性方程组数值解法实验目的熟悉求解线性方程组的有关理论和方法 ;会编制列主元消去法,雅可比及高斯-赛德尔迭代法的程序 ;通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。实验内容列主元高斯消去法求解线形方程组;雅可比法和高斯赛德尔迭代法解方程组;1.1 题目:列主元高斯消去法求解线形方程组 方程组为: 1.1.1 列主元高斯消去法算法 将方程用增广矩阵 表示1) 消元过程对k=1,2,.,n-1
3、 1 选主元,找 使得 2 如果 则矩阵A奇异,程序结束;否则执行33 如果 则交换第k行与第 行对应元素位置, j=k,n+14 消元,对i=k+1,n计算 对j=k+1,n+1计算 2) 回代过程1 若 则矩阵A奇异,程序结束;否则执行22 ;对i=n-1,2,1计算 1.1.2 程 序#include <stdio.h>#include <math.h>void ColPivot(float *c,int n,float x) int i,j,t,k; float p; for(i
4、=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
5、;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)-=xj*(*(c+i*(n+1)+j); xi=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i); void main() void ColPivot(float*,int,float); int i; float x4; float c45=1,-1,2,-1,-8,2,-2,3,-3,-20,1,1,1,0,-2,1,-1,4,3,4,;ColPivot(c0,4,x);for(i=0;i<=3;i+)printf(“x%d=%fn”,i,xi);1.1.3 输出结果1.1.4结果分析从输出结果可以得到 =-6.999999, =3.000000, =2.000000, =2.000000从结果和过程可以知道这种方法一般能保证舍入误差不扩散,这个方法基本上是稳定的。