高斯-赛德尔迭代法解线性方程组.docx

上传人:PIYPING 文档编号:10956730 上传时间:2021-06-14 格式:DOCX 页数:6 大小:24.04KB
返回 下载 相关 举报
高斯-赛德尔迭代法解线性方程组.docx_第1页
第1页 / 共6页
高斯-赛德尔迭代法解线性方程组.docx_第2页
第2页 / 共6页
高斯-赛德尔迭代法解线性方程组.docx_第3页
第3页 / 共6页
高斯-赛德尔迭代法解线性方程组.docx_第4页
第4页 / 共6页
高斯-赛德尔迭代法解线性方程组.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《高斯-赛德尔迭代法解线性方程组.docx》由会员分享,可在线阅读,更多相关《高斯-赛德尔迭代法解线性方程组.docx(6页珍藏版)》请在三一文库上搜索。

1、xiai1i -1i -1ia数值分析实验五班级: 10 信计二班学号:59姓名:王志桃分数:一实验名称高斯-赛德尔迭代法解线性方程组二实验目的1. 学会利用高斯赛德尔方法解线性方程组2. 明白迭代法的原理3. 对于大型稀疏矩阵方程组适用于迭代法比较简单 三实验内容利用 Gauss-Seidel 迭代法求解下列方程组8 x -3 x +2 x =20 1 2 34x +11x -1x =33 1 2 36 x +3 x +12 x =36 1 2 3四、算法描述,其中取 (0) =0 。由 Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用当前最新的迭代值,即在计算

2、第i个分量xi( k +1)时,用最新分量x1( k +1),x2( k +1)xi-1( k +1)代替旧分量x1( k ),x2( k )xi -1( k ),就得到所谓解方程组的 Gauss-Seidel 迭代法。其迭代格式为x(0)=( x (0), x1(0),x(0) 2 n)T(初始向量),x ( i+1) i1 i -1 i-1 = (b - a x ( k +1) - a xij j ijii j =1 j =i+1( k )j)( k =0,1,2,;i=0,1,2,n)或者写为五、 编码#include#includex( k +1)i=x ( k ) ix ( i +1

3、) +Dx ( k =k =0,1,2,;i=0,1,2,n) i= (b -a x ( k +1) -a x ( k ) )ij j ij jii j =1 j =i+1#include #include #define MAX_n 100#define PRECISION 0.0000001#define MAX_Number 1000void VectorInput(float x,int n) /输入初始向量int i;for(i=1;i=n;+i)printf(x%d=,i);scanf(%f,&xi);void MatrixInput(float AMAX_n,int m,int

4、n) /输入增广矩阵int i, j;printf(n=Begin input Matrix elements=n);for(i=1;i=m;+i)printf(Input_Line %d : ,i);for(j=1;j=n;+j)scanf(%f,&Aij);void VectorOutput(float x,int n) /输出向量int i;for(i=1;i=n;+i)printf(nx%d=%f,i,xi);int IsSatisfyPricision(float x1,float x2,int n) /判断是否在规定精度内 int i;for(i=1;iPRECISION) ret

5、urn 1;return 0;int Jacobi_(float AMAX_n,float x,int n) /具体计算 float x_formerMAX_n;int i,j,k;printf(nInput vector x0:n);VectorInput(x,n);k=0;dofor(i=1;i=n;+i)printf(nx%d=%f,i,xi);x_formeri=xi;printf(n);for(i=1;i=n;+i)xi=Ain+1;for(j=1;jPRECISION)xi/=Aii;elsereturn 1;+k;while(IsSatisfyPricision(x,x_form

6、er,n) & k=MAX_Number)return 1;elseprintf(nG-S %d times!,k);return 0;int main() /主函数int n;float AMAX_nMAX_n,xMAX_n;printf(nInput n=);scanf(%d,&n);if(n=MAX_n-1)printf(n007n must %d!,MAX_n);exit(0);MatrixInput(A,n,n+1);if(Jacobi_(A,x,n)printf(nG-S Failed!);elseprintf(nOutput Solution:);VectorOutput(x,n);printf(nn007Press any key to quit!n); getch();通过实验使我更加熟练的掌握和使用高斯赛贝尔迭代法来解线性方程组,而且这个方法 可以用来解大型的稀疏矩阵,是的解线性方程组更加的便捷。但是,这个实验很繁琐,必须 要仔细的对待。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1