向量的生成空間 (The Span of a Set of Vectors)
本系列文章內容參考自經典教材 Elementary Linear Algebra (Pearson New International Edition)。本文對應章節:Ch1-6 The Span of a Set of Vectors。
什麼是 Span?

直觀理解
給定一組向量,對它們進行任意的縮放(乘以純量)和相加,所有能產生的向量就構成了這組向量的 Span。
Span 描述的是:一組向量能夠「張成」多大的空間。
嚴格定義
對於 Rn 中的非空向量集合 S={u1,u2,…,uk},我們定義 S 的 Span(生成空間) 為所有 u1,u2,…,uk 的線性組合所構成的集合:
Span S={c1u1+c2u2+⋯+ckuk:c1,c2,…,ck∈R}也可以寫成 Span{u1,u2,…,uk}。
簡單來說:Span 就是「用這些向量能組合出的所有可能結果」的集合。
兩者皆可!
- 作為名詞:Span S 是一個集合,代表由 S 中向量線性組合所張成的空間
- 作為動詞:「向量 u1,u2 span 一個平面」表示這些向量的線性組合構成了該平面
因此「span 出的空間」這種說法是正確的,span 在此作為動詞,意思是「張成」或「生成」。
Span 的幾何意義
單一向量的 Span:直線
如果 S 只包含一個非零向量 u,那麼:
Span{u}={cu:c∈R}
這是所有 u 的純量倍數,幾何上就是一條通過原點、方向為 u 的直線。

上圖展示了向量 u 的 Span:所有 cu(c∈R)構成一條通過原點的直線。圖中的 0.5u 和 −0.5u 都是這條直線上的點。
兩個非平行向量的 Span:平面
如果 S 包含兩個非平行(non-parallel)的向量 u1 和 u2,那麼:
Span{u1,u2}={c1u1+c2u2:c1,c2∈R}
這是一個通過原點的平面。平面上的任意向量 v 都可以表示為 u1 和 u2 的線性組合。

上圖展示了兩個非平行向量 u1 和 u2 的 Span:它們張成一個通過原點的平面。平面上的任意向量 v 都可以寫成 v=c1u1+c2u2。
三個非共面向量的 Span:整個 R³
在 R3 中,如果三個向量不共面(即沒有任何一個向量可以被其他兩個線性組合出來),那麼它們的 Span 就是整個 R3。
經典例子:標準基底向量
e1=100,e2=010,e3=001
則:
Span{e1,e2,e3}=R3
因為任意向量 abc=ae1+be2+ce3。

上圖展示了 R3 中的三個標準基底向量 e1、e2、e3,它們的 Span 是整個三維空間。
平行向量的 Span:仍是直線
如果兩個向量是平行的(即其中一個是另一個的純量倍數),那麼它們的 Span 仍然只是一條直線。
範例:設 S1={[1−1]} 和 S2={[1−1],[−22]}
因為 [−22]=−2[1−1],所以:
Span S1=Span S2=一條直線

上圖說明了當兩個向量平行時,即使有兩個向量,它們的 Span 仍然只是一條直線,因為其中一個向量是「冗餘」的。
Span 的基本性質
- Span{0}={0}(零向量的 Span 只有零向量本身)
- Span{u}= 所有 u 的純量倍數的集合
- 如果 S 包含至少一個非零向量,則 Span S 包含無限多個向量
Span 的矩陣表示
Span 也可以用矩陣來表示。設 A=[u1u2⋯uk] 是一個 n×k 矩陣,其 columns 就是 S 中的向量,則:
Span S={Av:v∈Rk}
這個表示法將 Span 與矩陣乘法連結起來,後續討論 Column Space 時會再深入探討。
如何判斷向量是否在 Span 內?
核心問題
給定向量集合 S={u1,u2,u3} 和向量 v,如何判斷 v∈Span S?
方法:轉換為線性方程組
要檢查向量 v 是否在 Span(S) 裡,這等價於判斷:
v 是否可以被 S 中的向量線性組合出來?
也就是說,是否存在純量 c1,c2,…,ck 使得:
c1u1+c2u2+⋯+ckuk=v這可以改寫成矩陣方程:
Ax=v其中 A=[u1u2⋯uk]。
結論:v∈Span S ⇔ Ax=v 有解(consistent)

上圖展示了判斷向量是否在 Span 內的概念:向量 v 落在 Span{u1,u2,u3} 所張成的平面上,所以 v∈Span(S);而向量 w 不在這個平面上,所以 w∈/Span(S)。
設 S=⎩⎨⎧1211,−11−21,18−15⎭⎬⎫,v=305−1,w=213−1
問題:(1) v∈Span S? (2) w∈Span S?
解法:建立矩陣 A=1211−11−2118−15,然後分別求解 Ax=v 和 Ax=w。
對於 v:增廣矩陣 [A∣v] 的 RREF 為:
1000010032001−200
沒有矛盾列 ⇒ 有解 ⇒ v∈Span S ✓
對於 w:增廣矩陣 [A∣w] 的 RREF 為:
1000010032000010
第三列為 [000∣1],這是矛盾 ⇒ 無解 ⇒ w∈/Span S ✗
生成集合 (Generating Set)
Definition: Generating Set
設 S,V⊆Rn。如果 Span S=V,則我們說:
- 「S 是 V 的生成集合 (Generating Set)」
- 或「S 生成 (generates) V」
白話解釋:如果用 S 中的向量做線性組合,可以「製造出」V 中的所有向量,那麼 S 就是 V 的生成集合。

上圖說明了 Generating Set 的概念:集合 S 中的向量透過線性組合可以「生成」整個空間 V,因此 S 是 V 的生成集合。
Generating Set 與 Span 的關係
我的理解方式:
- Span 是一個「操作」:給定一組向量,Span 告訴你它們能張成什麼空間
- Generating Set 是一個「身份」:如果 S 的 Span 恰好等於某個目標空間 V,那麼 S 就獲得了「V 的生成集合」這個身份
簡單來說:S generates V ⇔ Span S=V
範例:判斷是否為 R³ 的生成集合
問題:S=⎩⎨⎧100,110,111,1−21⎭⎬⎫ 是否生成 R3?
分析:S generates R3 ⇔ 對於任意 v∈R3,Ax=v 都有解。
設 A=1001101111−21,對任意 v∈R3,求 [A∣v] 的 RREF:
R=1000100013−31
觀察:rank(A)=3= 列數(rows of A)
這意味著 [R∣c] 不會有只含 c 分量的非零列,所以對任意 v,系統都是 consistent。
結論:Span S=R3,即 S 生成 R3 ✓
Span 與 Rank 的關係
Theorem 1.6:Span 與 Rank 的等價條件
對於 m×n 矩陣 A,以下條件等價:
(a) A 的 columns 的 Span 是 Rm(即 columns 生成 Rm)
(b) 對於任意 b∈Rm,方程 Ax=b 至少有一個解
(c) rank(A)=m(A 的列數)
(d) A 的 RREF 沒有全零列
(e) A 的每一列都有 pivot position
我的理解:
- Span 描述的是一組向量能張成的空間
- Rank 描述的是這個空間的維度
具體來說:
- 矩陣 A 的 columns 張成的空間稱為 Column Space
- 這個空間的維度就是 rank(A)
所以:
- rank(A)=m ⇔ Column Space = Rm ⇔ Columns 生成 Rm
- rank(A)<m ⇔ Column Space 是 Rm 的真子集 ⇔ 有些向量無法被線性組合出來
簡言之:Rank 就是 Span 的維度。
Theorem 1.6 的證明思路
- (a) ⇔ (b):根據 Span 的定義,b∈Span(columns of A) 等價於 Ax=b 有解
- (c) ⇔ (d):根據 rank 的定義
- (b) ⇒ (c):若 (b) 成立但 rank(A)<m,則 RREF 有全零列,取 b=em(第 m 個標準基底向量)會導致矛盾
- (c) ⇒ (b):若 rank(A)=m,則 RREF 沒有全零列,所以不會出現 [00⋯0∣d] 的矛盾列
- (d) ⇔ (e):根據 pivot position 的定義
冗餘向量與 Span
什麼是冗餘向量?

如果一個向量可以被集合中的其他向量線性組合出來,那麼這個向量就是「冗餘」的——移除它不會改變 Span。
Theorem 1.7:冗餘向量的判定
設 S={u1,u2,…,uk} 是 Rn 中的向量集合,v 是 Rn 中的向量。則:
Span{u1,u2,…,uk,v}=Span{u1,u2,…,uk}若且唯若 v∈Span S(即 v 是其他向量的線性組合)。
加入一個「冗餘」的向量不會擴大 Span;只有加入「新方向」的向量才會擴大 Span。
證明思路:
-
若 v∈Span S:則 v=a1u1+⋯+akuk。任何 S∪{v} 的線性組合都可以只用 S 表示,所以 Span 不變。
-
若 v∈/Span S:則 v 本身就在 Span(S∪{v}) 中但不在 Span S 中,所以兩個 Span 不相等。
這個定理告訴我們:從集合中移除「冗餘向量」不會改變 Span。
這在尋找「最小生成集合」(也就是基底 Basis)時非常重要——可以不斷移除冗餘向量,直到剩下的向量都是「必要的」。