Evanalysis
4.1預計閱讀時間: 27 分鐘

4.1 齊次方程組與零空間

用齊次方程組與零空間去系統描述所有解,而不是只找出某一個解。

課程目錄

當你已經懂得對方程組做行化簡,下一步就不應只問「這一題怎樣解」,而應問 「全部解究竟有甚麼結構」。齊次方程組是最適合開始問這個問題的地方,而零 空間正是回答這個問題的語言。

為甚麼齊次方程組特別

齊次線性方程組的常數項全部都是 00。用矩陣寫,就是

Ax=0.Ax = 0.

這種情況有一個立刻可見的特點:零向量永遠是它的解。

定義

齊次方程組

齊次線性方程組是形如

Ax=0Ax = 0

的線性方程組。

其中 x=0x = 0 稱為平凡解。

真正的問題在於:除了平凡解之外,是否還有非平凡解。

零空間把所有齊次解收集起來

定義

零空間

對實 m×nm\times n 矩陣 AA,其零空間定義為

N(A)={x∈Rn:Ax=0m}.N(A) = \{x\in\mathbb R^n : Ax = 0_m\}.

因此 N(A)N(A) 正正就是齊次方程組 Ax=0Ax = 0 的解集。

這個定義把「一些解」變成一個完整的數學對象。你不再只是在列例子,而是在 描述整個集合。

行化簡會揭示零空間的形狀

要找 N(A)N(A),就是解 Ax=0Ax = 0,也就是對增廣系統 [A∣0][A \mid 0] 做行化簡。 主元告訴你哪些變量被決定,自由變量則告訴你剩下多少自由方向。

例題

解一個齊次方程組並描述零空間

令

A=[12−124−2].A = \begin{bmatrix} 1 & 2 & -1 \\ 2 & 4 & -2 \end{bmatrix}.

要求解 Ax=0Ax = 0,把它行化簡:

[12−1024−20]∼[12−100000].\left[ \begin{array}{ccc|c} 1 & 2 & -1 & 0 \\ 2 & 4 & -2 & 0 \end{array} \right] \sim \left[ \begin{array}{ccc|c} 1 & 2 & -1 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right].

所以方程變成

x1+2x2−x3=0.x_1 + 2x_2 - x_3 = 0.

令 x2=sx_2 = s、x3=tx_3 = t 為自由變量,則

x1=−2s+t.x_1 = -2s + t.

因此

x=[−2s+tst]=s[−210]+t[101].x = \begin{bmatrix} -2s + t \\ s \\ t \end{bmatrix} = s \begin{bmatrix} -2 \\ 1 \\ 0 \end{bmatrix} + t \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}.

所以

N(A)=Span⁡{[−210],[101]}.N(A) = \operatorname{Span} \left\{ \begin{bmatrix} -2 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} \right\}.

這個例子說明:零空間描述的不只是「有沒有解」,而是全部解如何被建立出來。

齊次方程組與零空間

觀看齊次系統如何產生零空間方向,以及一個特解如何平移這些方向,描述 Ax=b 的全部解。

  1. 平凡解

    齊次系統永遠一致,因為 x=0 會給出 A0=0。真正問題是是否還有非零解。

  2. 零列保持為零

    對 [A|0] 做行化簡時,增廣零列仍然是零,因此係數矩陣的 RREF 決定齊次解結構。

  3. 自由變量成為方向

    主元變量由自由變量決定。每次只設定一個自由變量,便得到一個零空間方向向量。

  4. 零空間

    N(A)={x:Ax=0} 不是一些例子的清單,而是整個齊次解集,通常寫成方向向量的所有線性組合。

  5. 由一個特解平移

    若 p 解 Ax=b,則每個 p+q(其中 q 屬於 N(A))也解 Ax=b,而且所有解都如此得到。

  6. 自由度與唯一性

    若 N(A)={0},一致系統只有一個解。若 N(A) 有非零方向,加入其倍數便得到無限多解。

齊次系統 Ax=0 告訴你方程留下哪些自由方向。若 Ax=b 一致,一個特解會把這些方向放到正確右端的位置,因此完整解集是 p+N(A)。

齊次解控制非齊次解的結構

同一個想法也可用來描述一致系統 Ax=bAx = b 的全部解。

定理

所有解都等於某個特解加上一個零空間向量

設 xpx_p 是 Ax=bAx = b 的一個特解。

則向量 xx 是 Ax=bAx = b 的解,當且僅當

x=xp+vx = x_p + v

其中 v∈N(A)v \in N(A)。

這正是自由變量公式背後的結構定理。

證明

為甚麼全部解都具有 xp+N(A)x_p + N(A) 的形式

先設 xx 是 Ax=bAx = b 的任意一個解。那麼

Ax=b且Axp=b.Ax = b \qquad \text{且} \qquad Ax_p = b.

相減得

A(x−xp)=0.A(x - x_p) = 0.

所以 x−xp∈N(A)x - x_p \in N(A),即 x=xp+vx = x_p + v,其中 v∈N(A)v \in N(A)。

反過來,若 v∈N(A)v \in N(A),則 Av=0Av = 0。因此

A(xp+v)=Axp+Av=b+0=b.A(x_p + v) = Ax_p + Av = b + 0 = b.

所以任何形如 xp+vx_p + v 的向量,也必定是系統的解。

概念視角幾何

把整個零空間作同一個平移

固定一個特解 xpx_p 後,xp+N(A)x_p+N(A) 表示所有 xp+vx_p+v 組成的集合,其中 v∈N(A)v\in N(A)。加上 xpx_p 就是讓零空間的每個點作同一個位移。這建立了齊次解與非齊次解之間的一一對應,逆過程是減去 xpx_p。前面的證明分別說明了平移後的每個點都有效,以及每個解都能這樣得到。

特解本身一般不唯一,但平移所得的集合與特解選擇無關。若 xqx_q 是另一個解,則 h=xq−xp∈N(A)h=x_q-x_p\in N(A)。對每個 v∈N(A)v\in N(A),有 xq+v=xp+(h+v)x_q+v=x_p+(h+v),而封閉性保證 h+v∈N(A)h+v\in N(A)。因此 xq+N(A)⊆xp+N(A)x_q+N(A)\subseteq x_p+N(A);把 hh 換成 −h-h 可得反向包含。沿解集選擇不同起點,描述的仍是同一個解族。

一致性不可省略:沒有特解,就無法開始這個描述。當 b≠0b\ne0 時,一致方程組的解集不含零向量,因為 A0=0≠bA0=0\ne b。它是子空間的平移,稱為仿射子空間,卻不是向量子空間;兩個解相加後對應的右端是 2b2b,而非 bb。只有在齊次情況 b=0b=0,解集才就是零空間本身。

標準題型:由一個解走向全部解

上面的定理經常要雙向使用。正向的說法是:一旦你知道 uu 是 Ax=bAx = b 的一個解,就可以加上任何齊次解而不會離開原來的解集:

Ah=0⟹A(u+h)=Au+Ah=b+0=b.Ah = 0 \quad\Longrightarrow\quad A(u+h)=Au+Ah=b+0=b.

反方向同樣重要。若 vv 是同一個系統的另一個解,則

A(v−u)=Av−Au=b−b=0,A(v-u)=Av-Au=b-b=0,

所以 v−u∈N(A)v-u \in N(A)。因此兩個特解的差,不是一個任意的新特解,而是一個 齊次解。這就是

S(A,b)=u+N(A)S(A,b)=u+N(A)

這個公式的精確理由。

例題

用一個特解與兩個零空間方向描述全部解

假設系統 Ax=bAx=b 有一個已知解

p=[10−1010],p= \begin{bmatrix} 1\\0\\-1\\0\\1\\0 \end{bmatrix},

而齊次系統 Ax=0Ax=0 有以下兩個解方向:

q1=[2−31000],q2=[−310−221].q_1= \begin{bmatrix} 2\\-3\\1\\0\\0\\0 \end{bmatrix}, \qquad q_2= \begin{bmatrix} -3\\1\\0\\-2\\2\\1 \end{bmatrix}.

若這兩個方向張成 N(A)N(A),那麼 Ax=bAx=b 的所有解都可寫成

x=p+sq1+tq2,s,t∈R.x=p+s q_1+t q_2, \qquad s,t\in R.

展開來看,就是

x=[10−1010]+s[2−31000]+t[−310−221].x= \begin{bmatrix} 1\\0\\-1\\0\\1\\0 \end{bmatrix} +s \begin{bmatrix} 2\\-3\\1\\0\\0\\0 \end{bmatrix} +t \begin{bmatrix} -3\\1\\0\\-2\\2\\1 \end{bmatrix}.

pp 的角色與 q1q_1、q2q_2 的角色不同。pp 把解集放在正確的右邊 bb 上;q1q_1 與 q2q_2 則描述在保持同一個右邊時可以移動的方向。

還有一個常用的縮放判斷。若 Ap=bAp=b,則

2A(32p)=3Ap=3b.2A\left({3\over 2}p\right)=3Ap=3b.

所以 32p{3\over 2}p 是 2Ax=3b2Ax=3b 的一個解。這並不是說任何解集都可以任意 縮放;這裡可行,是因為係數矩陣與右邊同時被縮放,而且計算直接驗證了結論。

一個非齊次例子

例題

把所有解寫成特解加零空間

假設系統 Ax=bAx = b 有一個特解

xp=[301],x_p = \begin{bmatrix} 3 \\ 0 \\ 1 \end{bmatrix},

並且

N(A)=Span⁡{[1−10]}.N(A) = \operatorname{Span} \left\{ \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} \right\}.

那麼所有解都可寫成

x=[301]+t[1−10]=[3+t−t1],t∈R.x = \begin{bmatrix} 3 \\ 0 \\ 1 \end{bmatrix} + t \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} = \begin{bmatrix} 3 + t \\ -t \\ 1 \end{bmatrix}, \qquad t \in R.

零空間給出自由方向;特解則決定這整個解族位於哪裏。

為甚麼自由變量會產生無限多個齊次解

由行化簡角度去睇,一個重要結論會立即出現。

定理

只要有自由變量,就有無限多解

如果齊次系統 Ax=0Ax = 0 至少有一個自由變量,那麼它就會有無限多個解。

自由變量可以取任意實數。因為它本身就是解向量的一個座標,改變其數值必然改變整個向量。以實際自由座標作為參數時,參數不可能從完整的解向量中消失。

所以有一條值得明講的結論:如果變量數目多過主元方程數目,齊次系統裡面就 一定會留下自由變量,於是解自然是無限多個。

例題

一個自由變量已經會產生整條解線

假設行化簡後得到

x1−3x2=0.x_1 - 3x_2 = 0.

如果令 x2=tx_2 = t,則 x1=3tx_1 = 3t,所以所有解都可以寫成

[x1x2]=t[31],t∈R.\begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = t \begin{bmatrix} 3 \\ 1 \end{bmatrix}, \qquad t \in R.

由於 tt 可以取無限多個值,而不同的值給出不同的向量,所以解集有無限多個元素。

例題

零空間也可能只剩平凡解

令

A=[1001].A = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}.

則 Ax=0Ax = 0 就只是

x1=0,x2=0.x_1 = 0, \qquad x_2 = 0.

因此唯一解是零向量,所以

N(A)={0}N(A) = \{0\}

這個例子與前面有自由變量的情形相反。

零空間本身是一個子空間

零空間首先以「解集」的身份出現,但它也是 AA 定義域的一個子空間。

這表示零空間同時記錄了解的存在性,以及仍然保留多少個獨立的自由方向。

定理

零空間對線性組合封閉

對任何矩陣 AA,N(A)N(A) 都是一個子空間。特別是:

  • 0∈N(A)0 \in N(A);
  • 若 u,v∈N(A)u, v \in N(A),則 u+v∈N(A)u + v \in N(A);
  • 若 u∈N(A)u \in N(A) 而 cc 是純量,則 cu∈N(A)cu \in N(A)。

證明

為甚麼零空間是子空間

我哋已知 0∈N(A)0 \in N(A),因為 A0=0A0 = 0。

而若 u,v∈N(A)u, v \in N(A),則 Au=0Au = 0、Av=0Av = 0。由線性性質,

A(u+v)=Au+Av=0+0=0,A(u+v) = Au + Av = 0 + 0 = 0,

所以 u+v∈N(A)u+v \in N(A)。

同樣,若 u∈N(A)u \in N(A) 而 cc 是純量,則

A(cu)=c(Au)=c⋅0=0,A(cu) = c(Au) = c \cdot 0 = 0,

因此 cu∈N(A)cu \in N(A)。

知道零空間是子空間後,便可進一步研究其基底、維數,以及它們與主元結構的關係。

左乘矩陣可能丟失方程資料

行變換保留齊次解集,是因為每一步都可逆;一般的矩陣乘子卻未必可逆。準確的結論必須明確寫出集合包含的方向。

定理

左乘矩陣時零空間的包含關係

設 AA 是實 m×nm\times n 矩陣,GG 是實 p×mp\times m 矩陣,則

N(A)⊆N(GA).N(A)\subseteq N(GA).

如果 GG 是可逆方陣,則 N(A)=N(GA)N(A)=N(GA)。

證明

逆矩陣在哪個方向發揮作用?

任取 x∈N(A)x\in N(A),則 Ax=0mAx=0_m,所以 (GA)x=G(Ax)=G0m=0p(GA)x=G(Ax)=G0_m=0_p。因此 x∈N(GA)x\in N(GA),證明了任意相容乘子下的包含關係。注意,即使兩矩陣行數不同,兩個零空間中的向量仍都屬於 Rn\mathbb R^n。

反向包含則假設 GG 是可逆方陣,因此 p=mp=m,並取 x∈N(GA)x\in N(GA)。由 GAx=0pGAx=0_p 左乘 G−1G^{-1},得 Ax=G−10p=0mAx=G^{-1}0_p=0_m,所以 x∈N(A)x\in N(A)。只有這個方向使用了逆矩陣;結合兩個包含關係,才得到集合相等。

GAGA 的每一行都是 AA 各行的線性組合,因此新方程都是舊方程的推論,每個舊解必然滿足新方程。若組合過程丟失了資料,就可能產生額外的解。這解釋了為甚麼不能隨意用一般行組合代替初等行變換,而不檢查保留了哪些約束。

例題

丟失一個約束的矩陣乘子

取

A=[1001],G=[10].A=\begin{bmatrix}1&0\\0&1\end{bmatrix},\qquad G=\begin{bmatrix}1&0\end{bmatrix}.

則 GA=[1 0]GA=[1\ 0]。原方程 Ax=0Ax=0 同時要求 x1=0x_1=0 與 x2=0x_2=0;新方程只要求 x1=0x_1=0。所以

N(A)={02},N(GA)={[0t]:t∈R}.N(A)=\{0_2\},\qquad N(GA)=\left\{\begin{bmatrix}0\\t\end{bmatrix}:t\in\mathbb R\right\}.

向量 (0,1)T(0,1)^T 屬於第二個集合而不屬於第一個,因此包含嚴格。這裏直接核對了丟失的條件,而不是只比較方程條數。可逆性保證相等,卻不是對每個特定 AA 都必要的條件:若 AA 是零矩陣,即使乘子不可逆,兩個零空間仍都等於 Rn\mathbb R^n。不能自動把定理倒轉。

堆疊方程對應零空間的交集

另一種組合方程組的方法,是把全部方程一起保留。堆疊與只取某些行組合不同,它不會捨棄其中任何條件。

定理

堆疊矩陣的零空間

設實矩陣 AA 的大小為 m×nm\times n,BB 的大小為 p×np\times n。令

C=[AB],C=\begin{bmatrix}A\\B\end{bmatrix},

則 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。交集表示同時屬於兩個集合;行數可以不同,欄數卻必須相同。

證明

雙向證明堆疊矩陣恆等式

先取 x∈N(C)x\in N(C)。由分塊乘法,

0m+p=Cx=[AxBx].0_{m+p}=Cx=\begin{bmatrix}Ax\\Bx\end{bmatrix}.

比較上方的 mm 個元素與下方的 pp 個元素,分別得到 Ax=0mAx=0_m 與 Bx=0pBx=0_p。因此 xx 屬於兩個零空間,也就屬於它們的交集。

反過來,取 x∈N(A)∩N(B)x\in N(A)\cap N(B)。集合成員條件同時給出 Ax=0mAx=0_m 與 Bx=0pBx=0_p。把兩個輸出堆疊,得到

Cx=[0m0p]=0m+p,Cx=\begin{bmatrix}0_m\\0_p\end{bmatrix}=0_{m+p},

故 x∈N(C)x\in N(C)。兩個方向的成員關係都已核對,集合相等於是成立。

例如,堆疊 A=[1 0 0]A=[1\ 0\ 0] 與 B=[0 1 0]B=[0\ 1\ 0],就是同時施加 x1=0x_1=0 與 x2=0x_2=0,留下的恰好是 (0,0,t)T(0,0,t)^T。各自的零空間都較大,但交集只保留共同向量。重複堆疊同樣可以表示有限多個齊次解集的交集。下一節會用此恆等式區分保留每條方程,與只保留方程的某個線性組合。

零度量度剩下多少個獨立方向

以上討論說明,零空間記錄了方程組剩餘的自由度。

每一個自由變量,都對應一個獨立參數。所以零空間的維數恰好等於化簡後自由變量的個數。

用秩的語言去講,之後就會寫成

nullity⁡(A)=n−rank⁡(A),\operatorname{nullity}(A) = n - \operatorname{rank}(A),

但在正式介紹秩—零度定理之前,也可以把零度理解為「方程組剩下多少個獨立零空間方向」。

例題

零空間成員測試其實很直接

令

A=[110011],x=[1−11],z=[100].A = \begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \end{bmatrix}, \qquad x = \begin{bmatrix} 1 \\ -1 \\ 1 \end{bmatrix}, \qquad z = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}.

計算得到

Ax=[00],Az=[10].Ax = \begin{bmatrix} 0 \\ 0 \end{bmatrix}, \qquad Az = \begin{bmatrix} 1 \\ 0 \end{bmatrix}.

因此 x∈N(A)x \in N(A),但 z∉N(A)z \notin N(A)。要測試某個向量是否屬於零空間, 最直接的方法就是實際計算 AxAx。

如何由 RREF 讀出零空間基底

實際計算時,N(A)N(A) 的基底通常直接由自由變量描述讀出。

做法可以固定成:

  1. 先將 AA 行化簡;
  2. 分清楚主元變量與自由變量;
  3. 每次將一個自由變量設成 11,其餘自由變量設成 00;
  4. 由方程解回主元變量;
  5. 對每個自由變量重複一次。

這些向量確實構成一組基底,而不只是候選。設共有 kk 個自由座標,vjv_j 是把第 jj 個自由座標取一、其餘自由座標取零後得到的解。對任意 x∈N(A)x\in N(A),記其自由座標為 t1,…,tkt_1,\ldots,t_k。由封閉性,t1v1+⋯+tkvkt_1v_1+\cdots+t_kv_k 仍是齊次解,其自由座標與 xx 完全相同,而化簡後的主元方程唯一確定其餘座標。因此這個組合等於 xx,證明了張成。

再證明獨立性:若 c1v1+⋯+ckvk=0c_1v_1+\cdots+c_kv_k=0,則其第 jj 個自由座標恰好為 cjc_j,因為只有 vjv_j 在該位置取一。因此所有 cj=0c_j=0,無需再次消元便證得線性獨立。這些向量於是構成基底,其數目就是零度。若沒有自由變量,零空間是 {0}\{0\},其基底為空列表,而不是含有零向量的列表;這與零度為零相符。

還要分清楚幾何圖像:

  • 齊次解集永遠是子空間,所以一定經過原點;
  • 非齊次而且一致的解集,是把這個子空間平移到某個特解位置後得到;當右端非零時,解集不經過原點。

因此 N(A)N(A) 是系統的結構核心,而 xp+N(A)x_p + N(A) 才是 Ax=bAx = b 的完整解集。

齊次解與欄向量相依性的關係

如果將 AA 的欄寫成 a1,a2,…,ana_1, a_2, \ldots, a_n,則

Ax=0Ax = 0

其實就等價於

x1a1+x2a2+⋯+xnan=0.x_1 a_1 + x_2 a_2 + \cdots + x_n a_n = 0.

所以只要齊次系統有一個非平凡解,就等同於 AA 的欄向量之間存在一條非平凡 線性關係。

例題

非平凡零空間向量給出相依關係

假設

x=[1−21]∈N(A).x = \begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix} \in N(A).

則 Ax=0Ax = 0 就表示

1⋅a1−2⋅a2+1⋅a3=0.1 \cdot a_1 - 2 \cdot a_2 + 1 \cdot a_3 = 0.

這正是 AA 的欄向量之間一條非平凡相關關係。

零空間如何決定唯一性

由這個結構定理可以立刻得到:

  • 若 N(A)={0}N(A) = \{0\},則一致系統 Ax=bAx = b 只有唯一解;
  • 若 N(A)N(A) 含有非零向量,則每個一致系統 Ax=bAx = b 都有無限多解, 因為你可以在特解上加上任意標量倍的零空間向量。

所以零空間正好量度了系統中隱藏的自由度。

常見錯誤

常見錯誤

零向量永遠屬於零空間

有些同學會誤以為齊次方程組可能沒有解。這是不可能的,因為 x=0x = 0 永遠 滿足 Ax=0Ax = 0。

常見錯誤

找到一個特解,不等於已經找到全部解

即使你已經找到某個 xpx_p 滿足 Axp=bAx_p = b,仍然要把整個零空間加上去,才 算完整描述了解集。

常見錯誤

不要把特解與方向混淆

若 uu 與 vv 都解 Ax=bAx=b,則 v−uv-u 解的是 Ax=0Ax=0。向量 v−uv-u 是零空間中的方向,不是一個新的右邊。

快速檢查

思考檢查

為甚麼 Ax=0Ax = 0 一定至少有一個解?

用一句話回答。

解答 · 答案

因為零向量總會滿足 A0=0A0 = 0。

思考檢查

若 N(A)={0}N(A) = \{0\} 且 Ax=bAx = b 一致,它有多少個解?

請用本節定理解釋。

解答 · 答案

只有一個,因為沒有任何非零零空間向量可以再加到特解上。

思考檢查

如果 Ax=0Ax = 0 有自由變量,解集有可能只得兩個向量嗎?

請由參數形式回答。

解答 · 答案

不可能。自由變量可以取無限多個純量值,所以會產生無限多個解向量。

思考檢查

假設 uu 與 vv 都解 Ax=bAx=b。那麼 v−uv-u 解哪一個齊次系統?

用一行矩陣計算回答。

解答 · 答案

它解 Ax=0Ax=0,因為

A(v−u)=Av−Au=b−b=0.A(v-u)=Av-Au=b-b=0.

練習

思考檢查

若 xpx_p 解 Ax=bAx = b,而 u,v∈N(A)u, v \in N(A),為甚麼 xp+ux_p + u 與 xp+vx_p + v 都是 Ax=bAx = b 的解?

請用線性性質寫一行。

解答 · 引導解答

因為 Au=0Au = 0 且 Av=0Av = 0,所以

A(xp+u)=Axp+Au=b+0=b,A(x_p + u) = Ax_p + Au = b + 0 = b,

同理

A(xp+v)=Axp+Av=b+0=b.A(x_p + v) = Ax_p + Av = b + 0 = b.

因此,只要在特解上加任何零空間向量,仍然留在同一個解集之中。

相關筆記

本節建立在 2.3 高斯消元與最簡行階梯形 與 2.4 解集的種類 之上。 它會為 5.1 可逆矩陣 與 6.2 子空間 做準備。

練習

先自行作答,再檢查答案。你可以修改後重試。

載入中…

本單元重點詞彙