ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:425.97KB ,
资源ID:3026813      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3026813.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(新数值分析报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

新数值分析报告.docx

1、新数值分析报告微软中国此页不打印键入文档副标题微软用户选取日期课题一: 线性方程组的迭代法一、实验内容1、设线性方程组=x= ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 ) 2、设对称正定阵系数阵线方程组= x = ( 1, -1, 0, 2, 1, -1, 0, 2 ) 3、三对角形线性方程组 = x= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 ) 试分别选用Jacobi 迭代法,Gauss-Seidol迭代法和SOR方法计算其解。二、实验要求1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,如由迭代次数体会该迭代法的

2、收敛快慢;3、对方程组2,3使用SOR方法时,选取松弛因子=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。三、目的和意义1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,终止步骤(予给的迭代次数),对迭代法敛散性的意义;4、体会初始解 x,松弛因子的选取,对计算结果的影响。四、流程图设计1、主程序流程图 图1-1 主程序流程图2、Jacobi迭代算法流程:图1-2 Jacobi 迭代法流程图3、Gauss-Se

3、idel迭代算法流程同Jacobi算法,迭代关系式为 图1-3 Gauss-Seidol迭代法流程图4、SOR迭代算法: 图1-4 SOR迭代法流程图五、程序代码#includeusing namespace std; #define N 40const int n=10;int jacobi(float *p,float b,float X,float x,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

4、*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,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=7,5,-13,2,6,

5、-12,14,-4,5,-5; 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, 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; floa

6、t 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,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; flo

7、at 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迭代法解第三个方程:endl; jacobi(p2,c,X3,x3,10); coutGauss-Seidel迭代法解第一个方程:endl; GS(p0,a,X1,x1,10); coutGauss-Seidel迭代法解第二个方程:endl; GS(p

8、1,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 jacobi(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

9、(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方程解发散,无法用Jacobi方法解此方程!endl; return 0;int GS(float *p,float b,float X,float x,int n) int i,j,k; fl

10、oat 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;i10;i+) r=xi-Xi; if(rR) R=r; if(R0) print(x,n); cout迭代次数为:k+1endl; return k; for(j=0;j8;j+) Xj=xj; print(x,n); cout迭代次数为:kendl; cout方程解发散,无法用Gauss-Seidel方法解此方程!endl; return

11、0;int SOR(float *p,float b,float X,float x,int n) int i,j,k; float t,R,r,e,w; cout请输入松弛因子w(0ww; coute; 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; if(R0) print(x,n); cout迭代次数为:k+1endl; return k; print(x,n)

12、; 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;六、程序运行截图七、小结及体会 经过这次试验,我通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较,并运用所学的迭代法算法,解决各类线性方程组,编出算法程序。切实体会到了上机计算时,终止步骤(予给的迭代次数),对迭代法敛散性的意义,了解了初始解 x,松弛因子的选取,对计算结果的影响。在试验中,不同的系数矩阵对上述三种迭代方法有很大影响,会导致结果发散无法得到正常结果。三种算法的收敛,SOR方法最大,其次Gauss-Seidel方法,Jacobi方法最小,松弛因子的不同也和收敛速度密切相关。课题二:数值积分一、实验内容 选用复合

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1