前面章節介紹了向量組和矩陣理論,利用這些理論可以解決線性方程 A m n x = b A_{mn}\mathbf{x}=\mathbf{b} A m n x = b 解的存在性和唯一性問題。向量組理論如下:向量 b \mathbf{b} b 能被矩陣 A A A 向量組表示時,則存在解,否則不存在解。矩陣 A A A 向量組的極大無關組是基時,必存在解。存在解時,如果矩陣 A A A 向量組是無關組,則解唯一,否則解無窮多。矩陣理論如下:r a n k ( A , b ) = r a n k A rank (A,\mathbf{b})=rank A r a n k ( A , b ) = r a n k A 時存在解,否則不存在解。r a n k A = m rank A = m r a n k A = m 必存在解。存在解時,如果 r a n k A = n rank A=n r a n k A = n 解唯一,否則解無窮多。
雖然理論上完美地解決了方程解的存在性和唯一性問題,但實際中,如何計算出解,求矩陣的秩,得到向量組的極大無關組等具體問題,都需要通過算法得到,高斯消元法即是這樣的算法,能解決這些具體問題。
4.1 簡單方程的解
先以大家最熟悉的可逆方陣介紹方程的解,此時解存在且唯一。方程 A n n x = b A_{nn}\mathbf{x}=\mathbf{b} A n n x = b 按矩陣運算規則展開,即可得熟悉的 n n n 元一次方程。
A x = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ a n 1 a n 2 ⋯ a n n ] [ x 1 x 2 ⋮ x n ] = [ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n ⋮ a n 1 x 1 + a n 2 x 2 + ⋯ + a n n x n ] = [ b 1 b 2 ⋮ b n ]
A\mathbf{x}=
\left[ \begin{matrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots \\
a_{n1} & a_{n2} & \cdots & a_{nn}
\end{matrix} \right]
\left[ \begin{matrix}
x_1 \\
x_2 \\
\vdots \\
x_n
\end{matrix} \right]=
\left[ \begin{matrix}
a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n\\
a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n\\
\vdots \\
a_{n1}x_1 + a_{n2}x_2 + \cdots + a_{nn}x_n
\end{matrix} \right]=
\left[ \begin{matrix}
b_1 \\
b_2 \\
\vdots \\
b_n
\end{matrix} \right]
A x = ⎣ ⎢ ⎢ ⎢ ⎡ a 1 1 a 2 1 ⋮ a n 1 a 1 2 a 2 2 a n 2 ⋯ ⋯ ⋯ a 1 n a 2 n a n n ⎦ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x n ⎦ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 n x n a 2 1 x 1 + a 2 2 x 2 + ⋯ + a 2 n x n ⋮ a n 1 x 1 + a n 2 x 2 + ⋯ + a n n x n ⎦ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ b 1 b 2 ⋮ b n ⎦ ⎥ ⎥ ⎥ ⎤
得 n n n 元一次方程:
[ 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 ]
\left[ \begin{matrix}
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\\
\vdots \\
a_{n1}x_1 + a_{n2}x_2 + \cdots + a_{nn}x_n=b_n
\end{matrix} \right]
⎣ ⎢ ⎢ ⎢ ⎡ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 n x n = b 1 a 2 1 x 1 + a 2 2 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 ⎦ ⎥ ⎥ ⎥ ⎤
上述記號中矩陣 A = [ a i j ] A=[ a_{ij}] A = [ a i j ] 其中 a i j a_{ij} a i j 是矩陣第 i i i 行第 j j j 列的元素。
一般來說,當矩陣 A A A 是任意的,方程解 x \mathbf{x} x 與 A A A 和 b \mathbf{b} b 的數值關係十分複雜,但是 A A A 是特殊矩陣時,很容易得到解。前面已經介紹了三種特殊矩陣,單位陣、對角陣和正交矩陣都十分容易得到解。
單位陣時,方程 E x = b E\mathbf{x}=\mathbf{b} E x = b ,解就是向量 b \mathbf{b} b ,即 x = b \mathbf{x}=\mathbf{b} x = b ,是最簡單的情況。
對角陣時, D = d i a g ( d 1 , d 2 , . . . , d n ) D =diag(d_1,d_2,...,d_n) D = d i a g ( d 1 , d 2 , . . . , d n ) ,當對角線元素都不等於0時,對角矩陣可逆,逆爲:D − 1 = d i a g ( 1 d 1 , 1 d 2 , . . . , 1 d n ) D^{-1} =diag(\frac{1}{d_1},\frac{1}{d_2},...,\frac{1}{d_n}) D − 1 = d i a g ( d 1 1 , d 2 1 , . . . , d n 1 ) ,則方程 D x = b D\mathbf{x}=\mathbf{b} D x = b 解爲 x = D − 1 b \mathbf{x}=D^{-1}\mathbf{b} x = D − 1 b 即 x i = b i / d i x_i = b_i/d_i x i = b i / d i 是次最簡單的情況。
正交矩陣時,方程 Q x = b Q\mathbf{x}=\mathbf{b} Q x = b 解爲 x = Q T b \mathbf{x}=Q^T\mathbf{b} x = Q T b 是較簡單的情況。
還有一種比較簡單的情況,矩陣爲三角矩陣:上三角矩陣 U U U 和下三角矩陣 L L L 。
定義 上三角矩陣 U U U 是對角線左下角元素都是 0 0 0 ,即 a i j = 0 , i > j a_{ij}=0, i>j a i j = 0 , i > j ,非零元素都在矩陣右上角。下三角矩陣 L L L 是對角線右上角元素都是0,即 a i j = 0 , i < j a_{ij}=0, i < j a i j = 0 , i < j ,非零元素都在矩陣左下角。
U = [ 1 2 3 0 4 5 0 0 6 ] , L = [ 1 0 0 2 4 0 3 5 6 ] , A = [ 1 1 0 2 4 0 3 5 6 ] 。
U = \left[ \begin{matrix}
1 & 2 & 3\\
0 & 4 & 5\\
0 & 0 & 6
\end{matrix} \right],
L = \left[ \begin{matrix}
1 & 0 & 0\\
2 & 4 & 0\\
3 & 5 & 6
\end{matrix} \right],
A = \left[ \begin{matrix}
1 & 1 & 0\\
2 & 4 & 0\\
3 & 5 & 6
\end{matrix} \right]。
U = ⎣ ⎡ 1 0 0 2 4 0 3 5 6 ⎦ ⎤ , L = ⎣ ⎡ 1 2 3 0 4 5 0 0 6 ⎦ ⎤ , A = ⎣ ⎡ 1 2 3 1 4 5 0 0 6 ⎦ ⎤ 。
上面矩陣 A A A 不是三角陣。注意,上三角矩陣右上角元素也可以爲 0 0 0 。
三角矩陣能快速求得方程的解,以上三角矩陣爲例,此時方程爲:
[ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 0 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ 0 x 1 + 0 x 2 + ⋯ + a n n x n = b n ]
\left[ \begin{matrix}
a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n=b_1\\
0x_1 + a_{22}x_2 + \cdots + a_{2n}x_n=b_2\\
\vdots \\
0x_1 + 0x_2 + \cdots + a_{nn}x_n=b_n
\end{matrix} \right]
⎣ ⎢ ⎢ ⎢ ⎡ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 n x n = b 1 0 x 1 + a 2 2 x 2 + ⋯ + a 2 n x n = b 2 ⋮ 0 x 1 + 0 x 2 + ⋯ + a n n x n = b n ⎦ ⎥ ⎥ ⎥ ⎤
根據最後一個方程,可得 x n = b n / a n n x_n=b_n/a_{nn} x n = b n / a n n ,根據倒數第二個方程 0 x 1 + 0 x 2 + ⋯ + a n − 1 , n − 1 x n − 1 + a n − 1 , n x n = b n − 1 0x_1 + 0x_2 + \cdots + a_{n-1,n-1}x_{n-1} + a_{n-1,n}x_n=b_{n-1} 0 x 1 + 0 x 2 + ⋯ + a n − 1 , n − 1 x n − 1 + a n − 1 , n x n = b n − 1 可得 x n − 1 = ( b n − 1 − a n − 1 , n x n ) / a n − 1 , n − 1 x_{n-1}=(b_{n-1} - a_{n-1,n}x_n)/a_{n-1,n-1} x n − 1 = ( b n − 1 − a n − 1 , n x n ) / a n − 1 , n − 1 ,同理,按倒推法,可得倒數第 i + 1 i+1 i + 1 個方程的解爲
x n − i = ( b n − i − ∑ j = i + 1 n a n − i , j x j ) / a n − i , n − i
x_{n-i}=(b_{n-i} - \sum^n_{j=i+1} a_{n-i,j}x_j)/a_{n-i,n-i}
x n − i = ( b n − i − j = i + 1 ∑ n a n − i , j x j ) / a n − i , n − i
同理,下三角矩陣用同樣方法可求得解,只是不需要倒推,而是順推。由於我們習慣上三角矩陣,所以後面只以上三角矩陣爲例。根據公式 ( 5 ) (5) ( 5 ) ,每個解分量需要除以對角線元素 a i i a_{ii} a i i ,只要其不爲零,則方程必有解且唯一。
重要性質 三角矩陣對角線元素 a i i a_{ii} a i i 均不等於 0 0 0 ,則方程存在解且唯一,三角矩陣可逆。
重要性質 上三角矩陣的逆矩陣是上三角矩陣。
證:令上三角矩陣爲 U = [ a i j ] , a i j = 0 , i > j U=[ a_{ij}],a_{ij}=0, i>j U = [ a i j ] , a i j = 0 , i > j ,其逆矩陣爲 U − 1 = [ b i j ] U^{-1}=[ b_{ij}] U − 1 = [ b i j ] 。即 b i j = 0 , i > j b_{ij}=0, i>j b i j = 0 , i > j 。根據 U U − 1 = E UU^{-1} = E U U − 1 = E ,E = [ e i j ] , e i j = 1 , i = j ; 0 , i ≠ j E=[ e_{ij}], e_{ij}=1,i=j;0,i \ne j E = [ e i j ] , e i j = 1 , i = j ; 0 , i = j 根據矩陣乘法第 4 4 4 種計算方式,即矩陣 U U U 第 i i i 行向量和矩陣 U − 1 U^{-1} U − 1 第 j j j 列向量的內積爲 ( i , j ) (i,j) ( i , j ) 元素
a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i n b n j = e i j
a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots+a_{in}b_{nj}=e_{ij}
a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i n b n j = e i j
令 i = n , j < i i=n,j < i i = n , j < i 根據 a i j = 0 , i > j a_{ij}=0, i>j a i j = 0 , i > j ,得 0 b 1 j + 0 b 2 j + ⋯ + a n n b n j = 0 0b_{1j}+0b_{2j}+\cdots+a_{nn}b_{nj}=0 0 b 1 j + 0 b 2 j + ⋯ + a n n b n j = 0 得 b n j = 0 b_{nj}=0 b n j = 0 ,即逆矩陣最後一行均爲 0 0 0 ,除了對角線元素外。同理令 i = n − 1 , j < i i=n-1,j < i i = n − 1 , j < i 根據 a i j = 0 , i > j a_{ij}=0, i>j a i j = 0 , i > j ,得 0 b 1 j + 0 b 2 j + ⋯ + a n − 1 , n − 1 b n − 1 , j + a n − 1 , n b n j = 0 0b_{1j}+0b_{2j}+\cdots+a_{n-1,n-1}b_{n-1,j}+a_{n-1,n}b_{nj}=0 0 b 1 j + 0 b 2 j + ⋯ + a n − 1 , n − 1 b n − 1 , j + a n − 1 , n b n j = 0 得 b n − 1 , j = 0 b_{n-1,j}=0 b n − 1 , j = 0 ,即逆矩陣倒數第二行前 n − 2 n-2 n − 2 個元素均爲 0 0 0 。依次類推,可得逆矩陣倒數第 i i i 行前 n − i n-i n − i 個元素均爲 0 0 0 。
這個性質很好,上三角矩陣左下角 0 0 0 元素,逆矩陣對應位置也是 0 0 0 元素, 0 0 0 元素保持了位置不變。但必須指出,上三角矩陣右上角 0 0 0 元素,逆矩陣對應位置一般不是 0 0 0 元素。
逆矩陣元素可採用待定係數法快速方便地計算,讀者可自行推導。