1、郑州师范学院毕业论文题 目 迭代法及其在数值求解线性方程组中的应用 姓 名 陈丹丹 学 号 124103052041 院 系 数学与统计学院 专 业 数学与应用数学 年级班级 B12 数应 2 班 指导教师 王明建 2016 年 5 月 20 日毕业论文作者声明本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全了解有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理机构送交论文的复印件和电子版。同意省级优秀毕业论文评选机构将本毕业论文通过影印、缩印、扫描等方
2、式进行保存、摘编或汇编;同意本论文被编入有关数据库进行检索和查阅。本毕业论文内容不涉及国家机密。论文题目:迭代法及其在数值求解线性方程组中的应用作者单位:郑州师范学院作者签名:目 录摘要 1引言 31.预备知识 31.1 迭代法的基本形式 31.2 Jocabi 迭代法 41.2.1 分量形式的 Jacobi 迭代法 41.2.2 矩阵形式的 Jacobi 迭代法 51.2.3 Jacobi 迭代法的算法实现步骤 .61.3 Gauss-Seidel 迭代法 61.3.1 分量形式的 Gauss-seidel 迭代法 .61.3.2 矩阵形式的 Gauss-seidel 迭代法 .61.3.3
3、 Gauss-Seidel 迭代法的算法实现步骤 71.4 超松弛迭代法(SOR 迭代法) .71.4.1 分量形式的 SOR 方法 .71.4.2 矩阵形式的 SOR 方法 .81.4.3 SOR 迭代法的算法实现步骤 .91.5 迭代法的收敛性 92. 数值求解线性方程组 102.1 用 Jacobi 迭代法求解 .102.2 用 Gauss-Seidel 迭代法求解 112.3 用超松弛迭代法求解 .12小 结 .13参考文献 .15致谢 .161迭代法及其在数值求解线性方程组中的应用摘要:迭代解法就是通过逐次迭代逼近来得到的近似解的方法。而线性方程组的求解问题是科学研究及工程计算中最常
4、出现的问题,如结构分析、网络分析、数据分析、大地测量等,都需求解线性方程组。由于从不同的问题而导出的线性方程组的系数矩阵不同,因此对于大型稀疏矩阵(零元素很多的多阶矩阵,一般 )所对应的线性代数方程组,用迭代法求解,在某些精度要求410n比较高的问题中,经常用迭代法求解。其基本思想为:从某一初始向量出发,按照某种迭代规则,不停地对上一次的近似值进行0201,nxX修正,得到近似解的向量 。当近似解 收敛于方程组kX0201,nxX的精确解向量 时,满足给定精度要求的近似解向量 就可看nx,21 kX作是 的数值解。X关键词:线性方程组;迭代法;Jacobi 法;Gauss-Seidel 法;逐
5、次超松弛法2Iterative Method and Its Application to Numerical Solution of Linear EquationsAbstract:Iterative method is the approximate solution obtained by successive iteration. The problem of solving linear equations is the most common problems in scientific research and engineering calculation, such as
6、structural analysis, network analysis, data analysis, geodetic survey, etc., all need solution of linear equations. Due to the different problems of different and the coefficient matrix of the linear equations derived from, so for large sparse matrix corresponding to the system of linear algebraic e
7、quations, is solved by iterative method. In certain accuracy requirement is relatively high, often solved by iterative method. The basic idea is as follows: starting from a certain initial vector, according to some kind of iterative rule, the last time approximation is corrected, and the approximate
8、 solution is obtained. When the approximate solution converges to the exact solution of the equation, the approximate solution vector which satisfies the given accuracy requirement can be regarded as the numerical solution.Keywords:linear equations; iterative method; Jacobi method; Gauss-Seidel meth
9、od; successive over relaxation method3引言一般情况下,对于中小型方程组,直接法是非常有效并且迅速的,而对于高阶并且系数矩阵稀疏的线性方程组,尤其是大型线性方程组,却遇到了难题。因为直接法的计算量大,存储量大,连非零元素也要存储。因而对于大型的线性方程组,常常用迭代法来求解。迭代法与直接法是有差异的,它不能直接通过有限次的算术运算求出方程的精确解,而是间接的通过迭代来逐步逼近此方程组的精确解。因此,考虑其收敛性是使用迭代法的关键问题。迭代法较直接法有明显的优势:程序设计简洁,存储量和计算量少等。尤为重要的是,迭代法是解决具有大型稀疏矩阵的线性方程组的重要方法
10、之一。1.预备知识为了更深入的学习迭代法在数值求解线性方程组中的应用,我们有必要回顾一下迭代法的基本知识。41.1 迭代法的基本形式设有线性方程组, (1.1.1)bAx其中 为非奇异矩阵,向量 ,因此有唯一的解 。下面介绍迭代法的A0x基本格式。将方程组(1.1.1)变形可得到等价的线性方程组, (1.1.2) fBx任取初值向量 为(1.1.1)的近似解,由公式Rx0(1.1.3),,210,1kfBxk可构造出向量序列 ,若 满足下面的式子kk, (1.1.4) xklim则迭代法收敛, 就是方程组(1.1.1)的解,反之,迭代法就发散。而式x子(1.1.3)为迭代格式, 为迭代矩阵,
11、为第 次迭代的近似的解,而Bkx为第 次的近似误差。kkxe1.2 Jocabi 迭代法1.2.1 分量形式的 Jacobi 迭代法对线性方程组 ,有分量形式:bAx(1.2.1),nnnnbxaxa 21 222 1215(1)设 ,用其它的 个变元来表示线性方程组的第njj ,210a1n个方程中的第 个变元 ,就可得到:j jx(1.2.2),1,21232122 111 nnnn nxaxabxxaxab 也既是:(1.2.3)jnijij axbx1,n,21(2)用迭代格式写出来就是:(1.2.4), knknknnkn knkkk kkkk xaxabax xaxabx 1,21
12、1 23212212 11 也就是:(1.2.5)jnijkikj axbx11 ,n,21(3)任意给定的初值向量 代入式(1.2.4)就可逐步算出Tnxx0201,向量序列 ,且 。当向量序列 收敛时,,21kx kkkkx对于事先给定的精度要求 ( 为一个很小的正数),就有 也即 ,k16是方程组的近似解 。1kx1.2.2 矩阵形式的 Jacobi 迭代法假设线性方程组(1.2.1)的系数矩阵 A 为非奇异,并且对于对角线上的元素 ,那么就可将矩阵 分解成niai ,210(1.2.6), 000 21122121 nnn aaaaA若令 ,021naL ,naD21 ,02112 n
13、aU则有 ,UA即 可替换为 ,bxbxDL变形为: ,因为 ,niai ,210那么 ,bDxULx1得到迭代公式如下:, (1.2.7)bDxULxkk 111 若令 ; ,ULDG1bh1就有 ,xkk1那么就称公式(1.2.7)矩阵形式的 Jacobi 迭代格式,称 为 Jacobi 迭代矩阵。G7以上为 Jacobi 迭代格式的两种不同形式,在讨论收敛性的时候,主要用Jacobi 迭代格式的矩阵形式,而在实际的应用计算中,则需要用到 Jacobi 迭代格式的分量形式。1.2.3 Jacobi 迭代法的算法实现步骤步 1.输入必要的初始数据 , , ,nnijaji ,21,njb,2
14、1, 及 (迭代的最大次数)njx,20M步 2.对 做到步 5k,1其过程为:步 3.对 做ni,2,jnjiijj axbx10步 4.若 ,则输出 停机。否则0xnx,21步 5.对 做 nj,21,jjx0步 6.输出“超出最大迭代次数”,停机。1.3 Gauss-Seidel 迭代法1.3.1 分量形式的 Gauss-seidel 迭代法对于公式(1.2.5),可将公式右端前 个分量的上标由 换成 ,1jk1可得到分量形式的 Gauss-seidel 迭代法。(1.3.1)jji njikikikj axxabx111 , 2,10;,21kn1.3.2 矩阵形式的 Gauss-se
15、idel 迭代法对方程组 ,由前文知 。bAxUDLA8由于 ,0AUDL因此 等价于 ,bxbxL解得 ,所以(1.3.2),bUxLDxkkk 11可得到迭代格式(1.3.3),bLDxLxkk 111 若令 , ,UDB1f1那么(1.3.4),fBxkk1公式(1.3.4)就是矩阵形式的 Gauss-Seidel 迭代格式, 是 Gauss-Seidel 迭B代矩阵。1.3.3 Gauss-Seidel 迭代法的算法实现步骤步 1.输入必要的初始数据 , , ,nnijaji ,21,njb,21, 及 (迭代的最大次数)njx,20M步 2.对 ,做到步 4k,1其过程为:步 3.对
16、 做nj,2,jjijiiij axabt 11009,0maxjjtEro,jjt0步 4.若 ,则输出 ,停机。Ero0201,nxx步 5.输出“超出最大迭代次数”,停机。1.4 超松弛迭代法(SOR 迭代法)对于解线性方程组,一般来说,Jacobi 迭代法的收敛速度缓慢,在实际的生活中很少运用。Gauss-Seidel 迭代法虽说比 Jacobi 迭代法收敛的速度稍快,但收敛的速度也不是说特别明显,因此就需要对其修改,提高收敛的速度。而逐次超松弛迭代法(又称 SOR 方法)就是对修改后的迭代法的一种加速。它的计算公式简洁,但为了使其在迭代的过程中保持较快的迭代速度,选择合适的松弛因子是
17、关键。1.4.1 分量形式的 SOR 方法设线性方程组 ,其中系数矩阵 为非奇异的, ,bAxATnxx,21,第 步迭代近似值记为 ,那么Tnb,21kkx(1.4.1),kkbr1表示近似解 的残余误差,则有加速迭代格式kx(1.4.2),kkkAxbx1就称作松弛因子。若用分量形式的 Jacobi 迭代格式就是:(1.4.3),njxabxnikijjkjkj ,21,11 10当选择恰当的松弛因子,就可获得期望的较快的收敛速度。而在计算时,若用前面的 Gauss-Seidel 迭代思想,利用已经计算出来的分量1kjx,那么就得到一个全新的迭代格式:121,kjx(1.4.4), njx
18、axbji njikikikjkj ,2111 当然,当 时,将迭代格式(1.4.4)应用到方程组,可jaj ,20得到 ,nbxjinij ,1,1由此可推出下列松弛迭代格式:(1.4.5) ,njxaxbaxji njikikijkjkj ,21,11 容易发现,当 的取值为 1 时,式(1.4.5)是 Gauss-Seidel 迭代格式。为保证迭代过程的收敛,就必须使 ,当 时称低松弛法,当2010时称超松弛法。211.4.2 矩阵形式的 SOR 方法对方程组 ,仍由前文知 bAxUDLA对任意实数 ,线性方程组就等价于0(1.4.6),bx同样,线性方程组也等价于(1.4.7),bxU
19、DxL1假设 ,可得出 0ja0detdet 1njja11也即是 是非奇异的。LD令 ,bLDfUG11,得到矩阵形式的 SOR 迭代格式:(1.4.8),,10,1kfxGk同样,矩阵 就是矩阵形式的 SOR 迭代法的迭代矩阵, 称为松弛因子。 1.4.3 SOR 迭代法的算法实现步骤步 1.输入必要的初始数据 , , , ,nnija,21,njb,21, 及 (迭代的最大次数)njx,20M步 2.对 做到步 4k,1其过程为:步 3.对 做nj,2,01ijixas,012injis,jjj asbx21,jjj x00,jEroma步 4.若 ,则输出 ,停机。rTnxx0201,
20、12步 5.输出“超出最大迭代次数”,停机。1.5 迭代法的收敛性定理 1.对任意的初始向量 和任意的 ,设矩阵 为迭代矩阵,nRx0nRfB则 是迭代法收敛的充分必要条件。B定义 1.对于矩阵 ,若A,niajinij ,21,1即主对角线上元素的绝对值大于同行其他元素的绝对值之和,则称矩阵是对角占优矩阵。A定理 2.如果线性方程组 的系数矩阵 A 是对角占优矩阵,则线性方程bAx组 的 Jacobi 迭代格式和 Gauss-Seidel 迭代格式都是收敛的。 bx定理 3.若 是对称正定矩阵,则解方程组 的 Gauss-nijRabxSeidel 迭代法收敛。定理 4.若解方程组 的 SO
21、R 法收敛,则 。bAx20定理 5.若 是对称正定矩阵,且有 ,则解方程组nijRa的 SOR 法收敛。bAx2.数值求解线性方程组在此给出几个例子从而更清晰的理解用迭代法来求解线性方程组。2.1 用 Jacobi 迭代法求解例 1.解线性方程组 ,105332101x13解:对方程进行变形,分离出变量 , , :1x23,2.0613321xx对应的迭代格式为: ,2.06.3.113221kkkkkkxx取迭代初值为 ,迭代的结果如下表 1 所示。可得到方程组的精T00确解为 , , 。1x23x表 1 Jacobi 迭代格式的数值结果kkx1kx2kx30 0.2000 1.3000
22、2.00001 0.7300 1.7200 2.38002 0.8480 1.8490 2.78203 0.9413 1.9412 2.87864 0.9698 1.9698 2.95305 0.9876 1.9876 2.97586 0.9939 1.9939 2.9901147 0.9974 1.9974 2.99518 0.9988 1.9988 2.99909 0.9997 1.9997 2.999810 0.9999 1.9999 2.9990迭代解为 , ,9.01x9.12x9.23x2.2 用 Gauss-Seidel 迭代法求解例 2.用 Gauss-Seidel 迭代格式求
23、解例 1,即求解下列方程组。 ,10533201x解:对方程组进行变形,分离出变量 :32,1,213321.06.xx由迭代格式(1.3.1),可得到 ,12113 3221.06.0kkk kkk xx方程组的精确解 ,迭代的初始向量选为 。迭代的结T, T0,0果如下表 2 所示。表 2 Gauss-Seidel 迭代格式的数值结果15kkx1kx2kx30 0 0 01 0.2000 1.3200 2.3842 0.8088 1.8577 2.90003 0.9658 1.9766 2.97484 0.9926 1.9942 2.99445 0.9983 1.9987 2.99876
24、0.9996 1.9997 2.9997由本例可比较出,Gauss-Seidel 迭代法比 Jacobi 迭代法收敛速度快。当初始向量相同,近似解达到同样精度的时候(取 ),Gauss-Seidel 迭代法05.仅需要 6 次迭代就满足要求,而 Jacobi 迭代法则要迭代 9 次才能够满足此要求。2.3 用超松弛迭代法求解例 31.用 SOR 法求解方程组 ,124036321x松弛因子取值为 ,要求 。.5.解:由题意知,方程组的系数矩阵为正定矩阵,所以用 SOR 法求解此方程组一定是收敛的。可求出迭代公式为:16, kkkk kkkk xxxx32311221440346迭代的初始向量选
25、为 ,迭代的结果如下表 3 所示。T0,0表 3 SOR 迭代格式的数值结果kkx1kx2kx30 0 0 01 4.96 1.5872 -3.22802 2.2935 2.6854 -2.11283 1.9121 3.1223 -2.24504 1.5973 3.2692 -2.16775 1.5363 3.3146 -2.17226 1.5087 3.3280 -2.16697 1.5028 3.3319 -2.16708 1.5006 3.3330 -2.16679 1.5001 3.3333 -2.1666小 结迭代法是一种通过逐次逼近来求解方程组精确解的方法,它的优点是:程序算法简单
26、、占用的内存小,有利于在计算机上实现,因此它适用于求解大型17稀疏线性方程组。常用的迭代法有:Jacobi 迭代法、Gauss-Seidel 迭代法及超松弛迭代法(SOR 迭代法)。Jacobi 迭代法简单,有很好的并行性,适用于并行计算,但收敛的速度较慢;Gauss-Seidel 迭代法是典型的串行算法,当 Jacobi 迭代法与 Gauss-Seidel 迭代法同时收敛的时候,后者比前者收敛速度要快,但这两种迭代法互不包含,不能够互相代替。而在实际应用中较多的是超松弛迭代法,且 Gauss-Seidel 迭代法是超松弛迭代法的特例,超松弛迭代法实际上就是Gauss-Seidel 迭代法的一
27、种加速,然而选取最佳松弛因子是不太容易的,在本论文中没有详细的展开。对于迭代法来说,迭代法的收敛性和收敛速是使用的关键,并且判别收敛的充分条件应该掌握好,同时不收敛的迭代公式在迭代法中是毫无意义的。有些时候对线性方程组做一些简单的同解的变形 8后,再次构造迭代公式就可以起到意想不到的结果。本论文中针对典型的系数矩阵是对角占优矩阵和对称正定矩阵线性方程组展开讨论,非线性方程组的迭代法不在本文的讨论范围内。此外,对于解线性方程组的迭代法,还有 SSOR 迭代法、USSOR 迭代法、TOR 迭代法 11、子空间迭代法、递归迭代法、滤频迭代法、主元加权迭代法 10和分裂迭代法 9等。迭代法中还有有不少
28、的问题都有待人们深入的研究。18参考文献1贺俐,陈桂兴.计算方法M.武汉.武汉大学出版社,1998;2陈晓江,黄樟灿.数值分析M.北京.科学出版社,2010;3吕同福,康兆敏,方秀男.数值计算方法M.北京.清华大学出版社,2008;4孙文瑜,杜其奎,陈金如.计算方法M.北京.科学出版社,2007;5吴勃英,高广宏.数值分析学习指导M.北京.高等教育出版社,2007;196王志军,王海红,孟红玲.数值计算M.郑州.河南大学出版社,2012;7杨泮池.计算方法重点内容重点题M.西安.西安交通大学出版社,2005;8程晓亮,刘影.初等数学研究M.北京.北京大学出版社,2011;9温瑞萍,李苏丹,任孚
29、鲛.求解复对称线性方程组的新分裂迭代方法及预处理子(英文)J.应用数学,2016(1):173-182.10唐丽,李鹏飞.主元加权迭代法求解病态线性方程组J.科学技术与工程,2012,12(2):381-383.11张喆.用六种迭代法求超定线性方程组 的最小二乘解J.科学与财富,bAx2011(5):322-323.20致谢从确定论文选题至今,我的本科毕业论文已经顺利的完成了。在此,我要特别感谢我的论文指导老师郑州师范学院数学与统计学院王明健老师。从开始的选定论文题目到搜集资料,从确定论文大体的框架到进行开题报告,从修改初稿二稿直到最终的定稿,老师给了我特别悉心的指导。老师是一位十分认真严谨的老师,对我的论文要求十分严格,不论是内容格式,还是标点符号都进行了严格的把关。可以说,老师对我的论文指导尽职尽责、呕心沥血。这才使得我的论文能够如期、保质保量地完成。在写毕业论文的这段日子里,老师严谨的治学态度、渊博的知识结构、精益求精的工作作风以及诲人不倦的高尚师德给我留下了深刻的印象,并将使我受益终身。在此,还要感谢我身边的朋友和同学,感谢他们在论文写作过程中对我的指导、帮助和支持,感谢他们的宝贵建议,感谢所有关心、支持、帮助过我的良师益友。最后,向在百忙中抽出时间对本文进行评审并且提出宝贵意见的各位老师表示衷心的感谢!