C++-数值分析列主元高斯消去法-列主元LU分解法-Jacobi迭_第1页
C++-数值分析列主元高斯消去法-列主元LU分解法-Jacobi迭_第2页
C++-数值分析列主元高斯消去法-列主元LU分解法-Jacobi迭_第3页
C++-数值分析列主元高斯消去法-列主元LU分解法-Jacobi迭_第4页
C++-数值分析列主元高斯消去法-列主元LU分解法-Jacobi迭_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 temp=temp+Aij*Yj;Yi=Bi-temp;/求解UX=YXN-1=YN1/AN1N1;for(i=N-2;i=0;i)doubletemp=0;for(intj=i+1;jN;j+)temp=temp+Aij*Xj;Xi=(Yitemp)/Aii;/打印Xcout线性方程组的解(XI,X2,X3Xn)为:endl;for(i=0;iN;i+)coutXi;运行结果截图:0-1001kl2-1BB0-12-1100-126關性方程组的解(Hi,X2,X3Xn)申;1.21.41.6Q.8PressQnykeytocontinue7简单迭代法(Jacobi迭代):测试矩阵为:=取精

2、度为esp=0.001,最大迭代次数M=100源代码:Jacobi.cpp#include#include#defineN4/矩阵的维数,可按需更改staticdoubleANN=2,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2;/系数矩阵staticdoubleBN=1,0,1,0;/右端项staticdoubleYN;/输出比较项staticdoubleYN;staticdoubleXN;/输出项staticdoubleGN;/X=BX+G的G矩阵inti,j,k;/计数器doubleeps=0.001;intM=100;booldistance()/求两输出项的

3、差的范数是否满足精度要求doubletemp=0;for(i=0;ieps)returnfalse;elsereturntrue;/满足精度要求则结束程序voidmain()/形成迭代矩阵B,存放到A中for(i=0;iN;i+)if(fabs(Aii)eps)cout打印失败endl;return;doubleT=Aii;for(j=0;jN;j+)Aij=-Aij/T;Aii=0;Gi=Bi/T;intcounter=0;while(counterM)/迭代for(i=0;iN;i+)doubletemp=0;for(j=O;jN;j+)temp=temp+Aij*Yj;Xi=Gi+tem

4、p;if(distance()=true)break;else/交换X,Y向量;for(i=0;iN;i+)Yi=Xi;counter+;/打印Xcout迭代次数为:counter次。该线性方程组的解(XI,X2,X3Xn)为:endl;for(i=0;iN;i+)coutXi;运行结果截图:迭忧次数为:阳灰,该线性方程组的解壯,就,題而为:1.199221.398981.598740.799371Pressanyke/tocontinue8Seidel迭代:测试矩阵为:=取精度为esp=0.001,最大迭代次数M=100源代码:Seidel.cpp#includeiostream.h#inc

5、lude#defineN4/矩阵的维数,可按需更改staticdoubleANN=2,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2;/系数矩阵staticdoubleBN=1,0,1,0;/右端项staticdoubleYN;/输出比较项staticdoubleXN;/输出项staticdoubleGN;/X=BX+G的G矩阵inti,j,k;/计数器doubleeps=0.001;intM=100;booldistance()/求两输出项的差的范数是否满足精度要求doubletemp=0;for(i=0;ieps)returnfalse;elsereturntrue

6、;/满足精度要求则结束程序voidmain()/形成迭代矩阵B,存放到A中for(i=0;iN;i+)if(fabs(Aii)eps)cout打印失败endl;return;doubleT=Aii;for(j=0;jN;j+)Aij=-Aij/T;Aii=0;Gi=Bi/T;intcounter=0;while(counterM)/迭代for(i=0;iN;i+)doubletemp=0;for(j=O;jN;j+)temp=temp+Aij*Xj;Xi=Gi+temp;if(distance()=true)break;else/交换X,Y向量;for(i=0;iN;i+)Yi=Xi;coun

7、ter+;cout迭代次数为:counter次。该线性方程组的解(XI,X2,X3Xn)为:endl;for(i=0;iN;i+)coutXi;9松弛法(SOR迭代)测试矩阵为:取松弛系数w=1.46=取精度为esp=0.001,最大迭代次数M=100源代码:SOR.cpp#includeiostream.h#includemath.h#defineN4/矩阵的维数,可按需更改staticdoubleANN=2,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2;/系数矩阵staticdoubleBN=1,0,1,0;/右端项staticdoubleYN;/输出比较项sta

8、ticdoubleXN;/输出项staticdoubleGN;/X=BX+G的G矩阵inti,j,k;/计数器doubleeps=0.001;/最小容许误差intM=100;/最大容许比较次数doublew=1.46;/松弛因子booldistance()/求两输出项的差的范数是否满足精度要求doubletemp=0;for(i=0;ieps)returnfalse;elsereturntrue;/满足精度要求则结束程序voidmain()/形成迭代矩阵B,存放到A中for(i=0;iN;i+)if(fabs(Aii)eps)cout打印失败endl;return;doubleT=Aii;for(j=0;jN;j+)Aij=-w*Aij/T;Aii=1-w;Gi=w*Bi/T;intcounter=0;while(counterM)/迭代for(i=0;iN;i+)doubletemp=0;for(j=0;jN;j+)temp=temp+Aij*Xj;Xi=Gi+temp;if(distance()=true)break;else/交换X,Y向量;for(i=0;iN;i+)Yi=Xi;counter+;cout迭代次数为:cou

温馨提示

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

评论

0/150

提交评论