本文的閱讀等級:初級
令 為一個 階實矩陣,也就是說 是一個線性變換 (見“線性變換與矩陣的用語比較”)。矩陣 的值域 (range) 即為其行空間 (column space)
。
將矩陣 以行向量 (column vector) 表示為 ,其中 。因為
,
就是行向量 的線性組合形成的集合。矩陣 的核 (kernel) 即為其零空間 (nullspace),記為
。
對於 階轉置矩陣 , 稱為 的列空間 (row space), 稱為 的左零空間 (left nullspace)。為什麼有這個奇怪的名稱?考慮 ,等號兩邊取轉置可得 ,因為 在 的左側,故名左零空間。以上是實矩陣 的四個基本子空間,其中列空間 和零空間 是 的子空間,行空間 和左零空間 是 的子空間 (見“線性代數基本定理 (二)”)。本文介紹一個矩陣的四個基本子空間的基底算法 (類似問題見“每週問題 April 6, 2009”):以基本列運算 (elementary row operation) 化簡給定的矩陣 至簡約列梯形式 (reduced row echelon form),再從所執行過的列運算與最後的結果取出各子空間的基底向量。
我們先將 階矩陣 和單位矩陣 合併為一個增廣矩陣 ,接著以基本列運算化簡直到產生簡約列梯形式。列運算過程可表示為一連串的矩陣乘法,引入 的目的即在記錄所執行過的淨運算。令 階矩陣 代表對應列運算的基本矩陣乘積 (見“特殊矩陣 (10):基本矩陣”)。基本列運算的化簡過程可表示如下:
,
上面我們令 階矩陣 為 的簡約列梯形式。設 ,明顯地,。矩陣秩 給出四個基本子空間維數 (即基底向量數,見“線性代數基本定理 (一)”):
。
因為簡約列梯形式 的軸行 (pivot column,包含軸的行) 總數等於 ,故可表示成分塊矩陣
,
其中 階單位矩陣 對應軸行, 階分塊 對應非軸行,零列包含 階和 階兩個零分塊。我們設定上述分塊矩陣形式僅為了方便推導,實際上,軸行未必都位居領先行 (請參考底下的例子)。令 ,其中 是 階分塊, 是 階分塊。所以,最終結果具有下列形式:
。
這個分塊結構連同關係式 提供了描述 的四個基本子空間的充足資訊,下面解說如何推導它們的基底。
列空間
基本列運算的作為是列的線性組合,因此不改變矩陣的列空間,可知 。簡約列梯形式 的 個非零列 (即軸列) 是一個線性獨立集,表明分塊 的所有列向量構成 的列空間的一組基底。
零空間
基本列運算非但不改變矩陣的列空間,也不改變零空間,故 。簡約列梯形式 唯一決定 階零空間矩陣 (nullspace matrix)
,
很容易確認 (見“零空間的快捷算法”,“行空間與零空間的互換表達”)。因為 的行向量是一個線性獨立集,它們構成 的零空間的一組基底。
行空間
基本列運算改變了矩陣的行空間,,因此僅由簡約列梯形式 無法推知 的行空間。但基本列運算不改變行向量之間的線性組合關係 (見“左乘還是右乘,這就是問題所在”),因為這個緣故, 的軸行指標就是 的線性獨立行向量指標,故知 的這些線性獨立行向量集構成 的行空間的一組基底。
左零空間
寫出
,
其中 說明 的列向量屬於左零空間 。基本矩陣乘積 是一個可逆矩陣,必有線性獨立的列向量,所以分塊 的列向量集構成了 的左零空間的一組基底。
底下舉一個例子說明矩陣的四個基本子空間基底的計算程序。考慮 階矩陣
,
求 ,, 和 的基底。
步驟 1:以基本列運算將 化簡至簡約列梯形式 。結果如下:
步驟 2:將重要的結果整理出來。簡約列梯形式 的 1, 4 行是軸行,故 ,。提取主要分塊並寫出零空間矩陣:
。
步驟 3:寫出各子空間的基底。
列空間 的基底由 的列向量組成:
。
零空間 的基底由 的行向量組成:
。
行空間 的基底包含 的軸行,即第 1, 4 行:
。
左零空間 的基底由 的列向量組成:
。
老师您好,非常喜欢您写的现代启示录,概念讲得特别简练清楚。我尤其喜欢概念中几何意义的引申,很有启发,打算认真读完。谢谢!
另外,这篇文章的开始,定义部分是不是有些拼写错误?C(A), column space, 是不是“列空间”,而C(A^T),row space,则表示“行空间”?
歡迎來訪。你點出的問題很有趣。既不是你誤讀,也不是我寫錯,這是因為兩岸對於「行」與「列」用法不同而生的誤會。請見
哪麼是甚麼原因造成的呢?這個嘛,我也不知道。
老師您好 想請問你一些觀念
如圖上式=號是成立的嗎
我下面假設了一個例子 它們的向量一樣
但一個是列表示一個是行表示 這樣也算等於嗎?
因為最近碰到類似的題目有解題老師說 col(A^T)與Row(A) 算同構 但不等於
不知這觀念是不是錯的?
希望老師解惑
二維向量可以寫成 或 ,但如果視為矩陣,則 與 的意義就不同。
是 的行向量擴張的子空間, 是 的列向量擴張的子空間,兩者是相同的子空間,。我們說子空間 ,若 與 在同一個向量空間內,且 ,。關於同構子空間的討論請見
老師 所以我上面空間展延的橫 [1 0] 和 直的[1 0] 是向量而非矩陣 所以兩個其實是一樣的 只是在表示時可以用直的或橫的來表示一個向量 可以這樣理解嗎
是的。再舉個例子, 是 的解形成的子空間, 裡的向量該怎麼規範直的或橫的?從書寫上來看應該是直的,也就表示 不等於 ,因為 包含橫的向量。幾何向量區分直橫只會製造麻煩。
對 我之前就有這樣直橫的問題
感謝老師的解答 我懂了
In the example, how did you get the basis vectors for the left nullspace? The vectors a=[ -1 2 0 0] and b=[1 0 -1 1] can form a basis for the left nullspace. And [-13 29 3 -3]=10a + (-3)b; [4 -6 -1 1]=(-3)a + b.