数值分析实验四.docx

上传人:牧羊曲112 文档编号:5306005 上传时间:2023-06-24 格式:DOCX 页数:8 大小:283.34KB
返回 下载 相关 举报
数值分析实验四.docx_第1页
第1页 / 共8页
数值分析实验四.docx_第2页
第2页 / 共8页
数值分析实验四.docx_第3页
第3页 / 共8页
数值分析实验四.docx_第4页
第4页 / 共8页
数值分析实验四.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数值分析实验四.docx》由会员分享,可在线阅读,更多相关《数值分析实验四.docx(8页珍藏版)》请在三一办公上搜索。

1、数值分析课程实验指导书实验四解线性方程组的迭代法一、问题提出对实验四所列目的和意义的线性方程组,试分别选用Jacobi迭代法, Gauss-Seidel迭代法和SOR方法计算其解。二、要求1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,如8 =10-3,10-4,10一5由迭代次数体会该迭代法的收敛快慢;3、对方程组2, 3使用SOR方法时,选取松弛因子=0.8, 0.9,1,1.1,1.2等,试 看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。三、目的和意义1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法

2、比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、 体会上机计算时,终止步骤|x(m)-X (给予的迭代次数),对迭代法敛散性的意义;4、体会初始解x0,松弛因子的选取,对计算结果的影响。四、流程图设计主程序流程图开始口数组维数,入系数矩阵,b右 端项,e精度,松弛因子n、 A、 b、e、r函用三种不同的方法解方程Jacobi、 GaussSeidol sor结束五、程序代码#include using namespace std;#define N 40 const int n=10; int jacobi(float *p,float b,float X,float x

3、,int n); int GS(float *p,float b,float X,float x,int n); int SOR(float *p,float b,float X,float x,int n);void print(float *a,int r);void main()(float A1010=4,2,-3,-1,2,1,0,0,0,0,8.6, -5,-3,6,5,0,1,0,0,4.2, -2,-1,3,2,-1,1,9,4, 0,-2,1,5,-1,3,-1,1,9,4, -4,2,6,-1,6,7,-3,3,2,3,8.6, -8,5,7,17,2,6,-3,5, 0,

4、2,-1,3,-4,2,5,3,0,1, 16,10,-11,-9,17,34,2,-1,2,2,4.6.2, -7,13,9,2,0,12,4,0,0,-1,8,-3,-24,-8,6,3,-1;float a10= 5 ,12 ,3 ,2 ,3,46 ,13 ,38 ,19,-21); float X110=0,0,0,0,0,0,0,0,0,0);float x110;float B88=4,2,-4,0,2,4,0,0,2.2, -1,-2,1,3,2,0, -4,-1,14,1,-8,-3,5,6,0,-2,1,6,-1,-4,-3,3, 2,1,-8,-1,22,4,-10,-3,

5、4.3, -3,-4,4,11,1,-4, 0,2,5,-3,-10,1,14,2,0,0,6,3,-3,-4,2,19);float b8=0,-6,6,23,11,-22,-15,45);float X28=0,0,0,0,0,0,0,0);float x28;float C1010=4,-1,0,0,0,0,0,0,0,0, -1,4,-1,0,0,0,0,0,0,0, 0,-1,4,-1,0,0,0,0,0,0, 0,0,-1,4,-1,0,0,0,0,0, 0,0,0,-1,4,-1,0,0,0,0, 0,0,0,0,-1,4,-1,0,0,0, 0,0,0,0,0,-1,4,-1,

6、0,0, 0,0,0,0,0,0,-1,4,-1,0, 0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4;float c10=7,5,-13,2,6,-12,14,-4,5,-5;float x310;float X310=0,0,0,0,0,0,0,0,0,0;float *p3;p0=&A00;p1=&B00;p2=&C00;coutJacobi迭代法解第一个方程:endl;jacobi(p0,a,X1,x1,10);coutJacobi迭代法解第二个方程:endl;jacobi(p1,b,X2,x2,8);coutJacobi迭代法解第三个方程:end

7、l;jacobi(p2,c,X3,x3,10);coutGauss-Seidel 迭代法解第一个方程:endl;GS(p0,a,X1,x1,10);coutGauss-Seidel 迭代法解第二个方程:endl;GS(p1,b,X2,x2,8);coutGauss-Seidel 迭代法解第三个方程:endl;GS(p2,c,X3,x3,10);coutSOR迭代法解第一个方程:endl;SOR(p0,a,X1,x1,10);coutSOR迭代法解第二个方程:endl;SOR(p1,b,X2,x2,8);coutSOR迭代法解第三个方程:endl;SOR(p2,c,X3,x3,10);int j

8、acobi(float *p,float b,float X,float x,int n)int k,i,j;float m,R,r,e;coute;for(k=0;kN;k+)R=0;for(i=0;in;i+)m=0;for(j=0;jn;j+)m=m+(*(p+i*n+j)*Xj;xi=Xi+(bi-m)/(*(p+i*n+i);r=xi-Xi;if(rR)R=r;if(R0)(print(x,n);cout ”迭代次数为:k+1endl;return k;for(j=0;j10;j+)Xj=xj;print(x,n);cout迭代次数为:kendl;cout方程解发散,无法用Jacob

9、i方法解此方程!endl;return 0;int GS(float *p,float b,float X,float x,int n)(int i,j,k;float t,R,r,e;coute;for(k=0;kN;k+)(for(i=0;in;i+)(t=0;for(j=0;jn;j+)(if(ji)t+=(*(p+i*n+j)*Xj;xi=(bi-t)/(*(p+i*n+i);for(i=0;iR)R=r;if(Rv=e&R0)print(x,n);cout迭代次数为:k+1endl;return k;for(j=0;j8;j+)Xj=xj;print(x,n);cout迭代次数为:k

10、endl;coutvv方程解发散,无法用Gauss-Seidel方法解此方程!endl;return 0;int SOR(float *p,float b,float X,float x,int n)inti,j,k;float t,R,r,e,w;cout请输入松弛因子w(0w2):;cinw;cout请输入精度e:;cine;for(i=0;in;i+)xi=Xi;for(k=0;kN;k+)R=0;for(i=0;in;i+)t=0;for(j=0;jn;j+)t+=(*(p+i*n+j)*xj;r=w*(bi-t)/(*(p+i*n+i);xi+=r;if(rR)R=r;print(x

11、,n);cout ”迭代次数为:k+1endl;return k;print(x,n);cout迭代次数为:kendl;cout方程解发散,无法用XOR方法解此方程!endl;return 0;void print(float *a,int n)(int j;float *t=a;coutx=(;for(j=0;jn-1;j+)cout*(t+j),;cout*(t+j)endl;六、程序运行截图七、小结及体会经过这次试验,通过上机计算体会迭代法求解线性方程组的特点,并能和消去 法比较,并运用所学的迭代法算法,解决各类线性方程组,编出算法程序。切实 体会到了上机计算时,终止步骤|k(k +1)-4(k (予给的迭代次数),3

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备2025010119号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000987号