線性變換的組成與可逆性 (Composition and Invertibility)
本系列文章內容參考自經典教材 Elementary Linear Algebra (Pearson New International Edition)。本文對應章節:Ch2-8 Composition and Invertibility of Linear Transformations。
前言:連結值域與 Column Space
在前一篇筆記中,我們認識了值域 (Range) 和核 (Kernel) 的概念。本篇將更深入地探討線性變換的兩個重要性質——映成 (Onto) 與 一對一 (One-to-One),並揭示它們與秩 (Rank)、零空間 (Null Space)、Column Space 之間的深層連結。
複習:Range = Column Space
首先讓我們複習一個核心觀念:線性變換的值域 (Range) 就是其標準矩陣的 Column Space。

為什麼這個關係成立?讓我們從矩陣乘法的本質來理解。
設 T:Rn→Rm 是線性變換,其標準矩陣為 A=[a1 a2 ⋯ an]。對於任意輸入向量 x=x1x2⋮xn:
T(x)=Ax=x1a1+x2a2+⋯+xnan
這說明:每一個輸出 T(x) 都是矩陣 A 的 column vectors 的線性組合!
因此,所有可能輸出的集合(值域),就是所有 column vectors 能生成的空間:
Range(T)=Span{a1,a2,…,an}=Col(A)
Null Space 深入解析
在前一篇筆記中我們初步認識了 Kernel (核) 的概念。在矩陣語言中,這對應到 Null Space (零空間)。
在深入探討映成 (Onto) 與 一對一 (One-to-One) 之前,我們有必要先對它做更完整的理解,因為它是判斷矩陣性質的關鍵指標。
複習:Null Space = Kernel
零空間 (Null Space) 或 核 (Kernel) 是所有被變換映射到零向量的輸入向量集合(也就是被變換「消滅」的向量):
Null(A)=Ker(T)={x∈Rn∣Ax=0}
計算 Null Space
求 Null Space 就是求解齊次方程組 Ax=0:
- 將 A 化為 RREF(Reduced Row Echelon Form)
- 找出自由變數(非 pivot columns)
- 用自由變數表達 pivot 變數
- 寫出通解形式
範例:設 A=[122412]
化為 RREF:[102010]
- 自由變數:x2,x3(第 2、3 個 column 無 pivot)
- 從 x1+2x2+x3=0 得 x1=−2x2−x3
Null(A)=Span⎩⎨⎧−210,−101⎭⎬⎫
這個 Null Space 是 R3 中的一個平面。
Nullity 與自由變數
Nullity 定義為 Null Space 的維度:
nullity(A)=dim(Null(A))
從計算過程可以發現一個重要結論:
nullity(A)=n−rank(A)=自由變數的個數
這告訴我們 Nullity 代表了系統中的「自由度」或被壓縮的維度數量。
映成 (Onto / Surjective)
一個線性變換 T:V→W 稱為映成 (Onto) 或滿射 (Surjective),若且唯若 W 中的每一個向量都是某個 V 中向量的像 (image):
T is Onto⟺∀w∈W,∃v∈V such that T(v)=w
用值域的語言來說:
T is Onto⟺Range(T)=W
空間中的幾何意義
「Onto」的直覺意義是:變換的輸出能「覆蓋」整個目標空間。
下圖動態展示了 Onto 與 Not Onto 的差異。注意觀察 Domain 與 Codomain 之間的連線:

- 左側 (Onto):Codomain 中的每一個點都有連線指向 Domain,表示每個輸出都有對應的「原像 (preimage)」。
- 右側 (Not Onto):Codomain 中有些點沒有連線(標示「no preimage」),這些向量無法被任何輸入映射到。輸出只能「打到」一條線上。
想像一台投影機(變換 T)照射在牆壁上(Codomain):
- Onto:光線能照亮整面牆
- Not Onto:光線只能照亮牆的一部分
「照不到的地方」就是 Codomain 中沒有原像的向量。
如何用 Rank 判斷 Onto?
設 T:Rn→Rm 是線性變換,A 是其對應的 m×n 標準矩陣(也就是 T(x)=Ax)。
我們已經知道 Range(T)=Col(A)。而 Column Space 的維度就是矩陣的 Rank:
dim(Range(T))=dim(Col(A))=rank(A)
現在,T 是 Onto 意味著 Range(T)=Rm,也就是 Column Space 必須「填滿」整個 Rm。
而 Rm 的維度是 m,因此我們需要:
T is Onto⟺rank(A)=m
這個條件稱為Full Row Rank。
雖然我們是透過 Column Space 來推導,但 rank(A)=m 這個條件等價於「A 化簡後每一個 row 都有 pivot」。也可以理解為:row 的數量 m 「沒有浪費」,每個 row 都對輸出空間的維度有貢獻。
Onto 與 Ax = b 的關係
T 是 Onto 這個性質可以用線性方程組的語言重新詮釋:
T is Onto⟺對於任意 b∈Rm, 方程式 Ax=b 至少有一解
- T 是 Onto 表示:任意 b∈Rm 都在 Range(T) 內
- b∈Range(T) 表示:存在某個 x 使得 T(x)=Ax=b
- 這正是「Ax=b 有解」的定義!
範例:考慮 A=[100123],對應的變換 T:R3→R2。
- A 是 2×3 矩陣,共有 2 個 rows
- rank(A)=2(兩個 row 都有 pivot)
- 因此 rank(A)=m=2,T 是 Onto
這意味著:無論選擇什麼 b∈R2,方程 Ax=b 都一定有解(可能有無限多解)。
反例:考慮 A=[1224],對應的變換 T:R2→R2。
- A 是 2×2 矩陣,化簡後:[1020]
- rank(A)=1<2=m,T 不是 Onto
例如 b=[11] 時,方程 Ax=b 無解(因為 b 不在 Column Space 內)。
一對一 (One-to-One / Injective)
一個線性變換 T:V→W 稱為一對一 (One-to-One) 或單射 (Injective),若且唯若不同的輸入必定產生不同的輸出:
T is One-to-One⟺T(u)=T(v)⇒u=v
等價地,這表示每個輸出最多只有一個對應的輸入。
空間中的幾何意義
「一對一」的直覺意義是:變換不會將不同的向量「壓縮」到同一點。
下圖動態展示了 One-to-One 與 Not One-to-One 的差異。注意觀察連線的對應關係:

- 左側 (One-to-One):每條連線都是「一對一」,不同的輸入點映射到不同的輸出點。
- 右側 (Not One-to-One):多條連線指向同一個輸出點(u,v,w 都映到同一點),這就是「多對一」的情況。
想像把一張紙(2D)投射到一條線(1D)上:
- 原本不同位置的點可能投影到線上的同一點
- 這就是「多對一」的情況,不是 One-to-One
- 資訊被壓縮了,無法從投影恢復原始位置
Null Space 與 One-to-One 的關係
這是理解 One-to-One 的關鍵定理:
T is One-to-One⟺Null(A)={0}
為什麼 Null Space 必須要是 0 才能 One-to-One?我們可以從資訊遺失 (Collapse) 的角度來思考。

直覺解釋:
-
若 Null Space 包含非零向量 u(如圖左側的紅色圓點):
- 這表示 Au=0。
- 但我們也知道 A0=0(線性變換必將零映射到零)。
- 結果:兩個不同的輸入 (u 和 0) 映射到了同一個輸出 (0)。
- 結論:這就是「多對一」,所以不是 One-to-One。
-
若 Null Space 只有 {0}:
- 表示只有 0 會被映射到 0。
- 沒有任何其他非零的方向被「壓扁」成零。
- 這意味著沒有資訊遺失,變換保持了 One-to-One 的性質。
Null Space ={0}⟺ Information Loss
只要 Null Space 裡有非零的東西,就代表有維度「崩塌」了,原本分開的點(如 u 和 0)在變換後疊在了一起,因此不可能是 One-to-One。
如何用 Rank 判斷 One-to-One?
我們在前面介紹了 Nullity 的概念。現在我們利用它來建立與 One-to-One 的連結。
Rank-Nullity 定理
對於 m×n 矩陣 A,有:
rank(A)+nullity(A)=n
其中 n 是 column 的數量(也就是 Domain 的維度)。
這個定理告訴我們:變換保留的維度 (rank) 加上被壓扁的維度 (nullity) 等於原始空間的維度。
判斷 One-to-One
因為 T 是 One-to-One ⇔ Null(A)={0} ⇔ nullity(A)=0
由 Rank-Nullity 定理,nullity(A)=0 等價於 rank(A)=n。因此:
T is One-to-One⟺rank(A)=n
這個條件稱為滿 Column Rank (Full Column Rank)——矩陣的所有 n 個 column 都是線性獨立的。
One-to-One 與 Ax = b 的關係
T 是 One-to-One 這個性質也可以用線性方程組來詮釋:
T is One-to-One⟺對於任意 b∈Rm, 方程式 Ax=b 最多有一解
- 如果 Ax=b 有兩個不同的解 x1=x2
- 則 T(x1)=T(x2)=b
- 這違反了 One-to-One 的定義
注意:「最多有一解」包含「無解」和「恰一解」兩種情況。One-to-One 只保證解的唯一性,不保證解的存在性。
Rank 與維度限制的整合觀點
現在我們可以把 Onto 和 One-to-One 的條件用 Rank 統一起來。對於 m×n 矩陣 A:
| 性質 | Rank 條件 | 等價說法 |
|---|
| Onto | rank(A)=m | Columns 張成 Rm |
| One-to-One | rank(A)=n | Columns 線性獨立 |
| 兩者皆是 | rank(A)=m=n | A 是可逆方陣 |
-
Onto (關注 m):
- 目標:讓 Column Space 完全填滿轉換後的空間 (Codomain Rm)。
- 關鍵:因為 m 代表的是轉換後空間的維度,如果要覆蓋整個空間,Column Space 的維度 (Rank) 必須夠大,也就是必須等於 m。
- 記憶方式:檢查 Rank 是否等於 Codomain 維度 m。
-
One-to-One (關注 n):
- 目標:完整保留 Domain (Rn) 的所有資訊,確保沒有任何方向的資訊被壓縮成零。
- 關鍵:因為 n 代表的是轉換前空間的維度,要不壓縮資訊,就必須確保 Null Space 只包含零向量(每個 Column 都是 pivot column,沒有 free variable)。也就是 Rank 必須完全等於 n。
- 記憶方式:檢查 Rank 是否等於 Domain 維度 n。
維度限制的重要結論
由於 rank(A)≤min(m,n),矩陣的形狀決定了它可能具有的性質:
Case 1:m>n(「高瘦」矩陣,Row 多於 Column)
因為 rank(A)≤n<m,所以 rank(A)=m,不可能 Onto。
但如果 rank(A)=n,則可以是 One-to-One。

範例:A=100010(3×2 矩陣)
- rank(A)=2=n:T 是 One-to-One
- rank(A)=2<3=m:T 不是 Onto
這個變換把 R2 嵌入 R3(如圖:一張紙懸浮在三維空間中),沒有資訊損失(One-to-One),但無法覆蓋整個 R3(Not Onto)。
Case 2:m<n(「矮胖」矩陣,Column 多於 Row)
因為 rank(A)≤m<n,所以 rank(A)=n,不可能 One-to-One。
但如果 rank(A)=m,則可以是 Onto。

範例:A=[100123](2×3 矩陣)
- rank(A)=2=m:T 是 Onto
- rank(A)=2<3=n:T 不是 One-to-One
這個變換把 R3 投射到 R2(如圖:3D 物體的影子投射到地面),可以覆蓋整個 R2(Onto),但有維度塌縮,資訊有損失(Not One-to-One)。
Case 3:m=n(方陣)
這是唯一可能同時 Onto 且 One-to-One 的情況!
若 rank(A)=m=n,則 A 是可逆矩陣 (Invertible Matrix)。

範例:A=[1324](2×2 矩陣)
- det(A)=4−6=−2=0
- rank(A)=2=m=n
- T 既是 Onto 又是 One-to-One,且 A 可逆
反例:A=[1224](2×2 矩陣)

- det(A)=4−4=0
- Column 2 是 Column 1 的 2 倍,Linearly Dependent
- rank(A)=1<2,不可逆
- 幾何上,整個平面被壓扁成一條線 y=2x
- 因為被壓扁,多對一(Not One-to-One)
- 因為只是一條線,無法覆蓋整個平面(Not Onto)
- 這也驗證了:對於方陣,Onto 與 One-to-One 是共存亡的。若其中一個不成立,另一個也一定不成立。
- Onto:需要足夠的 columns 來「填滿」整個 Codomain
- One-to-One:不能有太多 columns,否則會有「多餘」的自由度
當 m>n 時,columns 數量不夠,無法張成整個 Rm。
當 m<n 時,columns 太多必有線性相依,導致 Null Space 非平凡。