深入淺出:“矩陣本質”(上)
下面讓我們把視力集中到一點以改變我們以往看待矩陣的方式。我們知道,線性空間里的基本對象是向量,而向量是這么表示的:
[a1, a2, a3, ..., an]
矩陣呢?矩陣是這么表示的:
a11, a12, a13, ..., a1n
a21, a22, a23, ..., a2n
...........
an1, an2, an3, ..., ann
不用太聰明,我們就能看出來,矩陣是一組向量組成的。特別的,n維線性空間里的方陣是由n個n維向量組成的。我們在這里只討論這個n階的、非奇異的方陣,如果一組向量是彼此線性無關的話,那么它們就可以成為度量這個線性空間的一組基,從而事實上成為一個坐標系體系,其中每一個向量都躺在一根坐標軸上,並且成為那根坐標軸上的基本度量單位(長度1)。現在到了關鍵的一步。看上去矩陣就是由一組向量組成的,而且如果矩陣非奇異的話(我說了,只考慮這種情況),那么組成這個矩陣的那一組向量也就是線性無關的了,也就可以成為度量線性空間的一個坐標系。(方陣非奇異=矩陣可逆=矩陣滿秩=矩陣行向量線性無關=矩陣列向量線性無關)結論:矩陣描述了一個坐標系。之所以矩陣又是運動,又是坐標系,那是因為——“運動等價於坐標系變換”。對不起,這話其實不准確,我只是想讓你印象深刻。准確的說法是:“對象的變換等價於坐標系的變換”。或者:“固定坐標系下一個對象的變換等價於固定對象所處的坐標系變換。”說白了就是: “運動是相對的。”
讓我們想想,達成同一個變換的結果,比如把點(1, 1)變到點(2, 3)去,你可以有兩種做法。第一,坐標系不動,點動,把(1, 1)點挪到(2, 3)去。第二,點不動,變坐標系,讓x軸的度量(單位向量)變成原來的1/2,讓y軸的度量(單位向量)變成原先的1/3,這樣點還是那個點,可是點的坐標就變成(2, 3)了。方式不同,結果一樣。從第一個方式來看,那就是我在《理解矩陣》1/2中說的,把矩陣看成是運動描述,矩陣與向量相乘就是使向量(點)運動的過程。在這個方式下,
Ma = b的意思是:
“向量a經過矩陣M所描述的變換,變成了向量b。”
而從第二個方式來看,矩陣M描述了一個坐標系,姑且也稱之為M。那么:
Ma = b的意思是:
“有一個向量,它在坐標系M的度量下得到的度量結果向量為a,那么它在坐標系I的度量下,這個向量的度量結果是b。”
這里的I是指單位矩陣,就是主對角線是1,其他為零的矩陣。而這兩個方式本質上是等價的。我希望你務必理解這一點,因為這是本篇的關鍵。正因為是關鍵,所以我得再解釋一下。在M為坐標系的意義下,如果把M放在一個向量a的前面,形成Ma的樣式,我們可以認為這是對向量a的一個環境聲明。它相當於是說: “注意了!這里有一個向量,它在坐標系M中度量,得到的度量結果可以表達為a。可是它在別的坐標系里度量的話,就會得到不同的結果。為了明確,我把M放在前面,讓你明白,這是該向量在坐標系M中度量的結果。” 那么我們再看孤零零的向量b:
b 多看幾遍,你沒看出來嗎?它其實不是b,它是:
Ib
也就是說:“在單位坐標系,也就是我們通常說的直角坐標系I中,有一個向量,度量的結果是b。”
而 Ma = Ib的意思就是說:
“在M坐標系里量出來的向量a,跟在I坐標系里量出來的向量b,其實根本就是一個向量啊!”這哪里是什么乘法計算,根本就是身份識別嘛。從這個意義上我們重新理解一下向量。向量這個東西客觀存在,但是要把它表示出來,就要把它放在一個坐標系中去度量它,然后把度量的結果(向量在各個坐標軸上的投影值)按一定順序列在一起,就成了我們平時所見的向量表示形式。你選擇的坐標系(基)不同,得出來的向量的表示就不同。向量還是那個向量,選擇的坐標系不同,其表示方式就不同。因此,按道理來說,每寫出一個向量的表示,都應該聲明一下這個表示是在哪個坐標系中度量出來的。表示的方式,就是 Ma,也就是說,有一個向量,在M矩陣表示的坐標系中度量出來的結果為a。我們平時說一個向量是[2 3 5 7]T,隱含着是說,這個向量在 I 坐標系中的度量結果是[2 3 5 7]T,因此,這個形式反而是一種簡化了的特殊情況。
注意到,M矩陣表示出來的那個坐標系,由一組基組成,而那組基也是由向量組成的,同樣存在這組向量是在哪個坐標系下度量而成的問題。也就是說,表述一個矩陣的一般方法,也應該要指明其所處的基准坐標系。所謂M,其實是 IM,也就是說,M中那組基的度量是在 I 坐標系中得出的。從這個視角來看,M×N也不是什么矩陣乘法了,而是聲明了一個在M坐標系中量出的另一個坐標系N,其中M本身是在I坐標系中度量出來的。
回過頭來說變換的問題。我剛才說,“固定坐標系下一個對象的變換等價於固定對象所處的坐標系變換”,那個“固定對象”我們找到了,就是那個向量。但是坐標系的變換呢?我怎么沒看見?請看:
Ma = Ib
我現在要變M為I,怎么變?對了,再前面乘以個M-1,也就是M的逆矩陣。換句話說,你不是有一個坐標系M嗎,現在我讓它乘以個M-1,變成I,這樣一來的話,原來M坐標系中的a在I中一量,就得到b了。
我建議你此時此刻拿起紙筆,畫畫圖,求得對這件事情的理解。比如,你畫一個坐標系,x軸上的衡量單位是2,y軸上的衡量單位是3,在這樣一個坐標系里,坐標為(1,1)的那一點,實際上就是笛卡爾坐標系(直角坐標系)里的點(2, 3)。而讓它原形畢露的辦法,就是把原來那個坐標系:
2 0
0 3
的x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3,這樣一來坐標系就變成單位坐標系I了。保持點不變,那個向量現在就變成了(2, 3)了。
怎么能夠讓“x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3”呢?就是讓原坐標系:
2 0
0 3
被矩陣:
1/2 0
0 1/3
左乘。而這個矩陣就是原矩陣的逆矩陣。
下面我們得出一個重要的結論:
“對坐標系施加變換的方法,就是讓表示那個坐標系的矩陣與表示那個變化的矩陣相乘。”
再一次的,矩陣的乘法變成了運動的施加。只不過,被施加運動的不再是向量,而是另一個坐標系。
如果你覺得你還搞得清楚,請再想一下剛才已經提到的結論,矩陣MxN(矩陣相乘),一方面表明坐標系N在運動M下的變換結果,另一方面,把M當成N的前綴,當成N的環境描述,那么就是說,在M坐標系度量下,有另一個坐標系N。這個坐標系N如果放在I坐標系中度量,其結果為坐標系MxN。
在這里,我實際上已經回答了一般人在學習線性代數是最困惑的一個問題,那就是為什么矩陣的乘法要規定成這樣。簡單地說,是因為:
1. 從變換的觀點看,對坐標系N施加M變換,就是把組成坐標系N的每一個向量施加M變換。
2. 從坐標系的觀點看,在M坐標系中表現為N的另一個坐標系,這也歸結為,對N坐標系基的每一個向量,把它在I坐標系中的坐標找出來,然后匯成一個新的矩陣。
3. 至於矩陣乘以向量為什么要那樣規定,那是因為一個在M中度量為a的向量,如果想要恢復在I中的真像,就必須分別與M中的每一個向量進行內積運算。我把這個結論的推導留給感興趣的朋友吧。應該說,其實到了這一步,已經很容易了。
綜合以上1/2/3,矩陣的乘法就得那么規定,一切有根有據,絕不是哪個神經病胡思亂想出來的。
參考:
https://blog.csdn.net/congzi66166/article/details/78622317
https://blog.csdn.net/u010551600/article/details/78207603