Evanalysis
4.2預計閱讀時間: 25 分鐘

4.2 集合語言與解集

仔細使用集合記號、屬於關係、解集、零空間、張成與集合相等,支撐線性代數中的論證。

課程目錄

線性代數研究的往往不是單一向量,而是一整個向量或矩陣的集合:一個方程組的 所有解、一組向量的所有線性組合、滿足某條矩陣方程的所有矩陣,或者被某個矩 陣送到零向量的所有向量。

集合語言就是精確表達這些對象的語法。若沒有它,「同一個解集」、「屬於零 空間」、「這些向量張成同一個子空間」這些說法就會太含糊,難以支撐證明。

為甚麼線性代數需要集合

做行化簡時,我們不是要保留方程的外觀,而是要保留解的集合。兩個方程 組可以看起來不同,卻有完全相同的解。

同樣地,把一組張成向量縮短時,我們不是要保留原來的列表,而是要保留由這 個列表能夠生成的向量集合。

定義

屬於

若物件 xx 是集合 SS 的元素,記作

x∈S.x \in S.

若 xx 不是 SS 的元素,記作

x∉S.x \notin S.

符號 ∈\in 應讀作「屬於」。它不同於子集語言。一個向量可以屬於某個集合; 一個較小的集合可以是另一個集合的子集。

所在空間

寫下一個線性代數集合之前,先確認正在收集哪一類物件。

  • Rn\mathbb R^n 是所有有 nn 個分量的實欄向量所成的集合。
  • Mm,n(R)M_{m,n}(\mathbb R) 是所有實 m×nm \times n 矩陣所成的集合。
  • PnP_n 是所有次數不超過 nn 的實係數多項式所成的集合。

所在空間很重要。式子

{x:Ax=b}\{x : Ax=b\}

若沒有說明 xx 的大小與類型,就不夠完整。較嚴謹的寫法是

{x∈Rn:Ax=b}.\{x\in R^n : Ax=b\}.

冒號左邊說明物件住在哪個集合;冒號右邊說明挑選這些物件的條件。

解集

設 AA 是 m×nm \times n 矩陣,且 b∈Rmb\in \mathbb R^m。

定義

線性方程組的解集

方程 Ax=bAx=b 的解集是

S(A,b)={x∈Rn:Ax=b}.S(A,b)=\{x\in R^n : Ax=b\}.

因此 t∈S(A,b)t\in S(A,b) 有精確意思:

t∈Rn且At=b.t\in R^n \qquad\text{且}\qquad At=b.

這個記號也能處理三種熟悉情況。

  • 若方程組有唯一解 x0x_0,則 S(A,b)={x0}S(A,b)=\{x_0\}。
  • 若方程組不一致,則 S(A,b)=∅S(A,b)=\varnothing。
  • 若方程組有無限多個解,則 S(A,b)S(A,b) 通常用參數式描述。

例題

讀懂參數式解集

假設某個方程組的解可寫成

x=[102]+s[110]+t[−101],s,t∈R.x= \begin{bmatrix}1\\0\\2\end{bmatrix} +s\begin{bmatrix}1\\1\\0\end{bmatrix} +t\begin{bmatrix}-1\\0\\1\end{bmatrix}, \qquad s,t\in R.

作為集合,這就是

{[102]+s[110]+t[−101]:s,t∈R}.\left\{ \begin{bmatrix}1\\0\\2\end{bmatrix} +s\begin{bmatrix}1\\1\\0\end{bmatrix} +t\begin{bmatrix}-1\\0\\1\end{bmatrix} : s,t\in R \right\}.

固定向量是一個特解;兩個方向向量記錄了可以自由加入而仍留在解集中的方向。

零空間與張成都是集合

課程中有兩種集合構造反覆出現。

定義

零空間

對 m×nm \times n 矩陣 AA,

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

這就是齊次方程組 Ax=0Ax=0 的解集。

定義

張成

若 u1,…,uqu_1,\dots,u_q 是同一個向量空間中的向量,則

Span⁡{u1,…,uq}={α1u1+⋯+αquq:α1,…,αq∈R}.\operatorname{Span}\{u_1,\dots,u_q\} = \{\alpha_1u_1+\cdots+\alpha_qu_q : \alpha_1,\dots,\alpha_q\in R\}.

張成是一個集合,不是原來的列表。重排向量不會改變張成;加入一個本來已經 是舊向量線性組合的向量,也不會改變張成。

堆疊矩陣中的包含關係證明

證明集合包含時,先把成員關係寫成定義中的方程,再推導目標集合的條件。 把兩個係數矩陣上下堆疊,便得到這個方法的一個具體例子。

定理

堆疊矩陣的零空間包含在組合矩陣的零空間內

設 AA 和 BB 是 p×qp \times q 矩陣,並令

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

對任意實數 α,β\alpha,\beta,都有

N(C)⊆N(αA+βB).N(C)\subseteq N(\alpha A+\beta B).

證明

由定義出發的證明

要證明 包含關係,取任意 t∈N(C)t\in N(C)。由零空間定義,

Ct=0.Ct=0.

由於 CC 是把 AA 疊在 BB 上方所得的矩陣,這等同於

[AtBt]=[00].\begin{bmatrix} At \\ Bt \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}.

因此 At=0At=0 且 Bt=0Bt=0。所以

(αA+βB)t=αAt+βBt=0.(\alpha A+\beta B)t = \alpha At+\beta Bt = 0.

再次由零空間定義,t∈N(αA+βB)t\in N(\alpha A+\beta B)。由於 t∈N(C)t\in N(C) 是任意 選取的,包含關係成立。

前一節證明的堆疊零空間恆等式 準確寫為 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。因此,上面的包含關係是說,同時滿足兩條齊次方程,就必滿足它們的任意固定線性組合;它並沒有說組合後仍保留兩條獨立的要求。

例題

合併方程會丟失資料

取 A=[1 0]A=[1\ 0]、B=[0 1]B=[0\ 1],堆疊矩陣是 C=I2C=I_2,所以 N(C)={02}N(C)=\{0_2\}。但取 α=β=1\alpha=\beta=1,則 A+B=[1 1]A+B=[1\ 1],從而

N(A+B)={[t−t]:t∈R}.N(A+B)=\left\{\begin{bmatrix}t\\-t\end{bmatrix}:t\in\mathbb R\right\}.

為證明此描述,任意零空間向量都須滿足 x1+x2=0x_1+x_2=0,所以令 t=x1t=x_1 就得到所寫形式;反過來,代入任意這樣的向量,兩座標之和都為零。因此 (1,−1)T(1,-1)^T 屬於 N(A+B)N(A+B),卻不屬於 N(C)N(C):它在 A,BA,B 下的輸出分別是一與負一,只在相加後才互相抵消。包含是嚴格的,改寫成相等就會出錯。

正確的等式使用交集,即 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。組合方程容許輸出相互抵消,原來兩個方程卻要求兩個輸出分別為零。一個見證向量已足以證明嚴格包含;參數計算則進一步描述了全部新增的解。

集合相等需要兩個方向

定義

集合相等

兩個集合 SS 與 TT 相等,是指每一邊的元素都屬於另一邊:

S=T⟺(x∈S if and only if x∈T) 對所有物件 x 成立.S=T \quad\Longleftrightarrow\quad \bigl(x\in S \text{ if and only if } x\in T\bigr) \text{ 對所有物件 }x\text{ 成立}.

在證明中,這通常變成兩個包含關係:

  1. 證明 SS 的每個元素都屬於 TT;
  2. 證明 TT 的每個元素都屬於 SS。

只證明第一個方向,只能得到 S⊆TS\subseteq T,不能得到相等。

證明透視

每個包含方向都從成員條件取得資料

證明 S⊆TS\subseteq T 時,先任取 x∈Sx\in S,把成員關係翻譯成等式或係數。目標 x∈Tx\in T 也有自己的定義條件;論證必須把已知資料轉換成同一個向量所需滿足的條件,不能先假設結論。

對張成而言,已知資料是某組係數的存在;要證明屬於另一個張成,就應構造另一組係數。對零空間而言,已知資料是一條齊次方程;要證明屬於另一個零空間,就應檢查對應的矩陣方程。只驗證幾個數值向量,不能代替這個任意向量的步驟。

然後交換兩個集合的角色,另作反向論證。這一方向可以較短,例如為新增的生成向量補上零係數,但仍須明確寫出。兩個包含方向可以使用不同的表示方式;始終不變的是要證明屬於相應集合的那個向量。

集合語言與解集

跟着集合語言的語法,把代數條件轉成解集,再用任意元素證明子集與集合相等。

  1. 屬於與子集

    x\in S 說一個物件屬於 S;S\subseteq T 則比較兩個集合。

  2. 集合描述語法

    在 {x\in R^n:Ax=b} 中,R^n 指出所在空間,Ax=b 是挑選元素的條件。

  3. 解集

    S(A,b)={x\in R^n:Ax=b} 是一個集合陳述;它可以是空集、單元素集合,或參數族。

  4. 零空間與張成

    N(A) 由方程定義;Span{u_1,...,u_q} 由參數定義。兩者都描述整個集合。

  5. 子集證明套路

    要證明 S\subseteq T,取 S 中任意元素,拆開 S 的定義,再證明它滿足 T 的條件。

  6. 相等證明套路

    集合相等需要兩個包含關係。刪去張成列表中的冗餘向量,背後也是這套證明語法。

集合語言把代數條件變成精確集合:先寫所在空間,再寫條件,然後由任意元素開始證明包含關係。

同一係數矩陣的解集交集

集合語言也能清楚說明一個常用事實:若 Ax=bAx=b 和 Ax=cAx=c 的解集有一個共同 向量,則兩個右端向量其實必須相同。

定理

同一個 A 下,兩個有交集的解集必然相等

設 AA 是 m×nm \times n 矩陣,且 b,c∈Rmb,c\in \mathbb R^m。若

S(A,b)∩S(A,c)≠∅,S(A,b)\cap S(A,c)\ne\varnothing,

則

S(A,b)=S(A,c).S(A,b)=S(A,c).

證明

為何一個共同解足以迫出相等

因為交集非空,所以存在某個向量 x0x_0,使得

x0∈S(A,b)andx0∈S(A,c).x_0\in S(A,b) \qquad\text{and}\qquad x_0\in S(A,c).

由解集定義,

Ax0=bandAx0=c.Ax_0=b \qquad\text{and}\qquad Ax_0=c.

因此 b=cb=c。但若兩個右端向量相同,兩個 defining condition 就完全一樣:

Ax=b⟺Ax=c.Ax=b \qquad\Longleftrightarrow\qquad Ax=c.

所以 S(A,b)S(A,b) 的每個元素都屬於 S(A,c)S(A,c),而 S(A,c)S(A,c) 的每個元素亦屬於 S(A,b)S(A,b)。因此 S(A,b)=S(A,c)S(A,b)=S(A,c)。

反過來讀也很重要:對固定矩陣 AA,兩個一致系統 Ax=bAx=b 與 Ax=cAx=c 的解集 要麼不相交,要麼完全相同。它們不可能只共享一個解,卻在其他解上不同。

一個核心張成論證

下面的論證在線性代數中會不斷出現,只是常常藏在較大的計算裡。

定理

加入冗餘向量不會改變張成

若 vv 是 u1,…,uqu_1,\dots,u_q 的線性組合,則

Span⁡{u1,…,uq,v}=Span⁡{u1,…,uq}.\operatorname{Span}\{u_1,\dots,u_q,v\} = \operatorname{Span}\{u_1,\dots,u_q\}.

證明

用集合相等證明

寫

v=β1u1+⋯+βquq.v=\beta_1u_1+\cdots+\beta_qu_q.

令

S=Span⁡{u1,…,uq,v},T=Span⁡{u1,…,uq}.S=\operatorname{Span}\{u_1,\dots,u_q,v\}, \qquad T=\operatorname{Span}\{u_1,\dots,u_q\}.

先取任意 x∈Sx\in S。則存在純量 a1,…,aq,ca_1,\dots,a_q,c,使得

x=a1u1+⋯+aquq+cv.x=a_1u_1+\cdots+a_qu_q+cv.

代入 vv 的公式:

x=(a1+cβ1)u1+⋯+(aq+cβq)uq.x=(a_1+c\beta_1)u_1+\cdots+(a_q+c\beta_q)u_q.

所以 x∈Tx\in T。

反過來,若 y∈Ty\in T,則

y=d1u1+⋯+dquq=d1u1+⋯+dquq+0v,y=d_1u_1+\cdots+d_qu_q =d_1u_1+\cdots+d_qu_q+0v,

所以 y∈Sy\in S。因此 S=TS=T。

這不是某個數值例子的技巧,而是說明為甚麼從張成列表中刪去冗餘向量是合法 的。

逆命題準確識別冗餘向量

假設加入 vv 後張成沒有改變。向量 vv 一定屬於擴大的張成:把它自己的係數取一,其餘舊生成向量的係數全部取零即可。兩個張成相等,於是 vv 也屬於原來的張成,按定義便是舊生成向量的線性組合。這證明了逆命題,而不只是正向定理的另一個例子。

結合兩個方向可知:加入一個向量不改變張成,當且僅當舊列表已經能夠生成它。若向量在原張成之外,新張成就嚴格擴大:給新增向量係數零,說明新張成包含舊張成;新增向量本身則說明反向包含失敗。

這裏 Span⁡(U)\operatorname{Span}(U) 簡記列表 UU 中各向量的張成,並不是把整個列表當成一個向量。

定理

多個冗餘生成向量與張成相等

設 U=(u1,…,uq)U=(u_1,\ldots,u_q) 與 V=(v1,…,vs)V=(v_1,\ldots,v_s) 是 Rn\mathbb R^n 中兩個有限非空向量列表。把 VV 中全部向量加入 UU 不改變張成,當且僅當每個 vjv_j 都屬於 Span⁡(U)\operatorname{Span}(U)。此外,

Span⁡(U)=Span⁡(V)\operatorname{Span}(U)=\operatorname{Span}(V)

當且僅當每個列表中的向量都可由另一個列表作線性組合得到。列表長度 q,sq,s 不必相同。

證明

從逐個加入到雙向生成

若每個 vjv_j 都由 UU 生成,就逐個加入 VV 中的向量。第一次加入不改變張成;後續每個 vjv_j 仍由保留在列表中的原生成向量生成,所以每一步都可再次使用單向量定理。歸納可得任意有限列表的結論。反過來,每個新增向量都屬於擴大的張成;若擴大後的張成等於舊張成,它們便都已屬於舊張成。

對第二個結論,假設兩個方向的生成關係成立。把 VV 加到 UU 不改變 Span⁡(U)\operatorname{Span}(U);把 UU 加到 VV 不改變 Span⁡(V)\operatorname{Span}(V)。合併後的列表包含相同向量,而改變次序不影響能形成的線性組合,所以兩個張成都等於合併列表的張成。

反過來,若兩個張成相等,UU 的任意生成向量屬於自身張成,也就屬於 VV 的張成,按定義可由 VV 生成。交換列表可得另一個方向。這些論證都不需要線性獨立假設。

例子:證明兩個張成相等

例題

用明確係數刪去一個冗餘生成向量

令

u1=[101],u2=[011],v=[235].u_1=\begin{bmatrix}1\\0\\1\end{bmatrix}, \qquad u_2=\begin{bmatrix}0\\1\\1\end{bmatrix}, \qquad v=\begin{bmatrix}2\\3\\5\end{bmatrix}.

因為

v=2u1+3u2,v=2u_1+3u_2,

上面的定理給出

Span⁡{u1,u2,v}=Span⁡{u1,u2}.\operatorname{Span}\{u_1,u_2,v\} = \operatorname{Span}\{u_1,u_2\}.

直接核對兩個包含關係:較大張成中的任意向量可寫為 au1+bu2+cvau_1+bu_2+cv。代入已驗證的關係,得到 (a+2c)u1+(b+3c)u2(a+2c)u_1+(b+3c)u_2,屬於較小張成。反過來,du1+eu2=du1+eu2+0vdu_1+eu_2=du_1+eu_2+0v 屬於較大張成。舊係數為實數時,新係數也為實數,所以這些表達式對每個向量證明了雙向包含,而不只是驗證所列三個生成向量的成員關係。向量 vv 仍可能有計算用途,但不會擴大能夠生成的集合。

例題

兩組不同的生成向量給出同一張成

令

u=[135],v=[246],w=[3711],z=[111].u=\begin{bmatrix}1\\3\\5\end{bmatrix},\quad v=\begin{bmatrix}2\\4\\6\end{bmatrix},\quad w=\begin{bmatrix}3\\7\\11\end{bmatrix},\quad z=\begin{bmatrix}1\\1\\1\end{bmatrix}.

逐座標驗證可得正向關係 w=u+vw=u+v、z=v−uz=v-u。因此,對任意實數 a,ba,b,有 aw+bz=(a−b)u+(a+b)vaw+bz=(a-b)u+(a+b)v,證明了 Span⁡(w,z)⊆Span⁡(u,v)\operatorname{Span}(w,z)\subseteq\operatorname{Span}(u,v)。為得到反向包含,把這兩個關係解回原生成向量:

u=12w−12z,v=12w+12z.u=\tfrac12w-\tfrac12z,\qquad v=\tfrac12w+\tfrac12z.

所以對任意實數 c,dc,d,

cu+dv=c+d2w+d−c2z.cu+dv=\tfrac{c+d}{2}w+\tfrac{d-c}{2}z.

這就構造出另一個方向所需的係數。由任何一組生成的每個向量,都能由另一組生成,故兩個張成相等。只觀察到兩個列表都含兩個向量,並不能證明結論;真正提供依據的是明確的相互表示關係。

同樣的關係還能處理較長列表。在 (u,v)(u,v) 後加入 ww、2u2u 與 zz 不改變張成,因為每個新增向量都已由原來一對生成。所得五向量列表與原兩向量列表張成相同。張成相等描述的是可生成哪些向量,而不是所選列表有多長;反過來,列表等長本身也不保證張成相等。

常見錯誤

常見錯誤

混淆向量與只含該向量的集合

向量 x0x_0 與單元素集合 {x0}\{x_0\} 是不同物件。若方程組有唯一解,解是 x0x_0,但解集是 {x0}\{x_0\}。

常見錯誤

忘記所在空間

條件 Ax=0Ax=0 本身沒有說明 xx 是 Rn\mathbb R^n 中的向量、矩陣變量,還是其他物件。 當語境未固定時,要寫出所在集合。

常見錯誤

只證明一個包含方向

要證明 S=TS=T,只證明 SS 的每個元素屬於 TT 並不足夠。還要證明 TT 的 每個元素也屬於 SS。

常見錯誤

忘記共同解會固定右端向量

如果兩個系統使用同一個矩陣 AA,而某個 x0x_0 同時滿足 Ax0=bAx_0=b 和 Ax0=cAx_0=c,則必然有 b=cb=c。結論不只是兩個系統相似,而是它們有相同的右端 向量。

快速檢查

思考檢查

如果 S(A,b)=∅S(A,b)=\varnothing,這對方程組 Ax=bAx=b 表示甚麼?

把空集合翻譯回解的語言。

解答 · 答案

這表示方程組沒有解。也就是說,Ax=bAx=b 不一致。

思考檢查

假設 w=3u1−u2w=3u_1-u_2。把 ww 加入列表 {u1,u2}\{u_1,u_2\} 會否改變張成?

使用冗餘向量定理。

解答 · 答案

不會。因為 ww 已經是 u1u_1 與 u2u_2 的線性組合,

Span⁡{u1,u2,w}=Span⁡{u1,u2}.\operatorname{Span}\{u_1,u_2,w\} = \operatorname{Span}\{u_1,u_2\}.

思考檢查

假設 S(A,b)∩S(A,c)S(A,b)\cap S(A,c) 包含一個向量 x0x_0。這對 bb 和 cc 表示甚麼?

用解集成員的定義。

解答 · 答案

因為 x0∈S(A,b)x_0\in S(A,b),所以 Ax0=bAx_0=b。又因為 x0∈S(A,c)x_0\in S(A,c),所以 Ax0=cAx_0=c。因此 b=cb=c,兩個解集相等。

練習

思考檢查

令 S=Span⁡{(1,0),(0,1),(1,1)}S=\operatorname{Span}\{(1,0),(0,1),(1,1)\} 且 T=R2T=\mathbb R^2。證明 S=TS=T。

即使其中一個方向看似明顯,也要寫出兩個包含方向。

解答 · 引導解答

首先,SS 的每個向量都是 R2\mathbb R^2 中向量的線性組合,所以 S⊆R2S\subseteq \mathbb R^2。

反過來,取任意 (a,b)∈R2(a,b)\in \mathbb R^2。則

(a,b)=a(1,0)+b(0,1)+0(1,1),(a,b)=a(1,0)+b(0,1)+0(1,1),

所以 (a,b)∈S(a,b)\in S。因此 R2⊆S\mathbb R^2\subseteq S,從而 S=TS=T。

練習:判斷新增向量是否改變張成

令 u1=(1,0,1)Tu_1=(1,0,1)^T、u2=(0,1,1)Tu_2=(0,1,1)^T。哪些實數 a,b,ca,b,c 會使加入 w=(a,b,c)Tw=(a,b,c)^T 後,Span⁡(u1,u2)\operatorname{Span}(u_1,u_2) 保持不變?若張成改變,請指出一個能夠證明改變的向量。

解答 · 用冗餘逆命題作答

由已證明的等價關係,張成不變當且僅當 ww 已是 u1,u2u_1,u_2 的線性組合。而所有組合均具有形式

su1+tu2=(s,t,s+t)T.su_1+tu_2=(s,t,s+t)^T.

匹配前兩個座標,必須有 s=as=a、t=bt=b;第三個座標便要求 c=a+bc=a+b。條件成立時,w=au1+bu2w=au_1+bu_2 明確驗證了成員關係,所以舊張成不變。條件不成立時,沒有任何係數可用舊向量對表示 ww;但給它自身係數一,即知它屬於擴大後的張成。因此 ww 就是嚴格擴大的見證。

論證既檢查了表示的存在性,也證明了不存在表示時為甚麼失敗,不能只因新向量與舊生成向量的所在空間維數相同,就假設它是冗餘的。

最後要區分生成列表與基底。本節的論證只研究可以生成哪些向量,容許列表出現重複及不必要的生成向量。前面的五向量例子刪去三個生成向量後,列表改變,張成卻不變。剩下的列表是否線性獨立,是後面獨立性與基底筆記研究的另一問題。分清兩者,才不會把張成相等誤讀成係數表示唯一。

先讀這些

本節延伸 1.1 方程與解集, 並準備 6.3 線性組合與張成 中使用的集合相等論證。

本單元重點詞彙