本文参考书为马东升著《数值计算方法》
顺序高斯消去法
通过初等变换消去方程组系数矩阵主对角线以下的元素,而使方程组化为等价的上三角形方程组
列主元高斯消去法
在每一次消元之前,将绝对值大的元素交换到主对角线的位置上
高斯—若尔当消去法
每次消元时利用主元将所在列其余元素全部消为0
杜利特尔分解
u r i = a r i − ∑ k = 1 r − 1 l r k u k i , i = r , r + 1 , ⋯ , n u_{ri}= a_{ri}-\sum_{k=1}^{r-1}l_{rk}u_{ki}\ ,\ i=r,r+1,\cdots,n uri=ari−k=1∑r−1lrkuki , i=r,r+1,⋯,n
l i r = ( a i r − ∑ k = 1 r − 1 l i k u k r ) / u r r , i = r + 1 , r + 2 , ⋯ , n l_{ir}=(a_{ir}-\sum_{k=1}^{r-1}l_{ik}u_{kr})/u_{rr}\ ,\ i=r+1,r+2,\cdots,n lir=(air−k=1∑r−1likukr)/urr , i=r+1,r+2,⋯,n
然后求解两个三角方程组
L y = b , U x = y Ly=b\ ,\quad Ux=y Ly=b ,Ux=y
例:
( 2 2 3 4 2 4 9 16 4 8 24 64 6 16 51 100 ) ( x 1 x 2 x 3 x 4 ) = ( 1 1 3 − 29 ) \left(\begin{matrix}2 &2 &3 &4\\2 &4 &9 &16\\4 &8 &24 &64\\6 &16 &51 &100\end{matrix}\right)\left(\begin{matrix}x_1\\x_2\\x_3\\x_4\end{matrix}\right)=\left(\begin{matrix}1\\1\\3\\-29\end{matrix}\right) ⎝⎜⎜⎛22462481639245141664100⎠⎟⎟⎞⎝⎜⎜⎛x1x2x3x4⎠⎟⎟⎞=⎝⎜⎜⎛113−29⎠⎟⎟⎞
解:
L = ( 1 1 1 2 2 1 3 5 2 1 ) , U = ( 2 2 3 4 2 6 12 6 31 − 34 ) , y = ( 1 0 1 − 34 ) , x = ( − 3 9 − 5 1 ) L=\left(\begin{matrix}1\\1 &1\\2 &2 &1\\3 &5 &2 &1\end{matrix}\right)\ ,\ U=\left(\begin{matrix}2 &2 &3 &4\\&2 &6 &12\\&&6 &31\\&&&-34\end{matrix}\right)\ ,\ y=\left(\begin{matrix}1\\0\\1\\-34\end{matrix}\right)\ ,\ x=\left(\begin{matrix}-3\\9\\-5\\1\end{matrix}\right) L=⎝⎜⎜⎛1123125121⎠⎟⎟⎞ , U=⎝⎜⎜⎛22236641231−34⎠⎟⎟⎞ , y=⎝⎜⎜⎛101−34⎠⎟⎟⎞ , x=⎝⎜⎜⎛−39−51⎠⎟⎟⎞
追赶法
{ l 1 = b 1 u i = c i / l i l i + 1 = b i + 1 − a i + 1 u i i = 1 , 2 , ⋯ , n − 1 \begin{cases} l_1=b_1\\ u_i=c_i/l_i\\ l_{i+1}=b_{i+1}-a_{i+1}u_i \end{cases} \ i=1,2,\cdots,n-1 ⎩⎪⎨⎪⎧l1=b1ui=ci/lili+1=bi+1−ai+1ui i=1,2,⋯,n−1
追:
{ y 1 = f 1 / l 1 y i = ( f i − a i y i − 1 ) / l i , i = 2 , 3 , ⋯ , n \begin{cases} y_1=f_1/l_1\\ y_i=(f_i-a_iy_{i-1})/l_i\ ,\ i=2,3,\cdots,n \end{cases} {y1=f1/l1yi=(fi−aiyi−1)/li , i=2,3,⋯,n
赶:
{ x n = y n x i = y i − u i x i + 1 , i = n − 1 , ⋯ , 2 , 1 \begin{cases} x_n=y_n\\ x_i=y_i-u_ix_{i+1}\ ,\ i=n-1,\cdots,2,1 \end{cases} {xn=ynxi=yi−uixi+1 , i=n−1,⋯,2,1
对称正定矩阵
A对称正定,则A的对角元素 a i i > 0 , i = 1 , 2 , ⋯ , n a_{ii}>0\ ,\ i=1,2,\cdots,n aii>0 , i=1,2,⋯,n
A的顺序主子阵 A k , k = 1 , 2 , ⋯ , n A_k\ ,\ k=1,2,\cdots,n Ak , k=1,2,⋯,n也是对称正定矩阵,其中
A k = ( a 11 a 12 ⋯ a 1 k a 21 a 22 ⋯ a 2 k ⋯ ⋯ ⋯ ⋯ a k 1 a k 2 ⋯ a k k ) , k = 1 , 2 , ⋯ , n A_k= \left( \begin{matrix} a_{11}&a_{12}&\cdots&a_{1k}\\ a_{21}&a_{22}&\cdots&a_{2k}\\ \cdots&\cdots&\cdots&\cdots\\ a_{k1}&a_{k2}&\cdots&a_{kk}\\ \end{matrix} \right) \ ,\ k=1,2,\cdots,n Ak=⎝⎜⎜⎛a11a21⋯ak1a12a22⋯ak2⋯⋯⋯⋯a1ka2k⋯akk⎠⎟⎟⎞ , k=1,2,⋯,nA的特征值 λ i > 0 , i = 1 , 2 , ⋯ , n \lambda_i>0\ ,\ i=1,2,\cdots,n λi>0 , i=1,2,⋯,n
A的顺序主子式都大于零,即 d e t A k > 0 , k = 1 , 2 , ⋯ , n detA_k>0\ ,\ k=1,2,\cdots,n detAk>0 , k=1,2,⋯,n
A非奇异,且 A − 1 A^{-1} A−1为对称正定矩阵
例:判断矩阵 A = ( 4 − 1 0 − 1 4 − 1 0 − 1 4 ) A=\left(\begin{matrix}4&-1&0\\-1&4&-1\\0&-1&4\end{matrix}\right) A=⎝⎛4−10−14−10−14⎠⎞的正定性
解: A A A为对称矩阵,且 ∣ A 1 ∣ = 4 > 0 , ∣ A 2 ∣ = 15 > 0 , ∣ A 3 ∣ = 56 > 0 \left|A_1\right|=4>0\ ,\ \left|A_2\right|=15>0\ ,\ \left|A_3\right|=56>0 ∣A1∣=4>0 , ∣A2∣=15>0 , ∣A3∣=56>0,即 A A A为对称正定矩阵
对称正定矩阵的乔累斯基分解
{ l i i = a i i − ∑ k = 1 r − 1 l i k 2 l j i = ( a j i − ∑ k = 1 i − 1 l j k l i k ) / l i i , j = i + 1 , i + 1 , ⋯ , n \begin{cases} l_{ii}=\sqrt{a_{ii}-\sum\limits_{k=1}^{r-1}l_{ik}^2}\\ l_{ji}=(a_{ji}-\sum\limits_{k=1}^{i-1}l_{jk}l_{ik})/l_{ii}\ ,\ j=i+1,i+1,\cdots,n \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧lii=aii−k=1∑r−1lik2lji=(aji−k=1∑i−1ljklik)/lii , j=i+1,i+1,⋯,n
例:对矩阵 A = ( 1 1 2 1 2 0 2 0 11 ) A=\left(\begin{matrix}1&1&2\\1&2&0\\2&0&11\end{matrix}\right) A=⎝⎛1121202011⎠⎞进行乔累斯基分解
解: A A A为对称矩阵,且 ∣ A 1 ∣ = 1 > 0 , ∣ A 2 ∣ = 1 > 0 , ∣ A 3 ∣ > 0 \left|A_1\right|=1>0\ ,\ \left|A_2\right|=1>0\ ,\ \left|A_3\right|>0 ∣A1∣=1>0 , ∣A2∣=1>0 , ∣A3∣>0
即 A A A为对称正定矩阵。可进行乔累斯基分解
解得 L = ( 1 1 1 2 − 2 3 ) L=\left(\begin{matrix}1\\1&1\\2&-2&\sqrt{3}\end{matrix}\right) L=⎝⎛1121−23⎠⎞
平方根法
对对称正定矩阵进行乔累斯基分解后,求解两个三角方程组
L y = b , L T x = y Ly=b\ ,\ L^Tx=y Ly=b , LTx=y
改进平方根法
为避免重复计算,作如下变换
A = L D L T = T L T A=LDL^T=TL^T A=LDLT=TLT
其中 T = L D T=LD T=LD,即引进辅助变量 t i j = l i j ⋅ d j t_{ij}=l_{ij}·d_j tij=lij⋅dj对于 i = 1 , 2 , ⋯ , n i=1,2,\cdots,n i=1,2,⋯,n
{ t i j = a i j − ∑ k = 1 j − 1 t i k l j k , j = 1 , 2 , ⋯ , i − 1 l i j = t i j / d j , j = 1 , 2 , ⋯ , i − 1 d i = a i i − ∑ k = 1 i − 1 t i k l i k \begin{cases} t_{ij}=a_{ij}-\sum\limits_{k=1}^{j-1}t_{ik}l_{jk}\ ,\ j=1,2,\cdots,i-1\\ l_{ij}=t_{ij}/d_{j}\ ,\ j=1,2,\cdots,i-1\\ d_i=a_{ii}-\sum\limits_{k=1}^{i-1}t_{ik}l_{ik} \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧tij=aij−k=1∑j−1tikljk , j=1,2,⋯,i−1lij=tij/dj , j=1,2,⋯,i−1di=aii−k=1∑i−1tiklik
计算顺序为 d 1 → l 21 → d 2 → l 31 → l 32 → d 3 → l 41 → l 42 → l 43 d_1\rightarrow l_{21}\rightarrow d_2 \rightarrow l_{31}\rightarrow l_{32}\rightarrow d_3\rightarrow l_{41}\rightarrow l_{42}\rightarrow l_{43} d1→l21→d2→l31→l32→d3→l41→l42→l43故等价求解 L ( D L T x ) = b L(DL^Tx)=b L(DLTx)=b,可分解为 L y = b , D L T x = y Ly=b\ ,\ DL^Tx=y Ly=b , DLTx=y,其计算公式为
{ y i = b i − ∑ k = 1 i − 1 l i k y k , 1 , 2 , ⋯ , n x i = y i / d i − ∑ k = i + 1 n l k i x k , i = n , n − 1 , ⋯ , 1 \begin{cases} y_i=b_i-\sum\limits_{k=1}^{i-1}l_{ik}y_k\ ,\ 1,2,\cdots,n\\ x_i=y_i/d_i-\sum\limits_{k=i+1}^{n}l_{ki}x_k\ ,\ i=n,n-1,\cdots,1 \end{cases} ⎩⎪⎪⎨⎪⎪⎧yi=bi−k=1∑i−1likyk , 1,2,⋯,nxi=yi/di−k=i+1∑nlkixk , i=n,n−1,⋯,1
例:用改进平方根法解方程组
( 3 3 5 3 5 9 5 9 17 ) ( x 1 x 2 x 3 ) = ( 0 − 2 − 4 ) \left(\begin{matrix}3&3&5\\3&5&9\\5&9&17\end{matrix}\right) \left(\begin{matrix}x_1\\x_2\\x_3\end{matrix}\right)= \left(\begin{matrix}0\\-2\\-4\end{matrix}\right) ⎝⎛3353595917⎠⎞⎝⎛x1x2x3⎠⎞=⎝⎛0−2−4⎠⎞
解: A A A为对称矩阵,且 ∣ A 1 ∣ = 3 > 0 , ∣ A 2 ∣ = 6 > 0 , ∣ A 3 ∣ = 4 > 0 \left|A_1\right|=3>0\ ,\ \left|A_2\right|=6>0\ ,\ \left|A_3\right|=4>0 ∣A1∣=3>0 , ∣A2∣=6>0 , ∣A3∣=4>0,方程组为对称正定方程组
解得 L = ( 1 1 1 5 3 2 1 ) D = ( 3 2 2 3 ) L=\left(\begin{matrix}1\\1&1\\\dfrac53&2&1\end{matrix}\right)\qquad D=\left(\begin{matrix}3\\&2\\&&\dfrac 23\end{matrix}\right) L=⎝⎜⎛1135121⎠⎟⎞D=⎝⎜⎛3232⎠⎟⎞
故有
{ y 1 = b 1 = 0 y 2 = b 2 − l 21 y 1 = − 2 y 3 = b 3 − l 31 y 1 − l 32 y 2 = 0 { x 3 = y 3 / d 3 = 0 x 2 = y 2 / d 2 − l 32 x 3 = − 1 x 1 = y 1 / d 1 − l 21 x 2 − l 31 x 3 = 1 \begin{cases} y_1=b_1=0\\ y_2=b_2-l_{21}y_1=-2\\ y_3=b_3-l_{31}y_1-l_{32}y_2=0 \end{cases} \qquad \begin{cases} x_3=y_3/d_3=0\\ x_2=y_2/d_2-l_{32}x_3=-1\\ x_1=y_1/d_1-l_{21}x_2-l_{31}x_3=1 \end{cases} ⎩⎪⎨⎪⎧y1=b1=0y2=b2−l21y1=−2y3=b3−l31y1−l32y2=0⎩⎪⎨⎪⎧x3=y3/d3=0x2=y2/d2−l32x3=−1x1=y1/d1−l21x2−l31x3=1
向量范数
向量 ∀ x ∈ R n \forall x\in R^n ∀x∈Rn的范数 ∥ x ∥ \left\|x\right\| ∥x∥是一个实数,且满足
- ∥ x ∥ ≥ 0 \left\|x\right\|\ge0 ∥x∥≥0,当且仅当 x = 0 x=0 x=0时, ∥ x ∥ = 0 \left\|x\right\|=0 ∥x∥=0 非负性
- ∀ a ∈ R ∗ , 有 \forall a\in R*,有 ∀a∈R∗,有 ∥ a x ∥ = ∣ a ∣ ⋅ ∥ x ∥ \left\|ax\right\|=\left|a\right|\cdot\left\|x\right\| ∥ax∥=∣a∣⋅∥x∥ 齐次性
- ∀ x , y ∈ R n \forall x,y\in R^n ∀x,y∈Rn,有 ∥ x + y ∥ ≤ ∥ x ∥ + ∥ y ∥ \left\|x+y\right\|\le\left\|x\right\|+\left\|y\right\| ∥x+y∥≤∥x∥+∥y∥ 三角不等式
范数的性质: x = ( x 1 , x 2 , ⋯ , x n ) T x=\left(x_1,x_2,\cdots,x_n\right)^T x=(x1,x2,⋯,xn)T
- ∥ x ∥ ≠ 0 , ∥ x ∥ x ∥ ∥ = 1 \left\|x\right\|\ne0,\left\|\frac x{\left\|x\right\|}\right\|=1 ∥x∥=0,∥∥∥∥x∥x∥∥∥=1
- ∥ − x ∥ = ∥ x ∥ \left\|-x\right\|=\left\|x\right\| ∥−x∥=∥x∥
- ∥ x ∥ − ∥ y ∥ ≤ ∥ x − y ∥ \left\|x\right\|-\left\|y\right\|\le\left\|x-y\right\| ∥x∥−∥y∥≤∥x−y∥
三种范数:给定 R n R^n Rn中的 x = ( x 1 , x 2 , ⋯ , x n ) T x=\left(x_1,x_2,\cdots,x_n\right)^T x=(x1,x2,⋯,xn)T
- ∥ x ∥ 1 = ∣ x 1 ∣ + ∣ x 2 ∣ + ⋯ + ∣ x n ∣ = ∑ i = 1 n ∣ x i ∣ \left\|x\right\|_1=\left|x_1\right|+\left|x_2\right|+\cdots+\left|x_n\right|=\sum\limits_{i=1}^n\left|x_i\right| ∥x∥1=∣x1∣+∣x2∣+⋯+∣xn∣=i=1∑n∣xi∣
- ∥ x ∥ 2 = x 1 2 + x 2 2 + ⋯ + x n 2 = ( ∑ i = 1 n x i 2 ) 1 2 \left\|x\right\|_2=\sqrt{x_1^2+x_2^2+\cdots+x_n^2}=\left(\sum\limits_{i=1}^nx_i^2\right)^\frac 12 ∥x∥2=x12+x22+⋯+xn2=(i=1∑nxi2)21
- ∥ x ∥ ∞ = max { ∣ x 1 ∣ , ∣ x 2 ∣ , ⋯ , ∣ x n ∣ } = max 1 ≤ i ≤ n { ∣ x i ∣ } \left\|x\right\|_{\infty}=\max\{\left|x_1\right|,\left|x_2\right|,\cdots,\left|x_n\right|\}=\max\limits_{1\le i\le n}\{\left|x_i\right|\} ∥x∥∞=max{∣x1∣,∣x2∣,⋯,∣xn∣}=1≤i≤nmax{∣xi∣}
p-范数: 对向量 x x x,有 ∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p , 1 ≤ p ≤ + ∞ \left\|x\right\|_p=\left(\sum\limits_{i=1}^n{\left|x_i\right|^p}\right)^\frac 1p\ ,\ 1\le p\le +\infty ∥x∥p=(i=1∑n∣xi∣p)p1 , 1≤p≤+∞
矩阵范数
∥ A ∥ ∞ = max 1 ≤ i ≤ n ∑ j = 1 n ∣ a i j ∣ \left\|A\right\|_{\infty}=\max\limits_{1\le i\le n}\sum\limits_{j=1}^n\left|a_{ij}\right| ∥A∥∞=1≤i≤nmaxj=1∑n∣aij∣ 行范数
∥ A ∥ 1 = max 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \left\|A\right\|_1=\max\limits_{1\le j\le n}\sum\limits_{i=1}^n\left|a_{ij}\right| ∥A∥1=1≤j≤nmaxi=1∑n∣aij∣ 列范数
∥ A ∥ 2 = λ m a x ( A T A ) \left\|A\right\|_2=\sqrt{\lambda_{max}(A^TA)} ∥A∥2=λmax(ATA) 谱范数
其中 λ m a x ( A T A ) \lambda_{max}(A^TA) λmax(ATA)表示 ( A T A ) (A^TA) (ATA)的最大特征值
特征值
设 A ∈ R m × n A\in R^{m\times n} A∈Rm×n,如果存在 λ ∈ R \lambda\in R λ∈R使
A x = λ x Ax=\lambda x Ax=λx
则称 λ \lambda λ为 A A A的一个特征值。 x x x就是特征值 λ \lambda λ对应的特征向量求特征值,也可转化为求 λ E − A = 0 \lambda E-A=0 λE−A=0 的解
谱半径
对于 R n × n R^{n\times n} Rn×n上的矩阵 A A A,设 A A A的特征值为 λ 1 , λ 2 , ⋯ , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,⋯,λn,称
ρ ( A ) = max { λ 1 , λ 2 , ⋯ , λ n } \rho(A)=\max\{\lambda_1,\lambda_2,\cdots,\lambda_n\} ρ(A)=max{λ1,λ2,⋯,λn}
为矩阵 A A A的谱半径性质: 对于 R n × n R^{n\times n} Rn×n上的矩阵 A A A,有 ρ ( A ) ≤ ∥ A ∥ \rho(A)\le\left\|A\right\| ρ(A)≤∥A∥
例:已知向量 x = ( 2 , − 3 , 4 ) T x=(2\ ,-3\ ,4)^T x=(2 ,−3 ,4)T,矩阵 A = ( 1 0 0 0 2 4 0 − 2 4 ) A=\begin{pmatrix}1&0&0\\0&2&4\\0&-2&4\end{pmatrix} A=⎝⎛10002−2044⎠⎞,求向量 x x x 和 A A A 的三种常用范数
解: ∥ x ∥ ∞ = m a x { 2 , 3 , 4 } = 4 \left\|x\right\|_{\infty}=max\{2\ ,3\ ,4\}=4 ∥x∥∞=max{2 ,3 ,4}=4
∥ x ∥ 1 = 2 + 3 + 4 = 9 \left\|x\right\|_1=2+3+4=9 ∥x∥1=2+3+4=9
∥ x ∥ 2 = 2 2 + ( − 3 ) 2 = 4 2 = 29 \left\|x\right\|_2=\sqrt{2^2+(-3)^2=4^2}=\sqrt{29} ∥x∥2=22+(−3)2=42=29
矩阵 A A A 的范数
∥ A ∥ ∞ = m a x { 1 , 6 , 6 } = 6 \left\|A\right\|_{\infty}=max\{1,6,6\}=6 ∥A∥∞=max{1,6,6}=6
∥ A ∥ 1 = m a x { 1 , 4 , 8 } = 8 \left\|A\right\|_1=max\{1,4,8\}=8 ∥A∥1=max{1,4,8}=8
A T A = ( 1 0 0 0 2 − 2 0 4 4 ) ( 1 0 0 0 2 4 0 − 2 4 ) = ( 1 0 0 0 8 0 0 0 32 ) A^TA=\begin{pmatrix}1&0&0\\0&2&-2\\0&4&4\end{pmatrix}\begin{pmatrix}1&0&0\\0&2&4\\0&-2&4\end{pmatrix}=\begin{pmatrix}1&0&0\\0&8&0\\0&0&32\end{pmatrix} ATA=⎝⎛1000240−24⎠⎞⎝⎛10002−2044⎠⎞=⎝⎛1000800032⎠⎞
由 λ E − A T A = 0 \lambda E-A^TA=0 λE−ATA=0 解得 λ 1 = 1 , λ 2 = 8 , λ 3 = 32 \lambda_1=1\ ,\lambda_2=8\ ,\lambda_3=32 λ1=1 ,λ2=8 ,λ3=32
故 ∥ A ∥ 2 = λ m a x ( A T A ) = m a x { 1 , 8 , 32 } = 4 2 \left\|A\right\|_2=\sqrt{\lambda_{max}(A^TA)}=\sqrt{max\{1,8,32\}}=4\sqrt{2} ∥A∥2=λmax(ATA)=max{1,8,32}=42
方程组的性态和矩阵的条件数
对于线性方程组 A x = b \ Ax=b Ax=b,若 A \ A A或 b \ b b的微小变化(又称扰动或摄动)引起 A x = b \ Ax=b Ax=b的解有巨大变化,则称方程组为病态方程组,系数矩阵 A \ A A为病态矩阵;否则二者均为良态
设矩阵 A \ A A非奇异,定义 c o n d ( A ) = ∥ A − 1 ∥ ∥ A ∥ \ cond(A)=\left\|A^{-1}\right\|\left\|A\right\| cond(A)=∥∥A−1∥∥∥A∥为矩阵 A \ A A的条件数
条件数有以下性质:
- c o n d ( A ) ≥ 1 , c o n d ( A ) = c o n d ( A − 1 ) cond(A)\ge1\ ,\ cond(A)=cond(A^{-1}) cond(A)≥1 , cond(A)=cond(A−1)
- c o n d ( α A ) = c o n d ( A ) cond(\alpha A)=cond(A) cond(αA)=cond(A),其中 α \ \alpha α为非零常数
- c o n d ( A B ) ≤ c o n d ( A ) c o n d ( B ) cond(AB)\le cond(A)cond(B) cond(AB)≤cond(A)cond(B)
当 c o n d ( A ) ≥ 1 \ cond(A)\ge 1 cond(A)≥1时, A x = b Ax=b Ax=b是病态方程组, A A A是病态的;当 c o n d ( A ) \ cond(A) cond(A)相对较小时, A x = b Ax=b Ax=b是良态方程组, A A A是良态的。至于条件数多大才算病态范围,一般来说没有具体标准,只是相对而言
解的相对误差上界:
∥ δ x ∥ ∥ x ∥ ≤ c o n d ( A ) ∥ δ b ∥ ∥ b ∥ \frac {\left\|\delta x\right\|}{\left\|x\right\|}\le cond(A)\frac {\left\|\delta b\right\|}{\left\|b\right\|} ∥x∥∥δx∥≤cond(A)∥b∥∥δb∥
例:已知方程组
( 1 0 − 1 2 2 1 0 2 2 ) ( x 1 x 2 x 3 ) = ( 1 2 1 3 − 2 3 ) \left(\begin{matrix}1&0&-1\\2&2&1\\0&2&2\end{matrix}\right) \left(\begin{matrix}x_1\\x_2\\x_3\end{matrix}\right)= \left(\begin{matrix}\dfrac 12\\\dfrac 13\\-\dfrac 23\end{matrix}\right) ⎝⎛120022−112⎠⎞⎝⎛x1x2x3⎠⎞=⎝⎜⎜⎜⎜⎛2131−32⎠⎟⎟⎟⎟⎞
的解 x = ( 1 2 , − 1 3 , 0 ) T x=(\dfrac 12\ ,-\dfrac 13\ ,0)^T x=(21 ,−31 ,0)T,如果右端有小扰动 ∥ δ b ∥ ∞ = 1 2 × 1 0 − 6 \left\|\delta b\right\|_\infty=\dfrac 12 \times 10^{-6} ∥δb∥∞=21×10−6,估计由此引起的解的相对误差
解: A − 1 = ( − 1 1 − 1 2 − 1 1.5 − 2 1 − 1 ) A^{-1}=\begin{pmatrix}-1&1&-1\\2&-1&1.5\\-2&1&-1\end{pmatrix} A−1=⎝⎛−12−21−11−11.5−1⎠⎞,所以有 c o n d ∞ ( A ) = ∥ A ∥ ∞ ∥ A − 1 ∥ ∞ = 5 × 4.5 = 22.5 cond_\infty(A)=\left\|A\right\|_\infty\left\|A^{-1}\right\|_\infty=5\times 4.5=22.5 cond∞(A)=∥A∥∞∥∥A−1∥∥∞=5×4.5=22.5
∥ δ x ∥ ∞ ∥ x ∥ ∞ ≤ c o n d ∞ ( A ) ∥ δ b ∥ ∞ ∥ b ∥ ∞ = 22.5 × 1 2 × 1 0 − 6 2 3 = 1.6875 × 1 0 − 5 \dfrac {\left\|\delta x\right\|_\infty}{\left\|x\right\|_\infty}\le cond_\infty(A)\dfrac {\left\|\delta b\right\|_\infty}{\left\|b\right\|_\infty}=22.5\times \dfrac {\dfrac 12 \times 10^{-6}}{\dfrac 23}=1.6875\times 10^{-5} ∥x∥∞∥δx∥∞≤cond∞(A)∥b∥∞∥δb∥∞=22.5×3221×10−6=1.6875×10−5
故解的相对误差为 1.6875 × 1 0 − 5 1.6875\times 10^{-5} 1.6875×10−5
误差分析
求得 A x = b \ Ax=b Ax=b的一个近似解 x ~ \ \widetilde x x 后,回代求其余量
r = b − A x ~ r=b-A\widetilde x r=b−Ax
如果 r \ r r很小,就认为解 x ~ \ \widetilde x x 是相当准确的
迭代原理
给定方程组 A x = b Ax=b Ax=b,其中 A ∈ R n × n , b ∈ R n , A A\in R^{n\times n},b\in R^n,A A∈Rn×n,b∈Rn,A非奇异
设找到等价方程组 x = B x + f x=Bx+f x=Bx+f
从而建立迭代格式 x ( k + 1 ) = B x ( k ) + f , k = 0 , 1 , ⋯ x^{(k+1)}=Bx^{(k)}+f\ ,\ k=0,1,\cdots x(k+1)=Bx(k)+f , k=0,1,⋯
若 lim k → + ∞ x ( k ) = x ∗ \lim\limits_{k\rightarrow+\infty}x^{(k)}=x^* k→+∞limx(k)=x∗,则称迭代法收敛, x ∗ x^* x∗即方程组的解
否则,称此迭代法发散
雅可比迭代
设线性方程组
{ 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+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \cdots\cdots\cdots\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯an1x1+an2x2+⋯+annxn=bn
其中系数矩阵非奇异,且主对角元 a i i ≠ 0 a_{ii}\ne 0 aii=0,则可由第 i \ i i个方程解出 x i x_i xi,有
x i ( k + 1 ) = 1 a i i ( b i − ∑ j = 1 i − 1 a i j x j ( k ) − ∑ j = i + 1 n a i j x j ( k ) ) , i = 1 , 2 , ⋯ , n x_i^{(k+1)}=\frac 1{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k)}-\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})\ ,\ i=1,2,\cdots,n xi(k+1)=aii1(bi−j=1∑i−1aijxj(k)−j=i+1∑naijxj(k)) , i=1,2,⋯,n
高斯—赛德尔迭代
雅可比迭代时,每次迭代都只用到前一次的迭代值,而在高斯—赛德尔迭代时,每次迭代充分利用当前最新的迭代值。因为在迭代收敛时,新值 x i ( k + 1 ) x_i^{(k+1)} xi(k+1)比老值 x i ( k ) x_i^{(k)} xi(k)更准确些
设线性方程组
{ 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+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \cdots\cdots\cdots\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯an1x1+an2x2+⋯+annxn=bn
其中系数矩阵非奇异,且主对角元 a i i ≠ 0 a_{ii}\ne 0 aii=0,则可由第 i \ i i个方程解出 x i x_i xi,有
x i ( k + 1 ) = 1 a i i ( b i − ∑ j = 1 i − 1 a i j x j ( k + 1 ) − ∑ j = i + 1 n a i j x j ( k ) ) , i = 1 , 2 , ⋯ , n x_i^{(k+1)}=\frac 1{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})\ ,\ i=1,2,\cdots,n xi(k+1)=aii1(bi−j=1∑i−1aijxj(k+1)−j=i+1∑naijxj(k)) , i=1,2,⋯,n
与雅可比迭代的区别在于第二项 x j \ x_j xj的指数变为了 k + 1 \ k+1 k+1一般来说,高斯—赛德尔迭代法比雅可比迭代法好。但情况并不总是这样,甚至有雅可比迭代收敛但高斯—赛德尔迭代不收敛的情况
松弛法
松弛法是对高斯—赛德尔迭代法的一种加速方法
设高斯—赛德尔迭代
x ~ i ( k + 1 ) = 1 a i i ( b i − ∑ j = 1 i − 1 a i j x j ( k + 1 ) − ∑ j = i + 1 n a i j x j ( k ) ) , i = 1 , 2 , ⋯ , n \tilde x_i^{(k+1)}=\frac 1{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})\ ,\ i=1,2,\cdots,n x~i(k+1)=aii1(bi−j=1∑i−1aijxj(k+1)−j=i+1∑naijxj(k)) , i=1,2,⋯,n
加速
x i ( k + 1 ) = ω x ~ i ( k + 1 ) + ( 1 − ω ) x i ( k ) x_i^{(k+1)}=\omega \tilde x_i^{(k+1)}+(1-\omega)x_i^{(k)} xi(k+1)=ωx~i(k+1)+(1−ω)xi(k)
上二式即松弛法,合并表为
x i ( k + 1 ) = ( 1 − ω ) x i ( k ) + ω a i i ( b i − ∑ j = 1 i − 1 a i j x j ( k + 1 ) − ∑ j = i + 1 n a i j x j ( k ) ) , i = 1 , 2 , ⋯ , n x_i^{(k+1)}=(1-\omega)x_i^{(k)}+\frac \omega{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})\ ,\ i=1,2,\cdots,n xi(k+1)=(1−ω)xi(k)+aiiω(bi−j=1∑i−1aijxj(k+1)−j=i+1∑naijxj(k)) , i=1,2,⋯,n
式中系数 ω \ \omega ω为松弛因子。高斯—赛德尔迭代法是取 ω = 1 \ \omega=1 ω=1的特殊情形为了保证迭代过程收敛,必须要求 0 < ω < 2 \ 0<\omega<2 0<ω<2
由于 x ~ i ( k + 1 ) \ \tilde x_i^{(k+1)} x~i(k+1)通常比 x i ( k ) \ x_i^{(k)} xi(k)精确,故为了加大 x ~ i ( k + 1 ) \ \tilde x_i^{(k+1)} x~i(k+1)比重,取 1 < ω < 2 \ 1<\omega<2 1<ω<2,即超松弛法(SOR方法)
实际计算时,根据系数矩阵性质或实践经验选取最佳的松弛因子
迭代公式的矩阵表示
系数矩阵可以分解为:
A = − L + D − U A=-L+D-U A=−L+D−U
注: L L L , D D D 为负雅可比迭代矩阵:
J = I − D − 1 A J=I-D^{-1}A J=I−D−1A
高斯—赛德尔迭代矩阵:
G = ( D − L ) − 1 U G=(D-L)^{-1}U G=(D−L)−1U
收敛的基本定理
迭代过程 x ( k + 1 ) = B x ( k ) + f x^{(k+1)}=Bx^{(k)}+f x(k+1)=Bx(k)+f 对任意给定初始向量 x ( 0 ) x^{(0)} x(0) 收敛的充分必要条件是迭代矩阵的谱半径 ρ ( B ) < 1 \rho(B)<1 ρ(B)<1 ,且当 ρ ( B ) < 1 \rho(B)<1 ρ(B)<1 时,迭代矩阵谱半径越小,收敛速度越快
引理:
对一种矩阵范数 ∥ A ∥ < 1 \left\|A\right\|<1 ∥A∥<1 ,则 lim k → ∞ A k = 0 \lim\limits_{k\rightarrow\infty}A^k=0 k→∞limAk=0 ,即矩阵收敛
对于 R n × n R^{n\times n} Rn×n 上的矩阵 A A A,有 ρ ( A ) ≤ ∥ A ∥ \rho(A)\le\left\|A\right\| ρ(A)≤∥A∥
对任意 ε > 0 \varepsilon>0 ε>0 ,存在算子范数,使得 ∥ A ∥ ≤ ρ ( A ) + ε \left\|A\right\|\le\rho(A)+\varepsilon ∥A∥≤ρ(A)+ε
因为需求特征值,所以基本定理的理论价值大于实用价值
例:方程组 A x = b Ax=b Ax=b ,其中 A = ( 1 − 1 3 0 − 1 3 1 − 1 3 0 − 1 3 1 ) A=\begin{pmatrix}1&-\dfrac 13&0\\-\dfrac 13&1&-\dfrac 13\\0&-\dfrac 13&1\end{pmatrix} A=⎝⎜⎜⎜⎜⎛1−310−311−310−311⎠⎟⎟⎟⎟⎞ , x , b ∈ R 3 x,\ b\in R^3 x, b∈R3
1)分别写出雅可比迭代法和高斯—赛德尔迭代法的计算公式(分量形式)
2)分别写出雅可比迭代法的迭代矩阵和高斯—赛德尔迭代法的迭代矩阵的谱半径,并用它们判别这两种迭代方法的收敛性
解:1)雅可比迭代法的计算公式
{ x 1 ( k + 1 ) = 1 3 x 2 ( k ) + b 1 x 2 ( k + 1 ) = 1 3 x 1 ( k ) + 1 3 x 3 ( k ) + b 2 x 3 ( k + 1 ) = 1 3 x 2 ( k ) + b 3 \begin{cases} x_1^{(k+1)}=\dfrac 13 x_2^{(k)}+b_1\\ x_2^{(k+1)}=\dfrac 13 x_1^{(k)}+\dfrac 13 x_3^{(k)}+b_2\\ x_3^{(k+1)}=\dfrac 13 x_2^{(k)}+b_3 \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(k+1)=31x2(k)+b1x2(k+1)=31x1(k)+31x3(k)+b2x3(k+1)=31x2(k)+b3
高斯—赛德尔迭代法的计算公式
{ x 1 ( k + 1 ) = 1 3 x 2 ( k ) + b 1 x 2 ( k + 1 ) = 1 3 x 1 ( k + 1 ) + 1 3 x 3 ( k ) + b 2 x 3 ( k + 1 ) = 1 3 x 2 ( k + 1 ) + b 3 \begin{cases} x_1^{(k+1)}=\dfrac 13 x_2^{(k)}+b_1\\ x_2^{(k+1)}=\dfrac 13 x_1^{(k+1)}+\dfrac 13 x_3^{(k)}+b_2\\ x_3^{(k+1)}=\dfrac 13 x_2^{(k+1)}+b_3 \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(k+1)=31x2(k)+b1x2(k+1)=31x1(k+1)+31x3(k)+b2x3(k+1)=31x2(k+1)+b3
2)系数矩阵分解为
L = ( 0 0 0 1 3 0 0 0 1 3 0 ) , D = ( 1 0 0 0 1 0 0 0 1 ) , U = ( 0 1 3 0 0 0 1 3 0 0 0 ) L=\begin{pmatrix}0&0&0\\\dfrac 13&0&0\\0&\dfrac 13&0\end{pmatrix},\ \ D=\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix},\ \ U=\begin{pmatrix}0&\dfrac 13&0\\0&0&\dfrac 13\\0&0&0\end{pmatrix} L=⎝⎜⎜⎛03100031000⎠⎟⎟⎞, D=⎝⎛100010001⎠⎞, U=⎝⎜⎜⎛00031000310⎠⎟⎟⎞
故雅可比迭代矩阵为
J = I − D − 1 A = ( 0 1 3 0 1 3 0 1 3 0 1 3 0 ) J=I-D^{-1}A=\begin{pmatrix}0&\dfrac 13&0\\\dfrac 13&0&\dfrac 13\\0&\dfrac 13&0\end{pmatrix} J=I−D−1A=⎝⎜⎜⎜⎜⎛0310310310310⎠⎟⎟⎟⎟⎞
再求出雅可比矩阵的特征值
∣ λ I − J ∣ = ∣ λ − 1 3 0 − 1 3 λ − 1 3 0 − 1 3 λ ∣ = λ 3 − 2 9 λ = 0 |\lambda I-J|=\left|\begin{matrix}\lambda&-\dfrac 13&0\\-\dfrac 13&\lambda&-\dfrac 13\\0&-\dfrac 13&\lambda\end{matrix}\right|=\lambda^3-\frac 29\lambda=0 ∣λI−J∣=∣∣∣∣∣∣∣∣∣∣λ−310−31λ−310−31λ∣∣∣∣∣∣∣∣∣∣=λ3−92λ=0
解得 λ 1 = 0 , λ 2 = 2 3 , λ 3 = − 2 3 \lambda_1=0,\ \lambda_2=\dfrac {\sqrt 2}3,\ \lambda_3=-\dfrac {\sqrt 2}3 λ1=0, λ2=32, λ3=−32,故 ρ ( J ) = 2 3 < 1 \rho(J)=\dfrac {\sqrt 2}3<1 ρ(J)=32<1,雅可比迭代收敛
高斯—赛德尔迭代矩阵
D − L = ( 1 0 0 − 1 3 1 0 0 − 1 3 1 ) , ( D − L ) − 1 = ( 1 0 0 1 3 1 0 1 9 1 3 1 ) D-L=\begin{pmatrix}1&0&0\\-\dfrac 13&1&0\\0&-\dfrac 13&1\end{pmatrix},\ (D-L)^{-1}=\begin{pmatrix}1&0&0\\\dfrac 13&1&0\\\dfrac 19&\dfrac 13&1\end{pmatrix} D−L=⎝⎜⎜⎛1−31001−31001⎠⎟⎟⎞, (D−L)−1=⎝⎜⎜⎛131910131001⎠⎟⎟⎞
G = ( D − L ) − 1 U = ( 1 0 0 1 3 1 0 1 9 1 3 1 ) ( 0 1 3 0 0 0 1 3 0 0 0 ) = ( 0 1 3 0 0 1 9 1 3 0 1 27 1 9 ) G=(D-L)^{-1}U=\begin{pmatrix}1&0&0\\\dfrac 13&1&0\\\dfrac 19&\dfrac 13&1\end{pmatrix}\begin{pmatrix}0&\dfrac 13&0\\0&0&\dfrac 13\\0&0&0\end{pmatrix}=\begin{pmatrix}0&\dfrac 13&0\\0&\dfrac 19&\dfrac 13\\0&\dfrac 1{27}&\dfrac 19\end{pmatrix} G=(D−L)−1U=⎝⎜⎜⎛131910131001⎠⎟⎟⎞⎝⎜⎜⎛00031000310⎠⎟⎟⎞=⎝⎜⎜⎜⎜⎛000319127103191⎠⎟⎟⎟⎟⎞
再求出高斯—赛德尔矩阵的特征值
∣ λ I − G ∣ = ∣ λ − 1 3 0 0 λ − 1 9 − 1 3 0 − 1 27 λ − 1 9 ∣ = λ ( λ − 1 9 ) 2 − 1 81 λ = 0 |\lambda I-G|=\left|\begin{matrix}\lambda&-\dfrac 13&0\\0&\lambda-\dfrac 19&-\dfrac 13\\0&-\dfrac 1{27}&\lambda-\dfrac 19\end{matrix}\right|=\lambda(\lambda-\dfrac 19)^2-\frac 1{81}\lambda=0 ∣λI−G∣=∣∣∣∣∣∣∣∣∣∣λ00−31λ−91−2710−31λ−91∣∣∣∣∣∣∣∣∣∣=λ(λ−91)2−811λ=0
解得 λ 1 = 0 , λ 2 = 0 , λ 3 = 2 9 \lambda_1=0,\ \lambda_2=0,\ \lambda_3=\dfrac 29 λ1=0, λ2=0, λ3=92,故 ρ ( G ) = 2 9 < 1 \rho(G)=\dfrac 29<1 ρ(G)=92<1 ,高斯—赛德尔迭代收敛
迭代矩阵法
引理:
若方阵 B B B 满足 ∥ B ∥ < 1 \left\|B\right\|<1 ∥B∥<1 ,则 I − B I-B I−B 为非奇异矩阵,且
∥ ( I ± B ) − 1 ∥ ≤ 1 1 − ∥ B ∥ \left\|(I\pm B)^{-1}\right\|\le \frac 1{1-\left\|B\right\|} ∥∥(I±B)−1∥∥≤1−∥B∥1定理:
若迭代矩阵 B B B 满足 ∥ B ∥ < 1 \left\|B\right\|<1 ∥B∥<1 ,则迭代过程 x ( k + 1 ) = B x ( k ) + f x^{(k+1)}=Bx^{(k)}+f x(k+1)=Bx(k)+f 对任意给定初始向量 x ( 0 ) x^{(0)} x(0) 收敛于 x = B x + f x=Bx+f x=Bx+f 的根 x ∗ x^* x∗
注:充分条件 若满足,则收敛;若不满足,不一定不收敛
若雅可比迭代矩阵满足 ∥ J ∥ < 1 \left\|J\right\|<1 ∥J∥<1 ,则其对应的高斯—赛德尔迭代也收敛
注:充分条件 若满足,则收敛;若不满足,不一定不收敛
系数矩阵法
严格对角占优矩阵:
∣ a i i ∣ > ∑ j = 1 , i ≠ j n ∣ a i j ∣ , i = 1 , 2 , ⋯ , n |a_{ii}|>\sum_{j=1\ ,\ i\ne j}^n|a_{ij}|\ ,\ i=1,2,\cdots,n ∣aii∣>j=1 , i=j∑n∣aij∣ , i=1,2,⋯,n定理:
严格对角占优方程组的雅可比迭代公式和高斯—赛德尔迭代公式均收敛
若系数矩阵 A A A 对称正定,则解方程组 A x = b Ax=b Ax=b 的高斯—赛德尔迭代收敛
若 2 D − A 2D-A 2D−A 对称正定,则雅可比迭代收敛
例:判断线性方程组
( − 1 − 5 8 4 1 − 2 − 2 9 3 ) ( x 1 x 2 x 3 ) = ( 9 − 6 5 ) \left(\begin{matrix}-1&-5&8\\4&1&-2\\-2&9&3\end{matrix}\right) \left(\begin{matrix}x_1\\x_2\\x_3\end{matrix}\right)= \left(\begin{matrix}9\\-6\\5\end{matrix}\right) ⎝⎛−14−2−5198−23⎠⎞⎝⎛x1x2x3⎠⎞=⎝⎛9−65⎠⎞
高斯—赛德尔迭代的收敛性
解:将方程组进行行行交换后为
( 4 1 − 2 − 2 9 3 − 1 − 5 8 ) ( x 2 x 3 x 1 ) = ( − 6 5 9 ) \left(\begin{matrix}4&1&-2\\-2&9&3\\-1&-5&8\end{matrix}\right) \left(\begin{matrix}x_2\\x_3\\x_1\end{matrix}\right)= \left(\begin{matrix}-6\\5\\9\end{matrix}\right) ⎝⎛4−2−119−5−238⎠⎞⎝⎛x2x3x1⎠⎞=⎝⎛−659⎠⎞
因为方程组系数阵为严格对角占优矩阵,故高斯—赛德尔迭代收敛
松弛法的收敛性
定理:
- 解方程组 A x = b Ax=b Ax=b 的松弛法收敛的必要条件是 0 < ω < 2 0<\omega<2 0<ω<2
- 设 A A A 对称正定,且 0 < ω < 2 0<\omega<2 0<ω<2 ,则解方程组 A x = b Ax=b Ax=b 的松弛法收敛