【正文】
致 謝 ............................................................................................................................ 26 附錄 .............................................................................................................................. 27 I 線性方程組的 幾種迭代解法研究 摘 要 線性方程組的求解在科學(xué)與工程計算中應(yīng)用廣泛。線性方程組的求解主要有直接法和迭代法兩種,本文主要討論了求解線性方程組的重要方法 迭代法中的幾種比較常用的方法;如雅可比迭代法、高斯 塞德爾迭代法、逐次超松弛迭代法和共軛梯度迭代法等;文中將會利用相關(guān)例題對迭代法及其收斂性進行驗證實驗。收斂性及收斂速度是影響迭代法求解線性方程組的主要因素,本文將從理論上對收斂性問題進行討論; 然后通過數(shù)值實驗歸納某些迭代法的一些特點 ,為 今后某些 具體問題的求解提供參考。 關(guān)鍵詞 迭代法;線性方程組;基本迭代法;共軛梯度法 The Study on Some Iterative Methods for Linear Equations Abstract The solution of linear systems is widely used in scientific and engineering puting. There are mainly two kinds of method: direct method and iterative method. This paper focuses on some mon methods of iterative method which is an important method of linear system, such as Jacobian iterative method。 Gauss Seidel iteration。 Successive Over Relaxation method and Conjugate Gradient methods and so on. Conclusion will be conducted by using some relative examples to validate the iterative method and its convergence. Convergence and convergent rate the main affecting factors for the iterative solution of linear system. This paper will discuss the problem of convergence theoretically and then summarize some characteristics of iterative method by numerical experiments, so it can provides a reference for solution of some concrete problems in the future. II Key words Iterative method。 linear equations。 basic iterative methods。 conjugate gradient method 3 1 前言 在科學(xué)計算中,求解線性方程組的問題經(jīng)常出現(xiàn),雖然線性代數(shù)等課程中已經(jīng)介紹了許多求解線性方程組的方法,但那大多是從理論上的分析求解方法,并不能簡單的套用到科學(xué)計算中;在科學(xué) 研究和大型工程設(shè)計中這些問題一般是連續(xù)的,在求解這些問題時 ,通常是對其進行離散處理,化 為 形如Ax b? 的大型稀疏線性方程組。隨著計算技術(shù)的發(fā)展,計算機的存儲量增大,計算速度加快;迭代法計算存儲單元少、程序設(shè)計簡單、原始系數(shù)矩陣在計算過程中始終不變等優(yōu)點在計算中也凸顯出來 ; 其中 雅可比迭代 法、 高斯 塞德爾迭代 法、 逐次超松弛迭代法等 是比較常用的基本迭代法 ; Krylov 子空間方法在求解大型稀疏矩陣有著與眾不同的有效性,當(dāng)矩陣是對稱正定時,常用的有遞推的共軛梯度法。當(dāng)矩陣不對 稱時,常用的方法有完全正交化法和廣義極小剩余法。還有很多迭代方法正在被人們發(fā)現(xiàn)和研究,新的有效的方法層出不窮。 但在具體的問題中并不是所有的迭代法都能行的通,因為 迭代矩陣及其收斂性等影響著計算,因此文中重點分析了各迭代法的特點[7][9][10][11][13] 。 本文主要利用各迭代法的迭代公式得到它們的算法,然后利用算法編寫出各迭代法的程序,用程序分別對各迭代法進行數(shù)值實驗和驗證,通過對數(shù)值實驗結(jié)果的分析比較,總結(jié)出各迭代法的某些特點,為求解具體問題提供參考。 4 2 基本迭代法 設(shè)有 ,Ax b? ( ) 其中, nnAR?? 為非奇異矩陣。將 A 分裂為 ,A M N?? ( ) 其中, M 為可選擇的非奇異矩陣,且使 Mx d? 容易求解,一般為 A 的某種近似,稱 M 為分裂矩陣。 因此,求解 Ax b? 轉(zhuǎn)化為求解 Mx Nx b??,即 11x M Nx M bA x b ????? ?求 解 求 解 故構(gòu)造 基本 迭代法 ( 0 )( 1 ) ( ) ( 0 , 1 , ) ,kkxx B x f k????? ? ??? ( 初 始 向 量 ) ( ) 其中 1 1 1 1( ) , .B M N M M A I M A f M b? ? ? ?? ? ? ? ? ?稱 1B I A??? 為迭代 法的迭代矩陣,取不同的 M 陣可得到不同的迭代法。 設(shè) 0( 1, 2, , )iia i n?? ,并將 A 分為三部分 ,A D L U? ? ? ( ) 其中 5 1122 ,nnaaDa????????? 211 ,1 1 , 2,1 , 2 , 100,00nnn n n naLaaa a a?????????????? ? ??? 1 , 2 1 , 1 1 ,2 , 1 2 ,1,00.00nnnnnna a aaaUa???? ? ????????????? 雅可比法 取 M 為 A 的對角元素部分,即取 MD? , A D N?? ,由 ()式得雅可比 (Jacobi)迭代法 ( 0 )( 1 ) ( ) ( 0 , 1 , ) ,kkxx B x f k????? ? ??? ( 初 始 向 量 ) () 其中 1 1 1( ) ,B I D A D L U J f D b? ? ?? ? ? ? ? ?. Jacobi 迭代法( )的分量計算公式 ( ) ( ) ( ) ( )1( , , , , ) .k k k k Tinx x x x? 由 Jacobi 迭代公式 ()有 1( 1 ) ( ) ( )11 ( 1 , 2 , , )ink k kii i ij j ij j ij j ia x a x a x b i n??? ? ?? ? ? ? ???. 因此 Jacobi 迭代法的計算公式為 6 ( 0 ) ( 0 ) ( 0 )1( 1 ) ( )1( , , ) ,( ) /( 1 , 2 , , ) ( 0 , 1 , ) .Tnnkki i ij j iijjix x xx b a x ai n k???? ??????????????表 示 迭 代 次 數(shù) ( ) Jacobi 迭代法算法為 011212121[ 1 ]0 。 1 。 0( ! 1 )( ! )[ ] [ ] * [ ][ ] ( [ ] [ 1 ] ) / [ ] [ ] 。0( ( [ ] [ ] ) (10 , 6) )1[ ] [ ]1[]1x x nbk N te m pw hil e bkif j ite m p a i j x j te m px i a i n te m p a i ite m pif fabs x i x i powbkx i x iNNx x iN? ? ?? ? ?????? ? ??? ? ? ???????初 值 運用附錄中的程序 1 求解下列線性方程組 [2] 。 例 用 Jacobi 迭代法求解線性方程組 1 2 31 2 31 2 310 3 142 10 3 53 10 14x x xx x xx x x? ? ???? ? ? ???? ? ?? 解 在原方程組中取 10 0 00 10 00 0 10MD????? ? ??? 0 3 1( ) 2 0 31 3 0N L U??????? ? ? ? ????? 7 設(shè) (0) (0,0,0)Tx ? ,且 ( ) 1 610nnxx????. 則雅可比迭代公式為 1 ( ) ( )1 2 31 ( ) ( )2 1 31 ( ) ( )3 1 2(14 3 ) / 10( 5 2 3 ) / 10(14 3 ) / 10k k kk k kk k kx x xx x xx x x???? ? ? ??? ? ? ? ??? ? ? ?? 運行程序后,結(jié)果 經(jīng)過 16 次 迭代后求得 ( 00 , 00 , 00) Tx ? . 例 用 Jacobi 迭代法解線性方程組 1 2 31 2 31 2 35 2 124 2 202 3 10 3x x xx x xx x x? ? ? ???? ? ? ???? ? ?? 解 取 (0) (0,0,0)Tx ? ,且 ( ) 1 610nnxx????. 經(jīng)過 24 次迭代后求得 ( 4 .0 0 0 0 , 3 .0 0 0 0 , 2 .0 0 0 0 ) Tx ?? . 例 用 Jacobi 迭代法解線性方程組 121 2 323414443xxx x xxx????? ? ? ???? ? ? ?? 解 取 (0) (0,0,0)Tx ? ,且 ( ) 1 610nnxx????. 經(jīng)過 15 次迭代后求得 ( 00 , 0 , 00) Tx ??. 例 用 Jacobi 迭代法解線性方程組 Ax b? 其中 8 9920 1 1 1 01 20 0 0 11 0 20 0 10 0 01 0 0 20 10 1 1 1 20A?? ? ???????? ??????? ? ??? 1 2 9( , )Tx x x x? , ( 2 ,1 8 ,1 8 1 8 , 2 ) Tb ? ? ?. 解 取 (0) (0,0,0)Tx ? ,且 ( ) 1 610nnxx????. 經(jīng)過 8 次迭代后求得 ( 341 , 229 229 , 230 ) Tx ? . 以上例題的迭代結(jié)果比較如下 表 Jacobi 法迭代結(jié)果比較 迭代方法 題號 系數(shù)矩陣類型 迭代次數(shù) Jacobi 法 例 不規(guī)則矩陣 16 Jacobi 法 例 不規(guī)則矩陣 24 Jacobi 法 例 對稱矩陣 15 Jacobi 法 例 稀疏矩陣 8 由表 可以知道當(dāng)用 Jacobi 法求解線性方程組時,若系數(shù)矩陣為稀疏矩陣則所需的迭代次數(shù)比其它矩陣要少的多,即收斂速度要快;其中系數(shù)矩陣為對稱 矩陣時收斂速度也會比一般矩陣稍快。 高斯 塞德爾迭代法 取分裂矩陣 M 為 A 的下三角部分,即 M D L??, A M N??,于是由 ( ) 式得高斯 塞德爾 (GaussSeidel)迭代法 9 ( 0 )( 1 ) ( ) ( 0 , 1 , ) ,kkxx B x f k????? ? ??? ( 初 始 向 量 ) () 其中