矩阵雅克比迭代算法_第1页
矩阵雅克比迭代算法_第2页
矩阵雅克比迭代算法_第3页
矩阵雅克比迭代算法_第4页
矩阵雅克比迭代算法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、欢迎下载欢迎下载 雅克比迭代实验目的:.学习和掌握线性代数方程组的jacobi迭代法。.运用jacobi迭代法进行计算。方法原理:设方程组Ax=b的系数矩阵A非奇异而且a0a1,2,.,n),将A分裂为iiA=D+L+U,可以使计算简便。其中Ddiag(a,a,,a),1122nnA=D+L+U,其中Ddiag(a,a,,a),1122nn00.0印00.0印a.aaa.0;品0.0;n1n2将方程组n将方程组naxb,i1,2,.n.,乘ijjij以,得到等价的方程组aii实n,简记为xBxf。TOC o 1-5 h z实n,简记为xBxf。x一axi=1,2,ia.ijijj.j.j其中B

2、IDAHID(LU)fDb我们称(x)Bxf为迭代函数。任取初始向量xx(0),按照x(kiBxk(-f形成迭代格式,称这种迭代方法为迭代法。算法描述:Stepi:给定一组x,即初值。Step2:用for循环计算:xk+1=(bi-aijxjaijxj)/aii.jjjStep3:当fabs(xk+1-xk)eps时停止。程序代码:头文件:#includetypedefdoubleDatatype;classMatrixprivate:Datatype*ar;intM;intN;public:Matrix(inta=0,intb=0);Matrix(Matrix&A);Matrix();voi

3、dprint();voidInit();voidJacobi(Matrixb,Matrixx,Matrix&xx);boolcompare(MatrixX);voidchange(Matrixxx);CPP文件:#include#include#include#includeJacobi.h#defineE0.0000001#includeMatrix:Matrix(inta,intb)/构造函数M=a;N=b;ar=(Datatype*)malloc(sizeof(Datatype*)*M);for(inti=0;iM;+i)ari=(Datatype*)malloc(sizeof(Data

4、type)*N);for(intj=0;jN;+j)arij=0;Matrix:Matrix()/析构函数for(inti=0;iM;+i)free(ari);free(ar);Matrix:Matrix(Matrix&A)M=A.M;N=A.N;Datatype*p=(Datatype*)malloc(sizeof(Datatype*)*M);for(inti=0;iM;+i)pi=(Datatype*)malloc(sizeof(Datatype)*N);for(intj=0;jN;+j)pij=A.arij;ar=p;voidMatrix:print()/打印函数for(inti=0;i

5、M;+i)for(intj=0;jN;+j)coutsetw(5)arij;coutendl;voidMatrix:Init()/初始化函数for(inti=0;iM;+i)cout请输入第1+1行数据endl;for(intj=0;jarij;voidMatrix:Jacobi(Matrixb,Matrixx,Matrix&xx)for(inti=0;iN;+i)Datatypesum=0;for(intj=0;jN;+j)if(i=j)continue;sum+=arij*x.arj0;xx.ari0=(b.ari0-sum)/arii;boolMatrix:compare(MatrixX

6、)intflag=0;for(inti=0;iM;+i)for(intj=0;jE)flag=1;break;break;if(flag=1)returnfalse;程序需继续迭代elsereturntrue;迭代结束voidMatrix:change(Matrixxx)for(inti=0;iM;+i)for(intj=0;jN;+j)arij=xx.arij;主程序:#includeJacobi.hvoidmain()introw;cout*row;MatrixA(row,row),b(row,1),x(row,1),xx(row,1);cout请输入系数矩阵endl;A.Init();/系数cout请输入矩阵bendl;b.Init();/bcout请输入迭代初始值endl;x.Init();/迭代初始值while(1)A.Jacobi(b,x,xx);if(pare(xx)xx.print();break;x.change(x

温馨提示

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

评论

0/150

提交评论