迭代法是通过迭代的方式,一步一步逼近线性方程组解。它不一定能获得精确解,但在迭代多次以后,精度可以无限接近解的真实值。所以当矩阵的维度很高时,在程序中常用这种方法来求解线性方程组。它的基本形式如下:
$x^{(k+1)} = Bx^{(k)} + f$
通常先设置一个随机初始值$x^{(0)}$,每次通过这个迭代式子计算下一次的$x^{(k)}$,通常使用前后两次的迭代结果之差来判断迭代解是否达到要求。
对于方程组$Ax = b$(要求$A$非奇异即可逆,否则迭代法不收敛),迭代法有以下几种:
基本迭代法就是最简单的定义,用于理解。先将$A$分解为$M - N$,其中$M$可逆,得:
$(M - N)x = b$
$Mx = Nx + b$
$x = M^{-1}Nx + M^{-1}b$
分离出这个等式后,直接把左边的$x$作为迭代式的下一步。得到迭代式如下:
$x^{(k+1)} = M^{-1}Nx^{(k)} + M^{-1}b$
雅可比迭代法把$A$分解为$D、L、U$三个矩阵,分别是$A$的主对角线、主对角线全为0下三角矩阵、主对角线全为0上三角矩阵,因为要求$D$的逆,所以要求$A$主对角线元素都非0:
$(D - L - U)x = b$
$Dx = (L + U)x + b$
得到迭代式:
$x^{(k+1)} = D^{-1}(L + U)x^{(k)} + D^{-1}b$
高斯-赛德尔迭代法是基于雅可比迭代法的改进。它相对于雅可比在存储上少了一个$x$向量规模大小的存储空间,比如$x$是5维的,就少了存这5个浮点型数的空间(其它明显优势没看出来)。它实际上就是雅可比计算$x$向量的每个元素的时候,把计算结果再存回原来的元素位置。然而现在的矩阵、向量运算一般是集成好一次性计算的,所以要将它变换一下,当然这样前面说的唯一优势也没了。╮(╯▽╰)╭
以下进行修改雅可比迭代到高斯-赛德尔:
计算每一个元素的时候,因为$L、U$分别是主对角线为0的下、上三角阵,按照上面说的,在第$k$次的迭代中,参与计算的所有$k+1$代元素都乘在了$D^{-1}L$上,因为$D^{-1}U$的下三角都是0,乘了也没用。所以得:
$x^{(k+1)} = D^{-1}Lx^{(k+1)} + D^{-1}Ux^{(k)} + D^{-1}b$
$Dx^{(k+1)} = Lx^{(k+1)} + Ux^{(k)} + b$
$x^{(k+1)} = (D-L)^{-1}Ux^{(k)} + (D-L)^{-1}b$
基于高斯-赛德尔迭代,它又给加一个系数。由高斯-赛德尔迭代式:
$Dx^{(k+1)} = Lx^{(k+1)} + Ux^{(k)} + b$
$Dx^{(k+1)} = Lx^{(k+1)} + Ux^{(k)} + b + Dx^{(k)} - Dx^{(k)}$
将$Dx^{(k)}$拎出来,后面看做一个变化率一样的东西,加上一个系数$\omega$:
$Dx^{(k+1)} = Dx^{(k)} + \omega(Lx^{(k+1)} + Ux^{(k)} + b - Dx^{(k)})$
这个式子可以形象地看做$x^{(k)}$到$x^{(k+1)}$是通过一个向量来变化的。变化一下得到迭代式:
$x^{(k+1)} = (D-\omega L)^{-1}[(1-\omega)D+\omega U]x^{(k)}+\omega(D-\omega L)^{-1}b$
对于$\omega$:$\omega$为1时,超松弛就是高斯-赛德尔,大于1时为超松弛,即迭代的步伐更快,小于1时为低松弛,迭代的步伐更小。显然越迭代到后期,$\omega$的值越要小。不然会出现震荡。
对于线性方程$Ax = b$,分裂为迭代的形式:$x^{(k+1)} = Bx^{(k)}+f$。
如果迭代法能最终收敛到$x^{(*)}=Bx^{(*)}+f$,就有:
$ \varepsilon^{(k)} := x^{(k)} - x^{(*)}, \lim\limits_{k \to +\infty}\varepsilon^{(k)} = 0$
因为有:
$\varepsilon^{(k)} = Bx^{(k-1)}+f-Bx^{(*)}-f$
$=B(x^{(k-1)}-x^{(*)})$
$=B\varepsilon^{(k-1)}$
$=B^2\varepsilon^{(k-2)}$
$=B^k\varepsilon^{(0)}=B^k(x^{(0)}-x^{(*)})$
所以,若:
$\lim\limits_{k \to +\infty}B^k = 0$
有迭代收敛。因此,简化一下,当$B$的谱半径小于1时,有迭代法收敛。谱半径就是矩阵绝对值最大的特征向量的绝对值。
实际上,一般只要$A$可逆,迭代就能收敛。
原文:https://www.cnblogs.com/qizhou/p/12268771.html