線性方程組(3)-靜態迭代法
上一節講到直接解法有誤差積累和破壞矩陣稀疏性的問題。
實際中應用較廣泛的是解法通常是迭代法。迭代法的結果的誤差可以由迭代終止條件控制,只要迭代能收斂到滿足迭代終止條件,那麼結果的誤差就不會超出終止條件控制的範圍。但是,在此之前先要確定迭代法能否在可以接受的步數之內收斂。
不嚴謹地說,迭代法收斂性的大致趨勢是:對於常用的大多數迭代法,矩陣的條件數越小收斂越快。
常用的迭代終止條件有: 、 等, 的選取取決於對解的精度要求。
靜態迭代法(stationary iterative methods)是指形如
的迭代法。因為 和 不隨迭代步數而變化,所以叫靜態迭代法。這裡介紹三種靜態迭代法:雅可比法(Jacobi method)、高斯-賽德爾法(Gauss-Seidel method)和松馳法(successive relaxation method)。
靜態迭代法收斂的充分條件是,存在運算元範數 ,使得 ;更容易計算的一個充分條件是, 的最大特徵值的模小於 。
雅可比法
一個線性方程組的第 個方程是
假設除了 以外的所以未知數都已被解出,那麼
即可推導出迭代法
若將矩陣 分解為三部分 ,其中 為不包括對角線的下三角部分, 為對角線, 為不包括對角線的上三角部分;則雅可比法可寫成矩陣形式
高斯-賽德爾法
在雅可比法中,新值是用舊值代入解出的,而我們通常認為新值比舊值更接近精確解。如果 到 是按順序依次計算的,那麼在計算 時可以用前面已經計算出來的 個新值,即
高斯-賽德爾法也可以寫成矩陣形式
或
高斯-賽德爾法還有其反向形式,即先計算 到 ,再計算 ,迭代公式為
矩陣形式
雅可比法與高斯-賽德爾法的總結與比較
雅可比法和高斯-賽德爾法收斂的一個充分條件是係數矩陣 嚴格對角佔優或不可約弱對角佔優。
高斯-賽德爾法由於使用了新值,收斂性比雅可比法好。但是前面提到, 到 是按順序依次計算的,這就使得高斯-賽德爾法的並行性有限,從而迭代一步的計算時間比雅可比法要長。
松馳法
高斯-賽德爾法迭代公式可寫為
將這個變化量乘上鬆弛因子 ,得到
即
鬆弛法中的
可以證明,其最大特徵值的模 ,所以應該選取 。在實際應用中通常取 時收斂較快,這個條件下的鬆弛法又稱為超松馳法(successive over-relaxation method)。
靜態迭代法在上個世紀還非常流行,曾有很多論文討論如何改進高斯-賽德爾法、如何選取鬆弛因子等等。隨著非靜態迭代法的發展,靜態迭代法因收斂性不足而逐漸被取代。這裡為何還要講靜態迭代法呢?這裡先不做解釋,之後會有需要靜態迭代法的地方出現。
推薦閱讀: