解线性方程的迭代法
对于阶数不高的方程组,高斯消元法非常有效,对于阶数高,而系数矩阵稀疏的线性方程组却存在着困难,在这类矩阵中,非零元素较少,若用直接法求解,就要存贮大量零元素。为减少运算量、节约内存,使用迭代法更有利。迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法,迭代法需要的计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中不变,这些都是迭代法的优点;但是存在收敛性和收敛速度的问题。迭代法适用于解大型的稀疏矩阵方程组。
问题描述
一般的线性方程组形式如下:
{ 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{cases} a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2 \\ ...\\ a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a2nxn=b2...an1x1+an2x2+...+annxn=bn
系数矩阵A总是可以表示为3个特殊矩阵之和。
A = D − L − U A=D-L-U A=D−L−U
D = d i a g ( a 11 , a 22 , . . . , a n n ) = [ a 11 0 . . . 0 0 a 22 . . . 0 ⋮ ⋮ ⋱ ⋮ 0 0 . . . a n n ] D=diag(a_{11},a_{22},...,a_{nn})=\begin{bmatrix}a_{11}&0 & ... &0\\0&a_{22}&...&0\\\vdots & \vdots & \ddots & \vdots\\0&0&...&a_{nn}\end{bmatrix} D=diag(a11,a22,...,ann)=⎣⎢⎢⎢⎡a110⋮00a22⋮0......⋱...00⋮ann⎦⎥⎥⎥⎤
L = [ 0 0 . . . 0 − a 21 0 . . . 0 − a 31 − a 32 ⋮ ⋮ ⋱ ⋮ − a n 1 − a n 2 . . . 0 ] L=\begin{bmatrix}0&0 & ... &0\\-a_{21}&0&...&0\\-a_{31}&-a_{32}\\\vdots & \vdots & \ddots & \vdots\\-a_{n1}&-a_{n2}&...&0\end{bmatrix} L=⎣⎢⎢⎢⎢⎢⎡0−a21−a31⋮−an100−a32⋮−an2......⋱...00⋮0⎦⎥⎥⎥⎥⎥⎤
U = [ 0 − a 12 . . . − a 1 n 0 . . . − a 23 − a 2 n ⋮ ⋮ ⋱ ⋮ 0 0 . . . 0 ] U=\begin{bmatrix}0&-a_{12} & ... &-a_{1n}\\0&...&-a_{23}&-a_{2n}\\\vdots & \vdots & \ddots & \vdots\\0&0&...&0\end{bmatrix} U=⎣⎢⎢⎢⎡00⋮0−a12...⋮0...−a23⋱...−a1n−a2n⋮0⎦⎥⎥⎥⎤
L和U分别是系数A对角线以下和以上部分的负值。
迭代收敛条件
当然,不同的迭代法其迭代矩阵B和F的元素是不同的。所以我们讨论该迭代格式的收敛性,就具有普遍意义。
方程组 A X = b AX = b AX=b的雅克比迭代法、高斯―赛得尔迭代法的矩阵形式都可以写成下式:
X ( k + 1 ) = B X ( k ) + f X^{(k+1)}=BX^{(k)}+f X(k+1)=BX