《機器學習數學基礎》中并沒有將解線性方程組作為重點,只是在第2章2.4.2節做了比較完整的概述。這是因為,如果用程序求解線性方程組,相對于高等數學教材中強調的手工求解,要簡單得多了。

本文是關于線性方程組的拓展,供對此有興趣的讀者閱讀。
1. 線性方程組的解位于一條直線
不失一般性,這里討論三維空間的情況,對于多維空間,可以由此外推,畢竟三維空間便于想象和作圖說明。
設矩陣 A = [ 1 2 4 1 3 5 ] \pmb{A}=\begin{bmatrix}1&2&4\\1&3&5\end{bmatrix} A=[11?23?45?] ,線性方程
[ 1 2 4 1 3 5 ] [ x 1 x 2 x 3 ] = [ 0 0 ] (1.1) \begin{bmatrix}1&2&4\\1&3&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} \tag{1.1} [11?23?45?] ?x1?x2?x3?? ?=[00?](1.1)
的解是:
[ x 1 x 2 x 3 ] = [ 0 0 0 ] , [ 2 1 ? 1 ] , [ 4 2 ? 2 ] , ? \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix},\begin{bmatrix}2\\1\\-1\end{bmatrix},\begin{bmatrix}4\\2\\-2\end{bmatrix},\cdots ?x1?x2?x3?? ?= ?000? ?, ?21?1? ?, ?42?2? ?,?
可以將上述解寫成:
[ x 1 x 2 x 3 ] = α [ 2 1 ? 1 ] (1.2) \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\alpha\begin{bmatrix}2\\1\\-1\end{bmatrix} \tag{1.2} ?x1?x2?x3?? ?=α ?21?1? ?(1.2)
其中 α \alpha α 為任意數。
很顯然,(1.1)式是一條通過坐標系原點的直線。推而廣之,可以說 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集是一條過原點的直線(記作: l 1 l_1 l1? )。
如果是非齊次線性方程組,例如:
[ 1 2 4 1 3 5 ] [ x 1 x 2 x 3 ] = [ 4 5 ] (1.3) \begin{bmatrix}1&2&4\\1&3&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}4\\5\end{bmatrix} \tag{1.3} [11?23?45?] ?x1?x2?x3?? ?=[45?](1.3)
解為:
[ x 1 x 2 x 3 ] = [ 2 1 0 ] , [ 0 0 1 ] , [ 4 2 ? 1 ] , ? \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}2\\1\\0\end{bmatrix},\begin{bmatrix}0\\0\\1\end{bmatrix},\begin{bmatrix}4\\2\\-1\end{bmatrix},\cdots ?x1?x2?x3?? ?= ?210? ?, ?001? ?, ?42?1? ?,?
這些點的集合是一條不過原點的直線。即 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解集是一條不過原點的直線(記作: l 2 l_2 l2? )。并且,這條直線與 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集所在直線平行。對此結論證明如下:
設 u \pmb{u} u 和 v \pmb{v} v 是 A x = b \pmb{Ax}=\pmb{b} Ax=b 的兩個解,則:
A u = b A v = b \begin{split}&\pmb{Au}=\pmb{b}\\&\pmb{Av}=\pmb{b}\end{split} ?Au=bAv=b?
上面二式相減,得:
A ( u ? v ) = 0 \pmb{A}(\pmb{u}-\pmb{v})=\pmb{0} A(u?v)=0
即 u ? v \pmb{u}-\pmb{v} u?v 是 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的一個解。
u \pmb{u} u 和 v \pmb{v} v 是 A x = b \pmb{Ax}=\pmb{b} Ax=b 解集對應的直線上( l 2 l_2 l2? )的兩個點,則 u ? v \pmb{u}-\pmb{v} u?v 的方向必然在直線 l 2 l_2 l2? 的方向上(或者在直線 l 2 l_2 l2? 上,或者在于 l 2 l_2 l2? 平行的直線上)。
又因為 u ? v \pmb{u}-\pmb{v} u?v 也是 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解,所以 u ? v \pmb{u}-\pmb{v} u?v 在過原點的直線 l 1 l_1 l1? 上。
因此, l 1 l_1 l1? 平行于 l 2 l_2 l2? ,即 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解集所在直線不過原點,且平行于過原點的 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集所在直線。
2. 克拉默法則
對《機器學習數學基礎》第2章2.4.2節中克拉默法則進行證明。
克拉默法則(Cramer’s rule)利用行列式計算 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解,其中 A \pmb{A} A 是 n × n n\times n n×n 方陣。
由于克拉默法則的運行效率不如高斯消元法,所以不能用于大數量方程的線性方程組,通常只用于理論推導 [ 2 ] ^{[2]} [2] ,從這個角度看,此法則除了具有理論意義之外,在計算上完全可以不用。
下面的證明來自于參考文獻[2],根據需要做了適當修改。
克拉默法則
設 n n n 階方陣 A \pmb{A} A , n n n 維向量 b \pmb{b} b ,將 A \pmb{A} A 的第 i i i 列以 b \pmb{b} b 替換,并記作 A i ( b ) \pmb{A}_i(\pmb{b}) Ai?(b) ,用列向量表示為:
A i ( b ) = [ a 1 ? a i ? 1 b a i + 1 ? a n ] \pmb{A}_i(\pmb{b})=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{a}_{i-1}&\pmb{b}&\pmb{a}_{i+1}&\cdots&\pmb{a}_n\end{bmatrix} Ai?(b)=[a1????ai?1??b?ai+1????an??]
若 A \pmb{A} A 可逆,即 ∣ A ∣ ≠ 0 |\pmb{A}|\ne0 ∣A∣=0 ,則 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解:
x i = ∣ A i ( b ) ∣ ∣ A ∣ , ( i = 1 , 2 , ? , n ) \pmb{x_i}=\frac{|\pmb{A}_i(\pmb{b})|}{|\pmb{A}|},(i=1,2,\cdots,n) xi?=∣A∣∣Ai?(b)∣?,(i=1,2,?,n)
證明
將原方程 A x = b \pmb{Ax}=\pmb{b} Ax=b 轉化為等價的 A X = B \pmb{AX}=\pmb{B} AX=B ,其中 X , B \pmb{X},\pmb{B} X,B 都是 n × n n\times n n×n 矩陣,將單位矩陣以列向量的形式表示為: I = [ e 1 ? e n ] \pmb{I}=\begin{bmatrix}\pmb{e}_1&\cdots&\pmb{e}_n\end{bmatrix} I=[e1????en??] 。
以列向量 x \pmb{x} x 取代 I \pmb{I} I 的第 i i i 列,再左乘 A \pmb{A} A :
A I i ( x ) = A [ e 1 ? x ? e n ] \pmb{AI}_i(\pmb{x})=\pmb{A}\begin{bmatrix}\pmb{e}_1&\cdots&\pmb{x}&\cdots&\pmb{e}_n\end{bmatrix} AIi?(x)=A[e1????x???en??]
參考“對矩陣乘法深入理解”中以列為單元進行矩陣乘法,上式可以進一步變換:
A I i ( x ) = [ A e 1 ? A x ? A e n ] = [ a 1 ? b ? a n ] = A i ( b ) \begin{split}\pmb{AI}_i(\pmb{x})&=\begin{bmatrix}\pmb{A}\pmb{e}_1&\cdots&\pmb{A}\pmb{x}&\cdots&\pmb{A}\pmb{e}_n\end{bmatrix}\\&=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{b}&\cdots&\pmb{a}_n\end{bmatrix}\\&=\pmb{A}_i(\pmb{b})\end{split} AIi?(x)?=[Ae1????Ax???Aen??]=[a1????b???an??]=Ai?(b)?
上式即為 A X = B \pmb{AX}=\pmb{B} AX=B ,其中 X = I i ( x ) , B = A i ( b ) \pmb{X}=\pmb{I}_i(\pmb{x}), \pmb{B}=\pmb{A}_i(\pmb{b}) X=Ii?(x),B=Ai?(b)
利用矩陣乘積的行列式性質,得:
∣ A X ∣ = ∣ A ∣ ∣ X ∣ = ∣ A ∣ ∣ I i ( x ) ∣ = ∣ A i ( b ) ∣ |\pmb{AX}|=|\pmb{A}||\pmb{X}|=|\pmb{A}||\pmb{I}_i(\pmb{x})|=|\pmb{A}_i(\pmb{b})| ∣AX∣=∣A∣∣X∣=∣A∣∣Ii?(x)∣=∣Ai?(b)∣
以余子式展開計算行列式,得: ∣ I i ( x ) ∣ = x i |\pmb{I}_i(\pmb{x})|=x_i ∣Ii?(x)∣=xi? (參閱[3]) ,所以, ∣ A ∣ x i = ∣ A i ( b ) ∣ |\pmb{A}|x_i=|\pmb{A}_i(\pmb{b})| ∣A∣xi?=∣Ai?(b)∣ 。
若 ∣ A ∣ ≠ 0 |\pmb{A}|\ne0 ∣A∣=0 ,則:
x i = ∣ A i ( b ) ∣ ∣ A ∣ x_i=\frac{|\pmb{A}_i(\pmb{b})|}{|\pmb{A}|} xi?=∣A∣∣Ai?(b)∣?
3. 存在性與唯一性
矩陣 A \pmb{A} A 是 m × n m\times n m×n ,對于任意 m m m 維的非零向量 b \pmb{b} b ,線性方程組 A x = b \pmb{Ax}=\pmb{b} Ax=b 解的唯一性和存在性討論 [ 4 ] ^{[4]} [4]。
存在性
A x = b \pmb{Ax}=\pmb{b} Ax=b 有解,當且僅當 b T y = 0 \pmb{b}^T\pmb{y}=0 bTy=0 ,其中 y \pmb{y} y 為滿足 A T y = 0 \pmb{A}^T\pmb{y}=\pmb0 ATy=0 的任何向量。
或曰:
若 b \pmb{b} b 正交于左零空間 N ( A T ) N(\pmb{A}^T) N(AT) ,則 A x = b \pmb{Ax}=\pmb{b} Ax=b 有解,反之亦然。
唯一性
A x = b \pmb{Ax}=\pmb{b} Ax=b 有唯一解(若解存在),當且僅當 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 有唯一解 x = 0 \pmb{x}=\pmb{0} x=0 。
或曰:
若矩陣 A \pmb{A} A 零空間 N ( A ) N(\pmb{A}) N(A) 僅含零向量,則 A x = b \pmb{Ax}=\pmb{b} Ax=b 有唯一解,反之亦然。
參考文獻
[1]. https://ccjou.wordpress.com/2009/03/20/axb-和-ax0-的解集合有什麼關係?/
[2]. https://ccjou.wordpress.com/2009/11/10/克拉瑪公式的證明/
[3]. 對 ∣ I i ( x ) ∣ = x i |\pmb{I}_i(\pmb{x})|=x_i ∣Ii?(x)∣=xi? ,以 4 × 4 4\times4 4×4 矩陣為例,當 i = 2 i=2 i=2 時:
∣ 1 x 1 0 0 1 x 2 0 0 1 x 3 0 0 1 x 4 0 0 ∣ = x 2 ∣ 1 0 0 0 1 0 0 ) 1 ∣ = x 1 ? 1 = x 2 \begin{vmatrix}1&x_1&0&0\\1&x_2&0&0\\1&x_3&0&0\\1&x_4&0&0\end{vmatrix}=x_2\begin{vmatrix}1&0&0\\0&1&0\\0&)&1\end{vmatrix}=x_1\cdot1=x_2 ?1111?x1?x2?x3?x4??0000?0000? ?=x2? ?100?01)?001? ?=x1??1=x2?
[4]. https://ccjou.wordpress.com/2011/06/07/線性方程解的存在性與唯一性/