跳至主要内容

向量的生成空間 (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 描述的是:一組向量能夠「張成」多大的空間

嚴格定義

Definition: Span

對於 Rn\mathbb{R}^n 中的非空向量集合 S={u1,u2,,uk}\mathcal{S} = \{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k\},我們定義 S\mathcal{S}Span(生成空間) 為所有 u1,u2,,uk\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k線性組合所構成的集合:

Span S={c1u1+c2u2++ckuk:c1,c2,,ckR}\boxed{\text{Span } \mathcal{S} = \{c_1\mathbf{u}_1 + c_2\mathbf{u}_2 + \cdots + c_k\mathbf{u}_k : c_1, c_2, \ldots, c_k \in \mathbb{R}\}}

也可以寫成 Span{u1,u2,,uk}\text{Span}\{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k\}

簡單來說:Span 就是「用這些向量能組合出的所有可能結果」的集合。

Span 是名詞還是動詞?

兩者皆可!

  • 作為名詞Span S\text{Span } \mathcal{S} 是一個集合,代表由 S\mathcal{S} 中向量線性組合所張成的空間
  • 作為動詞:「向量 u1,u2\mathbf{u}_1, \mathbf{u}_2 span 一個平面」表示這些向量的線性組合構成了該平面

因此「span 出的空間」這種說法是正確的,span 在此作為動詞,意思是「張成」或「生成」。


Span 的幾何意義

單一向量的 Span:直線

如果 S\mathcal{S} 只包含一個非零向量 u\mathbf{u},那麼:

Span{u}={cu:cR}\text{Span}\{\mathbf{u}\} = \{c\mathbf{u} : c \in \mathbb{R}\}

這是所有 u\mathbf{u} 的純量倍數,幾何上就是一條通過原點、方向為 u\mathbf{u}直線

單一向量的 Span 是一條直線

上圖展示了向量 u\mathbf{u} 的 Span:所有 cuc\mathbf{u}cRc \in \mathbb{R})構成一條通過原點的直線。圖中的 0.5u0.5\mathbf{u}0.5u-0.5\mathbf{u} 都是這條直線上的點。

兩個非平行向量的 Span:平面

如果 S\mathcal{S} 包含兩個非平行(non-parallel)的向量 u1\mathbf{u}_1u2\mathbf{u}_2,那麼:

Span{u1,u2}={c1u1+c2u2:c1,c2R}\text{Span}\{\mathbf{u}_1, \mathbf{u}_2\} = \{c_1\mathbf{u}_1 + c_2\mathbf{u}_2 : c_1, c_2 \in \mathbb{R}\}

這是一個通過原點的平面。平面上的任意向量 v\mathbf{v} 都可以表示為 u1\mathbf{u}_1u2\mathbf{u}_2 的線性組合。

兩個非平行向量的 Span 是一個平面

上圖展示了兩個非平行向量 u1\mathbf{u}_1u2\mathbf{u}_2 的 Span:它們張成一個通過原點的平面。平面上的任意向量 v\mathbf{v} 都可以寫成 v=c1u1+c2u2\mathbf{v} = c_1\mathbf{u}_1 + c_2\mathbf{u}_2

三個非共面向量的 Span:整個 R³

R3\mathbb{R}^3 中,如果三個向量不共面(即沒有任何一個向量可以被其他兩個線性組合出來),那麼它們的 Span 就是整個 R3\mathbb{R}^3

經典例子:標準基底向量

e1=[100],e2=[010],e3=[001]\mathbf{e}_1 = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \quad \mathbf{e}_2 = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}, \quad \mathbf{e}_3 = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}

則:

Span{e1,e2,e3}=R3\text{Span}\{\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3\} = \mathbb{R}^3

因為任意向量 [abc]=ae1+be2+ce3\begin{bmatrix} a \\ b \\ c \end{bmatrix} = a\mathbf{e}_1 + b\mathbf{e}_2 + c\mathbf{e}_3

三個標準基底向量張成整個 R³

上圖展示了 R3\mathbb{R}^3 中的三個標準基底向量 e1\mathbf{e}_1e2\mathbf{e}_2e3\mathbf{e}_3,它們的 Span 是整個三維空間。

平行向量的 Span:仍是直線

如果兩個向量是平行的(即其中一個是另一個的純量倍數),那麼它們的 Span 仍然只是一條直線。

範例:設 S1={[11]}\mathcal{S}_1 = \left\{\begin{bmatrix} 1 \\ -1 \end{bmatrix}\right\}S2={[11],[22]}\mathcal{S}_2 = \left\{\begin{bmatrix} 1 \\ -1 \end{bmatrix}, \begin{bmatrix} -2 \\ 2 \end{bmatrix}\right\}

因為 [22]=2[11]\begin{bmatrix} -2 \\ 2 \end{bmatrix} = -2 \begin{bmatrix} 1 \\ -1 \end{bmatrix},所以:

Span S1=Span S2=一條直線\text{Span } \mathcal{S}_1 = \text{Span } \mathcal{S}_2 = \text{一條直線}

平行向量的 Span 仍是直線

上圖說明了當兩個向量平行時,即使有兩個向量,它們的 Span 仍然只是一條直線,因為其中一個向量是「冗餘」的。


Span 的基本性質

Properties of Span
  1. Span{0}={0}\text{Span}\{\mathbf{0}\} = \{\mathbf{0}\}(零向量的 Span 只有零向量本身)
  2. Span{u}=\text{Span}\{\mathbf{u}\} = 所有 u\mathbf{u} 的純量倍數的集合
  3. 如果 S\mathcal{S} 包含至少一個非零向量,則 Span S\text{Span } \mathcal{S} 包含無限多個向量

Span 的矩陣表示

Span 也可以用矩陣來表示。設 A=[u1  u2    uk]A = [\mathbf{u}_1 \; \mathbf{u}_2 \; \cdots \; \mathbf{u}_k] 是一個 n×kn \times k 矩陣,其 columns 就是 S\mathcal{S} 中的向量,則:

Span S={Av:vRk}\boxed{\text{Span } \mathcal{S} = \{A\mathbf{v} : \mathbf{v} \in \mathbb{R}^k\}}

這個表示法將 Span 與矩陣乘法連結起來,後續討論 Column Space 時會再深入探討。


如何判斷向量是否在 Span 內?

核心問題

給定向量集合 S={u1,u2,u3}\mathcal{S} = \{\mathbf{u}_1, \mathbf{u}_2, \mathbf{u}_3\} 和向量 v\mathbf{v},如何判斷 vSpan S\mathbf{v} \in \text{Span } \mathcal{S}

方法:轉換為線性方程組

判斷 v 是否在 Span(S) 內的方法

要檢查向量 v\mathbf{v} 是否在 Span(S)\text{Span}(\mathcal{S}) 裡,這等價於判斷:

v\mathbf{v} 是否可以被 S\mathcal{S} 中的向量線性組合出來?

也就是說,是否存在純量 c1,c2,,ckc_1, c_2, \ldots, c_k 使得:

c1u1+c2u2++ckuk=vc_1\mathbf{u}_1 + c_2\mathbf{u}_2 + \cdots + c_k\mathbf{u}_k = \mathbf{v}

這可以改寫成矩陣方程:

Ax=v\boxed{A\mathbf{x} = \mathbf{v}}

其中 A=[u1  u2    uk]A = [\mathbf{u}_1 \; \mathbf{u}_2 \; \cdots \; \mathbf{u}_k]

結論vSpan S\mathbf{v} \in \text{Span } \mathcal{S} \Leftrightarrow Ax=vA\mathbf{x} = \mathbf{v} 有解(consistent)

判斷向量是否在 Span 內

上圖展示了判斷向量是否在 Span 內的概念:向量 v\mathbf{v} 落在 Span{u1,u2,u3}\text{Span}\{\mathbf{u}_1, \mathbf{u}_2, \mathbf{u}_3\} 所張成的平面上,所以 vSpan(S)\mathbf{v} \in \text{Span}(\mathcal{S});而向量 w\mathbf{w} 不在這個平面上,所以 wSpan(S)\mathbf{w} \notin \text{Span}(\mathcal{S})

範例

S={[1211],[1121],[1815]}\mathcal{S} = \left\{\begin{bmatrix} 1 \\ 2 \\ 1 \\ 1 \end{bmatrix}, \begin{bmatrix} -1 \\ 1 \\ -2 \\ 1 \end{bmatrix}, \begin{bmatrix} 1 \\ 8 \\ -1 \\ 5 \end{bmatrix}\right\}v=[3051]\mathbf{v} = \begin{bmatrix} 3 \\ 0 \\ 5 \\ -1 \end{bmatrix}w=[2131]\mathbf{w} = \begin{bmatrix} 2 \\ 1 \\ 3 \\ -1 \end{bmatrix}

問題:(1) vSpan S\mathbf{v} \in \text{Span } \mathcal{S}? (2) wSpan S\mathbf{w} \in \text{Span } \mathcal{S}

解法:建立矩陣 A=[111218121115]A = \begin{bmatrix} 1 & -1 & 1 \\ 2 & 1 & 8 \\ 1 & -2 & -1 \\ 1 & 1 & 5 \end{bmatrix},然後分別求解 Ax=vA\mathbf{x} = \mathbf{v}Ax=wA\mathbf{x} = \mathbf{w}

對於 v\mathbf{v}:增廣矩陣 [Av][A \mid \mathbf{v}] 的 RREF 為:

[1031012200000000]\begin{bmatrix} 1 & 0 & 3 & 1 \\ 0 & 1 & 2 & -2 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}

沒有矛盾列 \Rightarrow 有解 \Rightarrow vSpan S\mathbf{v} \in \text{Span } \mathcal{S}

對於 w\mathbf{w}:增廣矩陣 [Aw][A \mid \mathbf{w}] 的 RREF 為:

[1030012000010000]\begin{bmatrix} 1 & 0 & 3 & 0 \\ 0 & 1 & 2 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{bmatrix}

第三列為 [0  0  01][0 \; 0 \; 0 \mid 1],這是矛盾 \Rightarrow 無解 \Rightarrow wSpan S\mathbf{w} \notin \text{Span } \mathcal{S}


生成集合 (Generating Set)

定義

Definition: Generating Set

S,VRn\mathcal{S}, \mathcal{V} \subseteq \mathbb{R}^n。如果 Span S=V\text{Span } \mathcal{S} = \mathcal{V},則我們說:

  • S\mathcal{S}V\mathcal{V}生成集合 (Generating Set)
  • 或「S\mathcal{S} 生成 (generates) V\mathcal{V}

白話解釋:如果用 S\mathcal{S} 中的向量做線性組合,可以「製造出」V\mathcal{V} 中的所有向量,那麼 S\mathcal{S} 就是 V\mathcal{V} 的生成集合。

Generating Set 的概念

上圖說明了 Generating Set 的概念:集合 S\mathcal{S} 中的向量透過線性組合可以「生成」整個空間 V\mathcal{V},因此 S\mathcal{S}V\mathcal{V} 的生成集合。

Generating Set 與 Span 的關係

我的理解方式:

  • Span 是一個「操作」:給定一組向量,Span 告訴你它們能張成什麼空間
  • Generating Set 是一個「身份」:如果 S\mathcal{S} 的 Span 恰好等於某個目標空間 V\mathcal{V},那麼 S\mathcal{S} 就獲得了「V\mathcal{V} 的生成集合」這個身份

簡單來說:S\mathcal{S} generates V\mathcal{V} \Leftrightarrow Span S=V\text{Span } \mathcal{S} = \mathcal{V}

範例:判斷是否為 R³ 的生成集合

問題S={[100],[110],[111],[121]}\mathcal{S} = \left\{\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}, \begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix}\right\} 是否生成 R3\mathbb{R}^3

分析S\mathcal{S} generates R3\mathbb{R}^3 \Leftrightarrow 對於任意 vR3\mathbf{v} \in \mathbb{R}^3Ax=vA\mathbf{x} = \mathbf{v} 都有解。

A=[111101120011]A = \begin{bmatrix} 1 & 1 & 1 & 1 \\ 0 & 1 & 1 & -2 \\ 0 & 0 & 1 & 1 \end{bmatrix},對任意 vR3\mathbf{v} \in \mathbb{R}^3,求 [Av][A \mid \mathbf{v}] 的 RREF:

R=[100301030011]R = \begin{bmatrix} 1 & 0 & 0 & 3 \\ 0 & 1 & 0 & -3 \\ 0 & 0 & 1 & 1 \end{bmatrix}

觀察:rank(A)=3=\text{rank}(A) = 3 = 列數(rows of AA

這意味著 [Rc][R \mid \mathbf{c}] 不會有只含 c\mathbf{c} 分量的非零列,所以對任意 v\mathbf{v},系統都是 consistent。

結論Span S=R3\text{Span } \mathcal{S} = \mathbb{R}^3,即 S\mathcal{S} 生成 R3\mathbb{R}^3


Span 與 Rank 的關係

Theorem 1.6:Span 與 Rank 的等價條件

Theorem 1.6

對於 m×nm \times n 矩陣 AA,以下條件等價:

(a) AA 的 columns 的 Span 是 Rm\mathbb{R}^m(即 columns 生成 Rm\mathbb{R}^m

(b) 對於任意 bRm\mathbf{b} \in \mathbb{R}^m,方程 Ax=bA\mathbf{x} = \mathbf{b} 至少有一個解

(c) rank(A)=m\boxed{\text{rank}(A) = m}AA 的列數)

(d) AA 的 RREF 沒有全零列

(e) AA 的每一列都有 pivot position

Span 與 Rank 的關係

我的理解:

  • Span 描述的是一組向量能張成的空間
  • Rank 描述的是這個空間的維度

具體來說:

  • 矩陣 AA 的 columns 張成的空間稱為 Column Space
  • 這個空間的維度就是 rank(A)\text{rank}(A)

所以:

  • rank(A)=m\text{rank}(A) = m \Leftrightarrow Column Space = Rm\mathbb{R}^m \Leftrightarrow Columns 生成 Rm\mathbb{R}^m
  • rank(A)<m\text{rank}(A) < m \Leftrightarrow Column Space 是 Rm\mathbb{R}^m 的真子集 \Leftrightarrow 有些向量無法被線性組合出來

簡言之:Rank 就是 Span 的維度。

Theorem 1.6 的證明思路

  • (a) ⇔ (b):根據 Span 的定義,bSpan(columns of A)\mathbf{b} \in \text{Span}(\text{columns of } A) 等價於 Ax=bA\mathbf{x} = \mathbf{b} 有解
  • (c) ⇔ (d):根據 rank 的定義
  • (b) ⇒ (c):若 (b) 成立但 rank(A)<m\text{rank}(A) < m,則 RREF 有全零列,取 b=em\mathbf{b} = \mathbf{e}_m(第 mm 個標準基底向量)會導致矛盾
  • (c) ⇒ (b):若 rank(A)=m\text{rank}(A) = m,則 RREF 沒有全零列,所以不會出現 [0  0    0d][0 \; 0 \; \cdots \; 0 \mid d] 的矛盾列
  • (d) ⇔ (e):根據 pivot position 的定義

冗餘向量與 Span

什麼是冗餘向量?

如果一個向量可以被集合中的其他向量線性組合出來,那麼這個向量就是「冗餘」的——移除它不會改變 Span。

Theorem 1.7:冗餘向量的判定

Theorem 1.7

S={u1,u2,,uk}\mathcal{S} = \{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k\}Rn\mathbb{R}^n 中的向量集合,v\mathbf{v}Rn\mathbb{R}^n 中的向量。則:

Span{u1,u2,,uk,v}=Span{u1,u2,,uk}\text{Span}\{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k, \mathbf{v}\} = \text{Span}\{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_k\}

若且唯若 vSpan S\mathbf{v} \in \text{Span } \mathcal{S}(即 v\mathbf{v} 是其他向量的線性組合)。

加入一個「冗餘」的向量不會擴大 Span;只有加入「新方向」的向量才會擴大 Span。

證明思路

  • vSpan S\mathbf{v} \in \text{Span } \mathcal{S}:則 v=a1u1++akuk\mathbf{v} = a_1\mathbf{u}_1 + \cdots + a_k\mathbf{u}_k。任何 S{v}\mathcal{S} \cup \{\mathbf{v}\} 的線性組合都可以只用 S\mathcal{S} 表示,所以 Span 不變。

  • vSpan S\mathbf{v} \notin \text{Span } \mathcal{S}:則 v\mathbf{v} 本身就在 Span(S{v})\text{Span}(\mathcal{S} \cup \{\mathbf{v}\}) 中但不在 Span S\text{Span } \mathcal{S} 中,所以兩個 Span 不相等。

這個定理的實用意義

這個定理告訴我們:從集合中移除「冗餘向量」不會改變 Span

這在尋找「最小生成集合」(也就是基底 Basis)時非常重要——可以不斷移除冗餘向量,直到剩下的向量都是「必要的」。