雅克比迭代和高斯赛德尔迭代法可以用来求线性方程组的近似解,与雅克比迭代不同的是,高斯赛德尔迭代法在第k+1次迭代求
x
i
k
+
1
x_{i}^{k+1}
xik+1时,会用到
x
1
k
,
x
2
k
.
.
x
i
−
1
k
x_{1}^{k},x_{2}^{k}..x_{i-1}^{k}
x1k,x2k..xi−1k 的值。
假设有如下的线性方程组:
a
11
⋅
x
1
+
a
12
⋅
x
2
+
…
+
a
1
n
⋅
x
n
=
b
1
a
21
⋅
x
1
+
a
22
⋅
x
2
+
…
+
a
2
n
⋅
x
n
=
b
2
⋮
=
⋮
a
n
1
⋅
x
1
+
a
n
2
⋅
x
2
+
…
+
a
n
n
⋅
x
n
=
b
n
.
\begin{aligned} a_{11} \cdot x_{1}+a_{12} \cdot x_{2}+\ldots+a_{1 n} \cdot x_{n} &=b_{1} \\ a_{21} \cdot x_{1}+a_{22} \cdot x_{2}+\ldots+a_{2 n} \cdot x_{n} &=b_{2} \\ \vdots &=\vdots \\ a_{n 1} \cdot x_{1}+a_{n 2} \cdot x_{2}+\ldots+a_{n n} \cdot x_{n} &=b_{n} . \end{aligned} \\
a11⋅x1+a12⋅x2+…+a1n⋅xna21⋅x1+a22⋅x2+…+a2n⋅xn⋮an1⋅x1+an2⋅x2+…+ann⋅xn=b1=b2=⋮=bn.
雅克比迭代求解公式如下:
x
m
(
k
+
1
)
=
1
a
m
m
(
b
m
−
∑
j
≠
m
a
m
j
x
j
(
k
)
)
,
1
≤
m
≤
n
x_{m}^{(k+1)}=\frac{1}{a_{mm}}\left(b_{m}-\sum_{j \neq m} a_{m j} x_{j}^{(k)}\right), 1 \leq m \leq n \\
xm(k+1)=amm1⎝⎛bm−j=m∑amjxj(k)⎠⎞,1≤m≤n
高斯赛德尔迭代求解公式如下:
x
m
k
+
1
=
1
a
m
m
(
b
m
−
∑
j
=
1
m
−
1
a
m
j
⋅
x
j
k
+
1
−
∑
j
=
m
+
1
n
a
m
j
⋅
x
j
k
)
,
1
≤
m
≤
n
x_{m}^{k+1}=\frac{1}{a_{m m}}\left(b_{m}-\sum_{j=1}^{m-1} a_{m j} \cdot x_{j}^{k+1}-\sum_{j=m+1}^{n} a_{m j} \cdot x_{j}^{k}\right), \quad 1 \leq m \leq n \\
xmk+1=amm1(bm−j=1∑m−1amj⋅xjk+1−j=m+1∑namj⋅xjk),1≤m≤n
该表达式的 x m x_{m} xm由线性方程组的第m行转换而来,同时考虑到了在计算 x m k + 1 x_{m}^{k+1} xmk+1时, x 1 k + 1 , x 2 k + 1 . . x m − 1 k + 1 x_{1}^{k+1},x_{2}^{k+1}..x_{m-1}^{k+1} x1k+1,x2k+1..xm−1k+1已经迭代产生的情况,利用最新的参数进行迭代更新。
可以看到在两种迭代方法的求解公式中, x m x_{m} xm 的计算需要除以其系数 a m m a_{mm} amm ,所以高斯赛德尔迭代法要求线性方程组的主对角矩阵元素非0。