线性方程组的迭代解法及其收敛分析.doc

上传人:小** 文档编号:3030512 上传时间:2020-06-23 格式:DOC 页数:28 大小:197.34KB
返回 下载 相关 举报
线性方程组的迭代解法及其收敛分析.doc_第1页
第1页 / 共28页
线性方程组的迭代解法及其收敛分析.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《线性方程组的迭代解法及其收敛分析.doc》由会员分享,可在线阅读,更多相关《线性方程组的迭代解法及其收敛分析.doc(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、.*河南科技学院 2015届本科毕业论文论文题目:线性方程组的三种迭代解法 及收敛分析 学生姓名: 韦成州 所在院系: 数学科学学院 所学专业: 信息与计算科学 导师姓名: 李巧萍 完成时间: 2015年5月20日 线性方程组的三种迭代解法及收敛分析摘 要对于线性方程组的迭代解法,本文重点讨论雅可比迭代法,高斯塞德尔迭代法和超松弛迭代法三种迭代解法。主要讨论内容有:首先,写出三种迭代解法的基本思想,基本算法及收敛条件;其次,针对这三种迭代解法进行举例分析,通过MATLAB程序,求得三种迭代法各自的迭代次数、每次迭代的结果及误差;最后,在满足设定精度的情况下,对每个迭代方法所用的迭代次数进行通过

2、分析比较,得出了在选择适当的松弛因子后,三种迭代法的收敛速度:超松弛迭代法高斯塞德尔迭代法雅可比迭代法,对于方程组,迭代法的收敛性只与系数矩阵有关,而与右端项无关。同时,本文又对算法设计,收敛速度的判定等问题提出了改进意见。关键词: MATLAB,数学模型,迭代解法,收敛,线性方程组Three kinds of solutions of systems of linear equations iterative method and convergence analysisAbstractFor iterative solution of linear equations, this arti

3、cle focuses on the Jacobi iteration method, gauss seidel iteration method and overrelaxation iteration method of three kinds of iterative method.Main discussion: first of all, write down three iterative method, the basic idea of the basic algorithm and convergence condition;Secondly, in view of the

4、three kinds of iterative solution methods for analysis, through the MATLAB program, get three iterative method respective number of iterations, the results of each iteration and error;Finally, in the case of meet the setting precision, for each iteration method to carry through analysis and comparis

5、on, the number of iterations used in selecting the appropriate relaxation factor is obtained, the convergence rate of the three types of iterative method: overrelaxation iteration method, gauss seidel iteration method, Jacobi iteration method for the system of equations, the convergence of iterative

6、 method is only related to the coefficient matrix, and has nothing to do with the right items.And at the same time, this paper, the algorithm design, and the convergence rate of decision problems, such as improvement opinions are put forward.Keywords:MATLAB, Mathematical model, Iterative method, Con

7、vergence System of linear equations目 录1引言12迭代法的基本思想13三种迭代法的思想,算法及收敛条件1 3.1 雅可比迭代法13.1.1 雅可比迭代法的思想与算法13.1.2 雅格比迭代法的收敛条件23.2 高斯塞德尔迭代法23.2.1 高斯塞德尔迭代法的思想和算法23.2.2 高斯塞德尔迭代法的收敛条件33.3超松弛迭代法33.3.1 松弛法思想和算法33.3.2 超松弛迭代法的收敛条件44数学模型44.1雅可比迭代法求解44.2高斯赛德尔方法求解74.3超松弛迭代法求解95小结13致谢15参考文献 151引言在实际生活中,存在着大量求解线性方程组的问题

8、。这些方程组具有数据量大,系数矩阵稀疏,在一定精度保证下,只需要求解近似解等特点。线性方程组的迭代解法特别适合于这类方程组的求解,它具有程序设计简单,需要计算机的贮存单元少等特点,但也有收敛性与收敛速度问题。因此,研究线性方程组的迭代解法及收敛分析对于解决实际问题具有非常重要的作用。2迭代法的基本思想将方程组写成等价的形式,定一个初值向量,可以得到迭代公式:这样构造一个向量序列,使其极限向量是方程组的精确解。3三种迭代法的思想,算法及收敛条件3.1 雅可比迭代法3.1.1 雅可比迭代法的思想与算法1基本思想:如果方程组的系数矩阵,满足条件。把分解成。其中,为主对角线为零的下三角矩阵,为主对角线

9、为零的上三角矩阵,于是方程组等价于整理得:由此可得迭代公式:其中任选,由上式所表示的迭代法就是雅可比迭代法,其中 就是该迭代法的迭代矩阵,其分量式为:2基本算法:步一.取初始向量,精度;步二.计算初始误差,并进入循环,运算迭代公式步三.如果误差小于精度,则输出,否则,转步二3.1.2 雅格比迭代法的收敛条件1.雅可比迭代法收敛的充要条件是该迭代法的迭代矩阵的谱半径小于1。2.若系数矩阵为对称正定矩阵,且对角元则有雅可比迭代法收敛的充要条件是及都是正定矩阵。3.若方程组的系数矩阵是主对角线按行(或按列)严格占优矩阵,即 则有雅可比迭代法收敛。3.2 高斯塞德尔迭代法3.2.1 高斯塞德尔迭代法的

10、思想和算法1基本思想:高斯塞德尔迭代法是在雅可比迭代法的基础上得到的迭代算法,主要不同是在计算时,前面的个值已经算出,用这些新值代替上次迭代的旧值,用矩阵表示为两边左乘,整理得 于是可得迭代公式为:其中迭代矩阵为: ,其分量式为:2基本算法:步一.取初始向量;精度;步二.计算初始误差,并进入循环,运算迭代公式步三.如果误差小于精度,则输出,否则,转步二3.2.2 高斯塞德尔迭代法的收敛条件1高斯塞德尔迭代法收敛的充要条件是该迭代法的迭代矩阵的谱半径小于12 若系数矩阵为对称正定矩阵,且对角元则有高斯塞德尔迭代法收敛的充要条件是是正定矩阵。3若方程组的系数矩阵是主对角线按行(或按列)严格占优矩阵

11、,即 则有高斯塞德尔迭代法收敛。3.3超松弛迭代法3.3.1 松弛法思想和算法1基本思想:超松弛迭代法一种加速收敛的新的迭代算法,与高斯塞德尔迭代法相比,它明显地提高了收敛的速度,具体来说就是采用加权平均的算法,在计算时,用高塞德尔算法得到的与前一步迭代中得到的加权平均,即,其矩阵形式为:其分量形式为:其中w为松弛因子2基本算法:步一.输入初始向量;步二.重复执行1) 用迭代格式:塞德尔迭代,加权平均: 2) 计算误差3) 直到误差小于所给的精度步三.输出迭代次数3.3.2 超松弛迭代法的收敛条件1超松弛迭代法收敛的充分必要条件是该迭代法的迭代矩阵的谱半径小于12超松弛迭代法收敛的必要条件是3

12、设系数矩阵A对称正定,且,则解线性方程组的超松弛迭代法收敛。4数学模型4.1雅可比迭代法求解先将转化为等价方程组:由此建立等价的迭代格式:MATLAB代码为:function x,a,count,e=jacobi(A,b,jd,x)%A表示系数矩阵,b表示常数项矩阵,jd表示精度(本程序选择精度为1e-6),x表示任选的初始向量(本程序选零向量)xx=inv(A)*b; %求出真实解er=sqrt(abs(sum(x-xx);%求出误差(二范数)D=diag(10 9 7 12 15);%求对角矩阵Ddd=inv(D);%求对角矩阵的逆矩阵L=tril(A,-1);%求下三角矩阵U=triu(

13、A,1);%求上三角矩阵M=-dd*(L+U);%求迭代矩阵g=dd*b;j=1;count=0;k=1;er=sqrt(sum(x-xx).*(x-xx);%求误差while er=jd %迭代求解 x=M*x+g; for i=1:5 a(j)=x(i);%把每次迭代结果(x的五个分量)保存 j=j+1; end er=sqrt(sum(x-xx).*(x-xx); e(k)=er;%把每次迭代的误差向量保存 k=k+1; count=count+1;%记录迭代次数 end在命令窗口中输入:A=10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4

14、 -3 -5 -1 15;b=12 -27 14 -17 12;jd=1e-6; x=0 0 0 0 0; x,a,count,e=jacobi(A,b,jd,x),可以得到:1.近似解:x=1.0000 -2.0000 3.0000 -2.0000 1.00002.迭代次数count=753.每次迭代结果及误差见表4.1表4.1 雅可比迭代法中每次迭代结果及误差Tab4.1 The each iteration results and errors of jacobi iteration method次数x1(k)x2(k)x3(k)x4(k)x5(k)误差er11.200003.00002

15、.00001.41670.80001.555721.20502.32962.40711.65000.45220.961631.26562.34902.35311.89370.70510.842141.25042.22332.61811.87110.65080.630151.19972.21532.59191.95900.76990.554561.18292.15342.73021.93120.77040.432771.14052.14212.73231.97190.83520.373581.12522.10652.80981.95830.84680.297491.09752.09542.821

16、71.97880.88470.2533101.08502.07382.86711.97350.89690.2041111.06732.06452.88021.98430.92000.1723121.05772.05092.90771.98280.93030.1400131.04632.04372.91911.98870.94480.1174141.03922.03502.93631.98860.95270.0959151.03182.02972.94511.99200.96200.0801161.02672.02412.95611.99240.96780.0657171.02182.02032

17、.96271.99440.97390.0547181.01822.01652.96991.99490.97810.0449191.01492.01382.97461.99610.98210.0373201.01242.01132.97931.99660.98510.03070由表4.1可知:随着迭代次数的增多,x的各个分量越来越接近真实解,并且误差也在逐渐减小,可以知道,此时雅可比迭代法收敛。 4.2高斯赛德尔方法求解如下:由高斯塞德尔迭代法与雅可比迭代法的关系,易得高斯塞德尔的迭代公式:MATLAB代码为:function x,a,count,e=gsshiyan1(A,b,jd,x)%A表

18、示系数矩阵,b表示常数项矩阵,jd表示精度(本程序选择精度为1e-6),x表示任选的初始向量(本程序选零向量)xx=inv(A)*b; %求出真实解er=sqrt(sum(x-xx).*(x-xx);%求出误差(二范数)count=0;k=1;j=1;while er=jd %迭代求解for i=1:5x(i)=-1/A(i,i).*(A(i,1:i-1)*x(1:i-1)+A(i,i+1:5)*x(i+1:5)-b(i);a(j)=x(i); %把每次迭代结果(x的五个分量)保存j=j+1;ender=sqrt(sum(x-xx).*(x-xx);e(k)=er;%把每次迭代的误差向量保存k

19、=k+1;count=count+1; %记录迭代次数 end在命令窗口中输入:A=10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15;b=12 -27 14 -17 12;jd=1e-6; x=0 0 0 0 0; x=gs(A,b,jd,x),可以得到:1.近似解:x=1.0000 -2.0000 3.0000 -2.0000 1.00002.迭代次数count=443.每次迭代结果及误差见表4.2表4.2 高斯塞德尔迭代法中每次迭代结果及误差Tab 4.2 The each iteration results and

20、errors of gauss seidel iteration method次数x1(k)x2(k)x3(k)x4(k)x5(k)误差er11.2000-3.13331.2095-1.49680.15672.344021.6578-2.66491.8991-1.84870.33471.597631.5074-2.43412.2530-1.92320.53401.107741.3562-2.29502.4903-1.95130.67940.760851.2451-2.20162.6513-1.9670.78030.521261.1680-2.13792.7613-1.97760.84960.3

21、56871.1150-2.0942.8366-1.98470.89700.244381.0787-2.06462.8882-1.98950.92950.167091.0539-2.04422.9234-1.99280.95170.1145101.0369-2.03032.9476-1.99510.96700.0784111.0253-2.02072.9641-1.99660.97740.0536121.0173-2.01422.9754-1.99770.98450.0367131.0118-2.00972.9832-1.99840.98940.0251141.0081-2.00672.9885

22、-1.99890.99270.0172151.0055-2.00462.9921-1.99930.99500.0118161.0038-2.00312.9946-1.99950.99660.0081171.0026-2.00212.9963-1.99970.99770.0055181.0018-2.00152.9975-1.99980.99840.0038191.0012-2.00102.9983-1.99980.99890.0026201.0008-2.00072.9988-1.99990.99930.0018由表4.2可知:随着迭代次数的增多,x的各个分量越来越接近真实解,并且误差也在逐渐

23、减小,可以知道,此时高斯塞德尔迭代法收敛。4.3超松弛迭代法求解超松弛迭代法是在雅可比迭代法与高斯塞德尔迭代法基础上得到的加速收敛迭代法,迭代公式为:超松弛迭代法的收敛性与松弛因子有关, 不同的松弛因子使得超松弛迭代法的迭代次数不同,松弛因子与迭代次数的关系见表4.3表4.3 松弛因子与迭代次数的关系Tab 4.3 The relationship between the number of iterations and relaxation factorW(松弛因子)Count(迭代次数)W(松弛因子)Count(迭代次数)W=210000由表4.3可知:w=2,迭代次数大于10000次,迭

24、代次数过大,此时也不收敛。画出松弛因子与迭代次数的关系图像见图4.3图4.3 松弛因子与迭代次数的关系图像由图4.3可以看出:1.不同的松弛因子对超松弛迭代法的收敛速度的影响不同。2.w=1.3时,迭代次数最少,因此对于该方程组,最佳松弛因子是1.3选取松弛因子为w=1.3,MATLAB代码为:function x,a,count,e=SOR(A,b,jd,x)%A表示系数矩阵,b表示常数项矩阵,jd表示精度(本程序选择精度为1e-6),x表示任选的初始向量(本程序选零向量)xx=inv(A)*b; %求出真实解er=sqrt(sum(x-xx).*(x-xx);%求出误差(二范数)count

25、=0;w=1.3,k=1;j=1;while er=jd %迭代求解for i=1:5x1(i)=-1/A(i,i).*(A(i,1:i-1)*x(1:i-1)+A(i,i+1:5)*x(i+1:5)-b(i); %求出高斯塞德尔解x(i)=(1-w)*x(i)+w*x1(i);%求出超松弛解a(j)=x(i); %把每次迭代结果(x的五个分量)保存j=j+1;ender=sqrt(sum(x-xx).*(x-xx);e(k)=er;%把每次迭代的误差向量保存k=k+1;count=count+1; %记录迭代次数if count10000disp 迭代次数过大,该迭代法不收敛break; e

26、nd endend在命令窗口中输入:A=10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15;b=12 -27 14 -17 12;jd=1e-6; x=0 0 0 0 0; x=SOR(A,b,jd,x),可以得到:1.近似解:x=1.0000 -2.0000 3.0000 -2.0000 1.00002.迭代次数count=153.每次迭代结果及误差见表4.4表4.4 超松弛迭代法中每次迭代结果及误差Tab 4.4 The each iteration results and errors of Overrelaxatio

27、n iteration method 次数x1(k)x2(k)x3(k)x4(k)x5(k)误差er11.5600-4.12531.2544-1.8625-0.19123.052122.1280-2.33341.8601-2.09420.37751.754831.3617-2.35942.6153-1.95390.80520.669441.1215-2.06302.8520-2.01270.93470.212351.0491-2.03422.9662-2.00080.97890.071961.0098-2.00492.9865-1.99980.99580.017871.0033-2.00282

28、.9983-2.00040.99860.004981.0007-2.00002.9992-2.00000.99980.001191.0001-2.00023.0000-2.00001.00000.0002101.0000-1.99993.0000-2.00001.00000.0001111.0000-2.00003.0000-2.00001.00000.0000121.0000-2.00003.0000-2.00001.00000.0000131.0000-2.00003.0000-2.00001.00000.0000141.0000-2.00003.0000-2.00001.00000.00

29、00151.0000-2.00003.0000-2.00001.00000.0000由表4.3可知:1.当0w2时,超松弛迭代法是收敛的,而当w=2时,该迭代法是不收敛的,这与理论分析”0w2是超松弛迭代法收敛的必要条件”相一致2.选择不同的w的值,迭代次数是不同的,因此选择适当的w的值,可使迭代速度达到最快。3.当w=1时,根据SOR的构造方法知,SOR法就是高斯塞德尔迭代法。5小结通过以上数据测试可以分析出以下几点:1. 雅可比迭代法、高斯塞德尔迭代法、超松弛迭代法三种迭代法对应的迭代次数是逐渐减少的,从而可以得到它们的收敛速度上是逐渐增加的。2. 经过很少次的迭代运算,在满足设定精度情况

30、下,三种迭代法计算得到的近似解与严格计算方程组后的精确解达到了相同,说明三种迭代法的求解精度是高的。3.由MATLAB计算得,A与2D-A均为对称正定矩阵,有收敛条件知,这三种迭代法均收敛,由上机实验得到的数据知,三种迭代方法均收敛,这与理论分析相一致。4.由收敛条件知,三种迭代法的收敛性只与迭代矩阵M(或者说系数矩阵A)有关,与右端项无关。线性方程组的迭代解法除了这三种之外,还有区间迭代,点迭代这样的数值迭代逼近方法,例如,对分法,黄金分隔法,三点抛物线法,牛顿法等。本文主要讨论了常用的三种迭代解法,在时间允许的情况下,还可以从以下方面进行改进: 对算法进行优化,尽量少开辟数组空间,及时对数

31、组空间进行释放,重复利用某些数组空间,从而使系统资源的利用最大化。 对收敛速度的判定进行优化,不仅从收敛次数进行比较,还要加入收敛时间的比较,同时将这三种迭代解法应用于不同阶数的线性方程组。分别得出收敛时间和收敛次数,再进行比较分析,这样可以排除阶数对收敛速度的影响。致谢大学四年学习时光已经接近尾声,在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学四年学习的默默支持;感谢我的母校河南科技学院给了我在大学四年深造的机会,让我能继续学习和提高;感谢河南科技学院的老师和同学们四年来的关心和鼓励。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真

32、热情,生活上的热心主动,所有这些都让我的四年充满了感动。这次毕业论文设计我得到了很多老师和同学的帮助,其中我的论文指导老师李巧萍老师对我的关心和支持尤为重要。每次遇到难题,我最先做得就是向李巧萍老师寻求帮助,而李巧萍老师每次不管忙或闲,总会抽空来找我面谈,然后一起商量解决的办法。我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。这几个月以来,李巧萍老师不仅在学业上给我以精心指导,同时还在思想给我以无微不至的关怀,在此谨向李巧萍老师致以诚挚的谢意和崇高的敬意。同时,感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在此,我再一次真诚向帮助过我的老师和同学便是感谢!参考文献1于冬梅,藤翠玲.基于线性代数方程组迭代法的比较分析与MATLAB实现J.中国科技论文在线,123000:1-8.2徐树方,高丽,张平文.数值线性代数(第二版)M,北京:北京大学出版社,2003.1.3蔡锁章,杨明,雷英杰.数值计算方法M,北京:国防工业出版社,2011,12.4赵慎行.线性方程组几种解法的比较研究J.科技咨询导报,410205:101.5几种线性方程组的解法研究.上海大学土木工程系.200072:1-6.6蒋尔雄,赵风光.数值逼近,上海:复旦大学出版社,1996.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com