前面已經介紹了矩陣的零空間和列空間,它們都屬於矩陣的四個基本子空間,基本子空間還包括行空間和左零空間。
召喚一個矩陣:

為了找出零空間和列空間,先進行套路運算——轉換為行最簡階梯矩陣:
只有一個主元,也就是僅有一個向量都是獨立向量,列空間是:

這同時也意味着矩陣A的秩是1。矩陣的秩、列空間的基的向量數、獨立向量數、主元數,這些都是一個意思,只是用於不同場景中,這些概念往往容易讓人混淆。實際上直到今天,我仍然會對一些概念產生一瞬間或幾分鍾的困惑,不得不重新翻閱資料。
再來看零空間,主元可以用另外兩個自由元表示,這里用x2和x3表示x1:

A的零空間:

左零空間
零空間關注的是Ax = 0的解,除此之外,我們還想關注轉置后的A形成的方程的性質,也就是ATx = 0的解。還是剛才的矩陣,看看A轉置后的零空間:

套路運算,行最簡階梯型矩陣:

第二列可以用第一列表示,第二列是第一列的線性組合,只有一個獨立向量,只有一個主元,秩是1……一大堆相似概念,最終可以得到這樣的方程:

AT的零空間:

獨立地看,AT的零空間是ATx = O的解,這又有什么用呢?它與Ax = O有什么關系?

如果把等式兩邊同時轉置,右側依然是趴下的零向量,左側:

這下清晰了,A的零空間是將A右乘x;如果左乘x就是AT的零空間:

由於x在A的左側,所以AT的零空間也叫A的左零空間。
行空間
A的行空間也就是AT的列空間,A的秩是在回答A中有多少列是線性無關的,AT是在回答A中有多少行是線性無關的。有趣的是,A的秩和AT的秩相等。理解這里一點很有用,尤其是在確定列空間的基時,輔助行空間可以幫助我們避免一些陷阱,比如下面這個矩陣:

三列是否是線性無關的?如果最有一個列向量是<3, 3, 7>,那么很明顯第三個向量可以由前兩個向量代替,現在第三個向量稍稍偏移了一點,所以三個向量應該是線性無關的。真是這樣嗎?
實際上我們不必去計算,A的列向量之間的關系沒那么明顯,但是行向量則不然——前兩個行向量相同,A中只有兩個線性無關的行向量,也就是A的秩是2,所以A的列向量也不是獨立向量。
空間和維數
前面已經多次出現過維度的概念,如果有一個Am×n矩陣,它的四個基本子空間的維數各是多少呢?
只要清楚四個基本子空間的概念,這個問題就比較容易回答。列空間的一組基一定包含A的一個列向量,這個列向量是m維的,所以列空間一定在Rm中;同理,行空間在Rn中。具體來說,由於秩是r,所以列空間是Rm中的r維子空間,行空間是Rn中的r維子空間。
零空間是Ax = 0中x的解,x是n維向量,所以零空間在Rn中;同理,左零空間在Rm中。零空間的維數是由自由元決定的,自由元等於矩陣列數減去主元個數,也就是n – r,所以零空間是n維空間內的n – r維子空間。左零空間是m維空間內的m – r維子空間。
總結一下:
列空間,位於Rm下的r維空間
行空間,位於Rn下的r維空間
零空間,位於Rn下的 n – r維空間
左零空間,位於Rm下的 m – r維子空間
行空間的基
可以先對矩陣轉置,在通過列空間的方式尋找行空間的基。這樣做沒錯,但多少有些無聊,我們更希望一次就能同時找到列空間和行空間的基。看個例子:

A的列空間和行空間都比較容易確定,甚至不需要化簡:

雖然列空間和行空間的獨立向量個數相等,但列空間和行空間可不行等,所以還是需要某種通用的方法。仍然是先將A化簡為行最簡階梯形矩陣:

R是A的行最簡階梯矩陣,通過R可以確認A的秩r = 2。下面是關鍵:對於A來說,行空間的基是R的前r行,即:

之所以能夠得到這樣的結論,是因為從A到R的變換本來就是通過行的線性變換得到的,變換到最后,R中只留下了線性無關的行向量。這實際是在說,R是最簡行階梯矩陣,R中的每一級階梯都是線性無關的。
左零空間的基
召喚一個矩陣:

直接的方法是使用左零空間的定義,將A轉置,然后求解AT的零空間:

這和求解零空間一樣,化簡為行最簡階梯形矩陣:

這就是A的左零空間。這樣計算簡單粗暴。
另外一種方法是使用高斯-諾當消元法,通過記錄行變換的方式找到左零空間。這種方法的大概思路是和求逆矩陣類似,其過程是使[Am×n Im×m]→[Rm×n Em×m],如果A是方陣,R是單位矩陣,則轉化過程和求逆一致。

E實際上是記錄了從A到R的初等行變換,EA = R。如果用《線性代數9——消元矩陣與置換矩陣》中的方法寫出來,其過程如下:

最終的消元矩陣:

費了很大勁求出E,目的是為了得到A的左零空間,R的最后一行是OT,也就是說E的最后一行與A的乘積是OT:

這相當於:

現在可以確定,A的左零空間是:

這個方法的思路是尋找一個零行向量OT的行組合。
作者:我是8位的

