這一節是矩陣語言和向量空間語言真正接上的地方。固定一個矩陣之後, 自然會出現兩個子空間:
- 由各列向量張成的子空間;
- 由各行向量張成的子空間。
這兩個定義不是形式上加上去的裝飾,而是直接回答以下問題:
- 對於方程組 ,哪些右端向量
b真的可以出現? - 各行實際上保存了多少獨立的線性資訊?
- 把冗餘完全刪走之後,還剩下多少個真正獨立的方向?
答案就是矩陣的 列空間、行空間 和 秩。
列空間:矩陣可以輸出甚麼?
設 是一個 矩陣,將它的列寫成
定義
列空間
矩陣 的 列空間,記作 C(A),就是 各列向量的張成:
它是 的一個子空間。
這個定義最有用的讀法,是經由矩陣乘法理解。 如果 ,那麼
所以任何形如 Ax 的向量,都是各列向量的線性組合。
反過來講,任何由各列向量組成的線性組合,都可以寫成某個 Ax。
定理
列空間就是所有可能輸出
對任何 矩陣 ,
因此一個向量 屬於 C(A),當且僅當方程組
相容、有解。
這正是列空間重要的原因:它精確說明哪些右端向量可以由矩陣產生。
行空間:各行帶着甚麼線性資訊?
如果 的各行是 ,將每一行都視為 中的 行向量,就得到第二個子空間。
定義
行空間
矩陣 的 行空間,記作 R(A),就是 各行向量的張成:
它是 的一個子空間。
一般情況下,這兩個空間屬於不同的 ambient space:
C(A)屬於 ,因為每一列有m個分量;R(A)屬於 ,因為每一行有n個分量。
即使 是方陣,也不應該把列空間和行空間混為一談。它們由不同的向量生成, 也回答不同問題。
它們和轉置之間有一個乾淨的關係:
所以關於行空間的敘述,往往可以翻譯成關於轉置矩陣列空間的敘述。
行化簡時,究竟保留了甚麼?
最簡行階梯形是計算這個主題最重要的工具,但一定要小心使用。
定理
行變換保留與不保留的內容
如果 和 行等價,則
但一般不會有
為甚麼這個分別很重要?
- 行變換會將新的一行寫成舊行的線性組合,所以行空間保持不變;
- 行變換是整行一起改動,而不是逐列獨立處理,所以實際的列空間通常會改變。
這就帶出一條學生常背、但未必真正理解的規則:
要找 C(A) 的一組基底,要用 原矩陣 中樞紐列所對應的列。
要找 R(A) 的一組基底,則用 的 RREF 的所有非零行。
樞紐位置由 RREF 讀出,但列空間的基底向量一定要回到原矩陣中取得。
秩:數清楚獨立方向有多少個
列空間的維數叫做 column rank, 行空間的維數叫做 row rank。 線性代數一條核心定理告訴我們,這兩個數其實相等。
定義
秩
矩陣 的 秩,就是列空間和行空間共同的維數:
當你把矩陣行化簡到 RREF 之後,樞紐列的數目正正就是秩。 所以秩衡量的,是去除所有冗餘之後,還保留了多少個獨立方向。
例題:由一次行化簡讀出列空間、行空間與秩
例題
由同一個矩陣讀出列空間、行空間與秩
考慮
行化簡得到
這裏有兩個樞紐列,也就是第 1 列和第 2 列。
將 的列記作
因此列空間的一組基底是
因為其餘列都可以由它們表示:
至於行空間,就用 的非零行:
因此
最後,如果
因此 ,因為
等價地,方程組 有解。
這張靜態圖整理上面的例題:樞紐位置由 RREF 讀出,列空間的基底向量取自原矩陣,RREF 的非零行形成行空間的一組基底,而兩個空間的維數同樣等於秩。
為甚麼這個基底規則成立?
設 是 的 RREF。
- 的樞紐列指出哪些欄位位置是獨立的;
- 行變換會保留各列之間的線性關係;
- 所以原矩陣 中相應位置的列,仍然獨立,而且仍然張成整個
C(A)。
對於行空間就更直接:因為行變換本身保留行空間,所以 的非零行已經構成
R(A) 的一組基底。
常見錯誤
常見錯誤
不要用 RREF 的樞紐列直接做列空間基底
行化簡通常會改變列空間。所以雖然樞紐位置由 RREF 讀出,但 C(A)
真正的基底向量一定要取自原矩陣中相應的列。
另一個常見錯誤,是因為列空間和行空間維數一樣,就說它們是同一個子空間。 維數相同只表示獨立方向的數目相同,不表示兩個子空間本身相等。
快速檢查
快速檢查
如果 是一個 矩陣,C(A) 和 R(A) 分別屬於哪個 ambient space?
分別數一數每一列有多少個分量,以及每一行有多少個分量。
解答
答案
快速檢查
如果某個矩陣的 RREF 有三個樞紐列,它的秩是多少?
記住秩如何由 RREF 讀出。
解答
答案
練習
快速檢查
設 。求秩,並求列空間的一組基底。
先做行化簡,找出樞紐列,再回到原矩陣取相應的列。
解答
引導解答
先讀這幾節
這一節特別依賴 2.3 高斯消去與 RREF、 3.2 轉置與特殊矩陣 和 6.5 基底與維度。