Gauss-Seidel迭代法求解线性方程组_第1页
Gauss-Seidel迭代法求解线性方程组_第2页
Gauss-Seidel迭代法求解线性方程组_第3页
Gauss-Seidel迭代法求解线性方程组_第4页
Gauss-Seidel迭代法求解线性方程组_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、问题描述用 Gauss-SeideGauss-Seide 迭代法求解线性方程组由 JacobiJacobi 迭代法中,每一次的迭代只用到前一次的迭代值。使用了两倍的存储空间,浪(k1)费了存储空间。假设每一次迭代充分利用当前最新的迭代值,即在计算第i个分量xi时,(k 1) (k 1)(k 1)(k)(k)(k)用最新分量x1, x2,xi-1代替旧分量x1, x2,xi -1,可以起到节省存储空间的作用。这样就得到所谓解方程组的Gauss-SeidelGauss-Seidel 迭代法。算法设计将A分解成A =LD U ,那么Ax=b等价于(LDU)x = b贝 U U Gauss-Seide

2、lGauss-Seidel 迭代过程Dx(k1)WLx(k1)3故(D -L)x(k1)=b Ux(k)假设设(D L)存在,那么x(k1)=(D _L)/Ux(k)(D -L)/b1一 _1G =(D -L) U , f =(D -L) b那么 Gauss-SeidelGauss-Seidel 迭代公式的矩阵形式为x(k1)=Gx(k)f其迭代格式为IT17xi(i弋=(bi-aijx(k7aijxjk)(k=0,1,2,;i=0,1,2,n)aiij1j 1或者x(k1)=xi(k)xi(k =k =0,1,2,;i =0,1,2,n)i 4i 4x(i力= (b _ aijx(kH1)-

3、Z aijx(k)aiij+j才书x(0)=(x1(0),x20),(0)T(初始向量),程序框图四. 结果显示TestBenchTestBench利用Gauss-Seidel迭代法求解以下方程组工5xi2x2X3=-12)-x1+4x2+2x3=20 ,其中取x=1、2x1-3x2+I0 x3=3运行程序依次输入:1 .万阵维数2.增广矩阵系数3 .初始向量等数敷拒近喜数系拒矩矩入广广广前胃胃固初始向量l2=iCjwind。岂m 3 2cmd.exe#include #include #include #include #define MAX_n 100#define PRECISION 0

4、.0000001#define MAX_Number1000void VectorInput( float x, int n) /输入初始向量int i;for (i=1;i=n;+i)得到:迭代 1212 次后算出x1x1 = = -4.0-4.0 x2x2 = = 3.03.0 x3x3 = = 2.02.0国臼做I I2J-3.7500B02J-3.7500B01313 J J T T.师号图C3C3 2,043752,04375U U J3*y7137SJ3*y7137Sf2)-2.Tfi*96?f2)-2.Tfi*96?V31=l.9S126.9S126 6 6LILI J-J-1.

5、1.斗丁筌414121-3.M5AB721-3.M5AB73J-2.3J-2. ffi90ffi90l l口 一明g gd dIBIBF21-2.?9?F21-2.?9? 9595C31=2C31=2B BO0217O0217程序printf( x%d= ,i);scanf( %f ,&xi);void MatrixInput( float AMAX_n, int m, int n) /输入增广矩阵int i, j;printf( n输入系数矩阵:n );for (i=1;i=m;+i)printf( 增广矩阵行数%d : ,i);for (j=1;j=n;+j)scanf( %f ,

6、&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) return 1;return 0;int Jacobi_( float AMAX_n, float x, int n) /具体计算float x_formerMAX_n;int i,j,k;printf( n初始向量x0:n )

7、;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_former,n) & k=MAX_Number) return 1;elseprintf( nGauss-Seidel迭代次数为%d次 ,k);return 0;int main() /主函数int n;float AMAX_nMAX_n,xMAX_n;printf( n方阵维数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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论