上一節講到直接解法有誤差積累和破壞矩陣稀疏性的問題。
實際中應用較廣泛的是解法通常是迭代法。相比直接解法,迭代解法在高效能並行實現上擁有很大的優勢。但是,在此之前先要確定迭代法能否在可以接受的步數之內收斂。
不嚴謹地說,迭代法收斂性的大致趨勢是:對於常用的大多數迭代法,矩陣的條件數越小收斂越快。
常用的迭代終止條件有:
靜態迭代法(stationary iterative methods)是指形如
的迭代法。因為
和 不隨迭代步數而變化,所以叫靜態迭代法。這裡介紹三種靜態迭代法:雅可比法(jacobi method)、高斯-賽德爾法(gauss-seidel method)和鬆馳法(successive relaxation method)。
靜態迭代法收斂的充分條件是,存在運算元範數
,使得
;更直觀的乙個充分條件是,
的最大特徵值的模小於
。雅可比法
乙個線性方程組的第
個方程是
假設除了
以外的所以未知數都已被解出,那麼
即可推導出迭代法
若將矩陣
分解為三部分
,其中
為不包括對角線的下三角部分,
為對角線,
為不包括對角線的上三角部分;則雅可比法可寫成矩陣形式
高斯-賽德爾法
在雅可比法中,新值是用舊值代入解出的,而我們通常認為新值比舊值更接近精確解。如果
到 是按順序依次計算的,那麼在計算
時可以用前面已經計算出來的
個新值,即
高斯-賽德爾法也可以寫成矩陣形式
或高斯-賽德爾法還有其反向形式,即先計算
到 ,再計算
,迭代公式為
矩陣形式
雅可比法與高斯-賽德爾法的總結與比較
雅可比法和高斯-賽德爾法收斂的乙個充分條件是係數矩陣
嚴格對角佔優或不可約弱對角佔優。
高斯-賽德爾法由於使用了新值,收斂性比雅可比法好。但是前面提到,
到 是按順序依次計算的,這就使得高斯-賽德爾法的並行性有限,從而迭代一步的計算時間比雅可比法要長。
鬆馳法
高斯-賽德爾法迭代公式可寫為
將這個變化量乘上鬆弛因子
,得到即
鬆弛法中的
可以證明,其最大特徵值的模
,所以應該選取
。在實際應用中通常取
時收斂較快,這個條件下的鬆弛法又稱為超鬆馳法(successive over-relaxation method)。
靜態迭代法的迭代式又可以寫為
在這裡雅克比法和高斯-賽德爾法分別取
其實在此基礎上任選
都能構造一種靜態迭代法,例如後面要提到的不完全lu分解等更精確的方法。不過在不完全lu分解法出現時,已經有收斂更快的克雷洛夫子空間法,靜態迭代法因收斂性不足而逐漸被取代。這裡為何還要講靜態迭代法呢?這些
的近似方法,在克雷洛夫子空間法中還會用到,這個之後會講到。
線性方程組
給出乙個線性方程組的標準形式 a11x1 a12x 2 a1nx na21x 1 a22 x2 a2n xnan 1x1 an2x 2 annx n b1 b2 bn 1x 2y 34x 5y 6 1 2 這裡由克萊姆法則進行計算得出xy 3625 14 25 3 5 2 61 5 2 4 3 3 ...
線性方程組
若線性方程組相容,則此方程組有1個或無窮多個解 若線性方程組不相容,則該方程組無解。線性方程組所有解的集合被稱為線性方程組的解集 若線性方程組不相容,則解集為空集。若兩個含有相同變數的方程組具有相同的解集,則稱它們是等價的。有三種運算可以得到等價的方程組 交換任意兩個方程的順序 任一方程兩邊同乘乙個...
線性方程組
給出乙個線性方程組,有 n 個未知數和 m 個方程 a x 1 a x 2 a x n b 1 a x 1 a x 2 a x n b 2 a x 1 a x 2 a x n b m 對於解該線性方程組,首先構造增廣矩陣,按列分塊 a left begin a a a b a a a b a a a...