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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(迭代法解线性方程组数值分析实验报告.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

迭代法解线性方程组数值分析实验报告.doc

1、 数学与计算科学学院 《数值分析 》课程设计 题 目: 迭代法解线性方程组 专 业: 信息与计算科学 学 号: 1309302-24 姓 名: 谭 孜 指导教师: 郭 兵 成 绩: 二零一六年 六月 二十日 一 、前言:(目的和意义) 1.实

2、验目的  ①掌握用迭代法求解线性方程组的基本思想和步骤。 ②了解雅可比迭代法,高斯-赛德尔法和松弛法在求解方程组过程中的优缺点。  2.实验意义     迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,它是解高阶稀疏方程组的重要方法。迭代法的基本思想是用逐次逼近的方法求解线性方程组。比较雅可比迭代法,高斯-赛德尔迭代方法和松弛法,举例子说明每种方法的试用范围和优缺点并进行比较。 二、数学原理: 设有方程组 …① 将其转化为等价的,便于迭

3、代的形式 …② (这种转化总能实现,如令), 并由此构造迭代公式 …③ 式中B称为迭代矩阵,f称为迭代向量。对任意的初始向量,由式③可求得向量序列,若,则就是方程①或方程②的解。此时迭代公式②是收敛的,否则称为发散的。构造的迭代公式③是否收敛,取决于迭代矩阵B的性 1.雅可比迭代法基本原理 设有方程组 …①

4、 矩阵形式为,设系数矩阵A为非奇异矩阵,且 从式①中第i个方程中解出x,得其等价形式 …② 取初始向量,对式②应用迭代法,可建立相应的迭代公式: …③ 也可记为矩阵形式: …④ 若将系数矩阵A分解为A=D-L-U, 式中 ,

5、 , 。 则方程Ax=b变为 得 于是 于是式中④中的 。 式③和式④分别称为雅克比迭代法的分量形式和矩阵形式,分量形式用于编程计算,矩阵型式用于讨论迭代法的收敛性。 2.高斯—赛德尔迭代法 高斯—赛德尔(Gauss-Seidel)迭代法,其迭代公式为 (i=1,2,…,n) 也可以写成

6、矩阵形式 仍将系数矩阵A分解为 则方程组变为 得 将最新分量代替为旧分量,得 即 于是有 所以 3.超松弛迭代法 设已知第k次迭代向量,及第k+1次迭代向量的前i-1个分量,(j=1,2,…i-1),现在研究如何求向量的第i个分量。 首先,有高斯—赛德尔迭

7、代法求出一个值,记为 (i=1,2,…n) 再将第k次迭代向量的第i个分量与进行加权平均, 得,即: 于是的SOR迭代公式 (i=1,2,…n) …① 或 (i=1,2,…n) …② 当=1时,式①即为高斯—赛德尔迭代法; 当0<<1时,式①称为低松弛方法,当某些方程组用高斯—赛德尔迭代法不收敛时,可以用低松弛方法获得收敛; 当>1时,式①称为超松弛方法,可以用来提高收敛速度。 将式②写成矩阵的形式,得:

8、 即 于是得SOR迭代的矩阵表示 式中 三、 举例说明及代码 例1:解下面方程组.(雅克比迭代方法、高斯-赛德尔和松弛法的比较) 解:先计算迭代矩阵: BJ与BG的特征值跟收敛半径为 所以,用雅可比迭代法求解,迭代过程收敛,而用高斯-塞德尔迭代法求解,迭代过程发散。 取x0=(0;0;0),为达到精度10-5,取w=0.1。 雅可比迭代法 松弛法 3 184 代码: 1. 雅可比迭代法

9、 function [x,k]=jacobi(A,b,x0,esp) %k为迭 A=input('Input A='); b=input('Input b='); x0=input('Input x0='); esp=1.0e-5; k=0; n=length(b); x=x0; while max(abs(b-A*x0))>esp&k<=500; for i=1:n sum=0; for j=1:n if j~=i sum=sum+A(i,j)*x0(j); end end x(i)=(b(i)-sum)/A(i,i); end x0=x; k=k+1;

10、if k>500 fprintf('迭代达到上限') return end end k Input A=[1 2 -2;1 1 1;2 2 1]; Input b=[1 1 1]'; Input x0=[0 0 0]' 运行结果: k = 3 ans = -3 3 1 2.高斯-赛德尔迭代法 clear;clc; A=[1 2 -2;1 1 1;2 2 1]; b=[1 1 1]'; N=length(b);%解向量的维数 fprintf('库函数计算结果:'); x=inv(A)

11、b%库函数计算结果 x=zeros(N,1);%迭代初始值 %-----(A=D-E-F)------ D=diag(diag(A)); E=-tril(A,-1);%下三角 F=-triu(A,1);%上三角 B=inv(D-E)*F;g=inv(D-E)*b; eps=0.0001;%相邻解的距离小于该数时,结束迭代 %--------开始迭代------- for k=1:1000%最大迭代次数为100 fprintf('第%d次迭代:',k); y=B*x+g; fprintf('\n与上次计算结果的距离(2范数):%f?\n',norm(x-y)^2); i

12、f norm(x-y)dalt roo

13、t=m; e=0; for i=1:r t=x(i); x(i)=(1-w)*x(i)+w*(b(i)-A(i,:)*x); root=[root x(i)]; t=abs(x(i)-t); if t>e e=t; end end root m=m+1; end 运行结果: root = 184.0000 -3.0001 3.0000 1.0000 例2:(超松弛法)达到同样的精度10-5,松弛因子的不同,会使得收敛速度大大不同(w取1.0—1.9) 代码: w=1;dalt=1.0e-5; A=[4 1

14、1 1;1 -4 1 1;1 1 -4 1;1 1 1 -4]; b=[1;1;1;1]; r=size(b);a=b; x0=zeros(4,1); x=x0; r=r(1);m=0;e=1; for t=1:r a(t)=A(t,t); A(t,t)=0; A(t,:)=A(t,:)/a(t); end b=b./a; root=[0 x'] while e>dalt root=m; e=0; for i=1:r t=x(i); x(i)=(1-w)*x(i)+w*(b(i)-A(i,:)*x); root=[root x(i)]; t=abs(x(

15、i)-t); if t>e e=t; end end root m=m+1; end 运行结果整理: 松弛因子 迭代次数 松弛因子 迭代次数 1.0 7 1.6 32 1.1 8 1.7 3368(不收敛) 1.2 10 1.8 1946(不收敛) 1.3 13 1.9 1372(不收敛) 1.4 17 1.5 23 例3:用三种方法分别计算下列方程组并进行比较: 解: 雅克比迭代法 1) 改写成等价形式 2) 构造迭

16、代公式,即为雅可比迭代公式 3) 取初始向量,即代入上式,求出 依次迭代,计算结果如下表: 要求精度 迭代次数 方程组的近似解 0.01 7 (1.0994,1.1994,1.2993) 0.001 9 (1.0999,1.1999,1.2999) 0.0001 13 (1.1000,1.2000,1.3000) ‚ 高斯-赛德尔迭代法 1) 原方程组改为等价方程组 2) 构造迭代公式,即为高斯-赛德尔迭代公式 3) 取初始向量,即代入上式,求

17、出 迭代计算下去,得下表. 要求精度 迭代次数 方程组的近似解 0.01 4 (1.0931,1.1957,1.2978) 0.001 5 (1.0991,1.1995,1.2997) 0.0001 7 (1.1000,1.2000,1.3000) ƒ超松驰迭代法(取松驰因子). 利用SOR方法,构造迭代公式 与高斯-赛德尔方法相同,初值为.迭代计算结果列于下表. 要求精度 迭代次数 方程组的近似解 0.01 5 (1.0986,1.1998,1.0331) 0.001 7 (1.0999,1.2000,

18、1.2999) 0.0001 8 (1.1000,1.2000,1.3000) 代码: 1.雅可比迭代法 function [x,k]=jacobi(A,b,x0,esp) %k为迭 A=input('Input A='); b=input('Input b='); x0=input('Input x0='); esp=1.0e-5; k=0; n=length(b); x=x0; while max(abs(b-A*x0))>esp&k<=500; for i=1:n sum=0; for j=1:n if j~=i sum=sum+A(i,j)*x0

19、j); end end x(i)=(b(i)-sum)/A(i,i); end x0=x; k=k+1; if k>500 fprintf('迭代达到上限') return end end k Input A=[10 -1 -2;-1 10 -2;-1 -1 5]; Input b=[7.2 8.3 4.2]'; Input x0=[0 0 0]' 运行结果: k = 13 ans = 1.1000 1.2000 1.3000 2.高斯-赛德尔迭代法 clear;clc; A=[10 3 1;2 -10 3;1

20、 3 10]; b=[14 -5 14]'; N=length(b);%解向量的维数 fprintf('库函数计算结果:'); x=inv(A)*b%库函数计算结果 x=zeros(N,1);%迭代初始值 %-----(A=D-E-F)------ D=diag(diag(A)); E=-tril(A,-1);%下三角 F=-triu(A,1);%上三角 B=inv(D-E)*F;g=inv(D-E)*b; eps=0.0001;%相邻解的距离小于该数时,结束迭代 %--------开始迭代------- for k=1:100%最大迭代次数为100 fprintf

21、'第%d次迭代:',k); y=B*x+g; fprintf('\n与上次计算结果的距离(2范数):%f?\n',norm(x-y)^2); if norm(x-y)

22、 x=x0; r=r(1);m=0;e=1; for t=1:r a(t)=A(t,t); A(t,t)=0; A(t,:)=A(t,:)/a(t); end b=b./a; root=[0 x'] while e>dalt root=m; e=0; for i=1:r t=x(i); x(i)=(1-w)*x(i)+w*(b(i)-A(i,:)*x); root=[root x(i)]; t=abs(x(i)-t); if t>e e=t; end end root m=m+1; end 运行结果: root = 0

23、 0 0 0 root = 0 0.9360 1.2007 1.6475 root = 1.0000 1.2396 1.3083 1.2602 root = 2.0000 1.0618 1.1522 1.2896 root = 3.0000 1.1025 1.2120 1.3069 root = 4.0000 1.1026 1.1985 1.2982 root = 5.0000

24、 1.0986 1.1998 1.3001 例4:用三种方法分别计算下列方程组并进行比较: 解: 雅克比迭代法 2) 改写成等价形式 2) 构造迭代公式,即为雅可比迭代公式 3) 取初始向量,即代入上式,求出 依次迭代,计算结果如下表: 要求精度 迭代次数 方程组的近似解 0.01 21 (1.1986,1.3939,1.5977,0.7962) 0.001 32 (1.1996,1.3998,1.5994,0.7999) 0.00

25、01 53 (1.2000,1.4000,1.6000,0.8000) ‚ 高斯-赛德尔迭代法 1) 原方程组改为等价方程组 2) 构造迭代公式,即为高斯-赛德尔迭代公式 3) 取初始向量,即代入上式,求出 迭代计算下去,得下表. 要求精度 迭代次数 方程组的近似解 0.01 8 (1.1880,1.3843,1.5873,0.7936) 0.001 14 (1.1991,1.3988,1.5990,0.7995) 0.0001 19 (1.1999,1.3999,1.5999,0.7999) ƒ超松驰迭代法

26、取松驰因子). 利用SOR方法,构造迭代公式 与高斯-赛德尔方法相同,初值为.迭代计算结果列于下表. 要求精度 迭代次数 方程组的近似解 0.01 6 (1.1961,1.3984,1.5987,0.7994) 0.001 8 (1.1998,1.4000,1.6002,0.8000) 0.0001 12 (1.2000,1.4000,1.6000,0.8000) 代码: 1.雅可比迭代法 function [x,k]=jacobi(A,b,x0,esp) %k为迭 A=input('Input A='); b=input('Input b

27、'); x0=input('Input x0='); esp=1.0e-2; k=0; n=length(b); x=x0; while max(abs(b-A*x0))>esp&k<=500; for i=1:n sum=0; for j=1:n if j~=i sum=sum+A(i,j)*x0(j); end end x(i)=(b(i)-sum)/A(i,i); end x0=x; k=k+1; if k>500 fprintf('迭代达到上限') return end end k Input A=[2 -1 0 0;-1 2 -1 0;0

28、1 2 -1;0 0 -1 2]; Input b=[1 0 1 0]'; Input x0=[1 1 1 1]' 运行结果: k = 21 ans = 1.1986 1.3939 1.5977 0.7962 2.高斯-赛德尔迭代法 clear;clc; A=[2 -1 0 0;-1 2 -1 0;0 -1 2 -1;0 0 -1 2]; b=[1 0 1 0]'; N=length(b);%解向量的维数 fprintf('库函数计算结果:'); x=inv(A)*b%库函数计算结果 x=ones(N,1);%迭代初始值

29、 %-----(A=D-E-F)------ D=diag(diag(A)); E=-tril(A,-1);%下三角 F=-triu(A,1);%上三角 B=inv(D-E)*F;g=inv(D-E)*b; eps=0.01;%相邻解的距离小于该数时,结束迭代 %--------开始迭代------- for k=1:100%最大迭代次数为100 fprintf('第%d次迭代:',k); y=B*x+g; fprintf('\n与上次计算结果的距离(2范数):%f?\n',norm(x-y)^2); if norm(x-y)

30、 end x 运行结果: k= 8 x = 1.1880 1.3843 1.5873 0.7936 3.松弛迭代法 w=1.4;dalt=1.0e-2; A=[2 -1 0 0;-1 2 -1 0;0 -1 2 -1;0 0 -1 2]; b=[1 0 1 0]'; r=size(b);a=b; x0=ones(4,1); x=x0; r=r(1);m=0;e=1; for t=1:r a(t)=A(t,t); A(t,t)=0; A(t,:)=A(t,:)/a(t); end b=b./a; roo

31、t=[0 x'] while e>dalt root=m; e=0; for i=1:r t=x(i); x(i)=(1-w)*x(i)+w*(b(i)-A(i,:)*x); root=[root x(i)]; t=abs(x(i)-t); if t>e e=t; end end root m=m+1; end 运行结果: root = 0 1.0000 1.0000 1.7000 0.7900 root = 1.0000 1.0000 1.4900 1.6160 0.8152 ro

32、ot = 2.0000 1.3430 1.4753 1.6569 0.8338 root = 3.0000 1.1955 1.4066 1.6055 0.7903 root = 4.0000 1.2064 1.4057 1.5950 0.8004 root = 5.0000 1.2014 1.3952 1.5989 0.7991 root = 6.0000 1.1961 1.3984 1.5987 0.7994 四、

33、 实验结果比较和分析 由例1可得,如果高斯-塞德尔迭代法不收敛,雅可比迭代法收敛,松弛法的迭代因子没取好,雅可比迭代法收敛更快。由例2可得对于松弛法,不同的收敛因子,会得到不同的收敛结果。由例3可得,如果雅可比迭代法和高斯-塞德尔迭代法同时收敛,松弛法的松弛因子选定较差,高斯-塞德尔迭代法的收敛速度比较快。由例4可得,当松弛法的松弛因子取得比较好时,在三种方法同时收敛的情况下,松弛法收敛比较快。 五、成员分工: 组长:谭孜 任务:查找资料,完善整个设计文档 成员:李德辉 任务:上机操作,输出结果及调试 成员:叶青青 任务:整篇文档的设计及部分代码的修改 成员:琚超人 任务:整理完成结果分析 六、 参考文献 [1]李庆扬、王能超、易大义《数值分析第5版》 清华大学出版社 [2]宋岱才 SOR迭代法的一个收敛性定理 [3] 王沫然 《MATLAB 与科学计算(第二版)》[M] 北京:电子工业出版社 [4]赵丹 雅可比迭代法和高斯-塞德尔迭代法的研究

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服