与Jacobi迭代法密切相关的一种迭代方法叫做Gauss-Seidel迭代方法。Gauss-Seidel方法与Jacobi方法之间的差别是:在一个迭代步里,一旦未知变量值有更新,则立马投入使用。而不用像Jacobi方法那样下一个迭代步才使用。对于方程组:3u+v=5,u+2v=5,Gauss-Seidel迭代就这样进行:
注意红圈位置是Gauss-Seidel方法与Jacobi方法之间的差别:v1的计算用到了u1而不是u0。通常情况下Gauss-Seidel方法比Jacobi方法收敛更快。
设D表示系数矩阵A 的主对角部分,L表示A的主对角线下方部分,U表示A的主对角线上方部分。则A=D+L+U,AX=b可改写为(D+L+U)x=b,进一步有
用Gauss-Seidel方法求解方程组
Gauss-Seidel迭代格式为:
使用初值[u0,v0,w0]=[0,0,0]开始迭代,以下是迭代过程:
系数矩阵是严格对角占优的,因此迭代将收敛到精确解[2,-1,1]。
Gauss-Seidel方法的Fortran程序
☆☆☆ 往期相关 ☆☆☆