线性方程组的数值解法
本文参考书为马东升著《数值计算方法》
高斯消去法
-
顺序高斯消去法
通过初等变换消去方程组系数矩阵主对角线以下的元素,而使方程组化为等价的上三角形方程组
-
列主元高斯消去法
在每一次消元之前,将绝对值大的元素交换到主对角线的位置上
-
高斯—若尔当消去法
每次消元时利用主元将所在列其余元素全部消为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,⋯,n -
A的特征值 λ 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 =