高斯-賽德爾疊代

高斯-賽德爾迭代Gauss–Seidel method)是數值線性代數中的一個迭代法,可用來求出線性方程組解的近似值。該方法以卡爾·弗里德里希·高斯路德維希·賽德爾英語Philipp Ludwig von Seidel命名。

算法

對於一個含有n個未知量及n個等式的如下線性方程組

 

為了求這個方程組的解 ,我們使用迭代法。k用來計量迭代步數。給定該方程組解的一個近似值 。在求k+1步近似值時,我們利用第m個方程求解第m個未知量。在求解過程中,所有已解出的k+1步元素都被直接使用。這一點與雅可比法不同。對於每個元素可以使用如下公式

 

重複上述的求解過程,可以得到一個線性方程組解的近似值數列: 。在該方法收斂的前提下,此數列收斂 . 可以證明數列收斂若線性方程組係數矩陣為對稱正定矩陣(symmetric positive definite matrix)或對角優勢矩陣(diagonally dominant matrix)。

為了保證該方法可以進行,主對角線元素 需非零。

矩陣分解

線性方程組的係數 可以被寫成矩陣形式  , 該矩陣的第i行第j列元素滿足  。方程組的右邊項可以被寫成向量形式  。 線性方程組因此可以被寫成矩陣運算形式

 

矩陣 可以分解成如下形式

 ,

其中 為一個對角矩陣滿足 ,  均為嚴格三角矩陣 為嚴格下三角矩陣,   為嚴格上三角矩陣。

例子

    .

高斯-賽德爾迭代的每一步可以寫成如下形式

 .

算法

因為元素可以被重新賦值為在這個算法中計算得到的新值,所以只需要保存一個向量,而向量索引被省略。該算法如下:

输入: A, b
输出:  

初始化一個的猜測結果 

repeat until convergence(收敛)
    for i from 1 until n do
         
        for j from 1 until n do
            if ji then
                 
            end if
        end (j - loop)
         
    end (i-loop)
    check if convergence is reached(检查是否已收敛)
end (repeat)

參見