這位外國博主的個人空間:3Blue1Brown
視頻地址:線性代數的本質 - 系列合集
(若上述url失效,請點擊上方該博主個人空間,搜索“線性代數的本質”視頻)
矩陣乘法與線性變換復合(視頻p5)
一個矩陣乘以一個向量,得到的結果在幾何上可以將其視為,對這個向量的基向量進行線性變換了之后,這個向量在原坐標系中的位置。
那么它左乘一個矩陣,就是一次對空間的一種特定的變換,得到的結果是與原向量維數相同的一個向量,那么如果在一次變換過后,再做一次變換呢?
比如,先旋轉,再剪切,兩次變換最終的結果,其實可以視為另外的一個線性變換,被稱為前面兩個獨立變換的“復合變換”。
數學上,將上述的過程可以寫成這樣的矩陣與向量相乘的式子:
上面這個式子,描述的是對於向量(x,y)所在的空間,先做了一次旋轉的變換,然后再做了一次剪切的變換。
無論最終結果如何,這兩次變換的效果合起來,都是會等於右邊這個復合矩陣的變換效果的。
看到這里,是不是有點知道我要說什么了?如果沒有一點呼之欲出的感覺,那就再讀一遍上面加粗這句話。
沒錯,兩個矩陣相乘(剪切矩陣 × 旋轉矩陣),在幾何空間上的理解,就是兩次變換的疊加。(多個矩陣相乘同理)
並且,你多次變換,也就是一個向量多次乘以一個矩陣咯,每一次其實都是矩陣乘向量,矩陣乘向量是一定要矩陣在左邊的,所以對於一個向量被多個矩陣連乘的式子,應該從右往左看。
接下來從幾何意義來講一下兩個矩陣相乘時的運算,
M2 × M1,本質上就是先對原始空間進行M1矩陣所表示的變換,然后再對變換完的空間進行矩陣M2所表示的變換。然后從前面我們也看到了,M1矩陣是如何表示一個變換的呢?本質上的兩列,就分別代表了變換后的二維空間上的兩個基向量。
所以經過M1的變換之后,基向量 \(\vec{i}\) 其實就是\(\left[\begin{array}{l} 1 \\ 1 \end{array}\right]\),而基向量 \(\vec{j}\) 就變成了 \(\left[\begin{array}{l} -2 \\ 0 \end{array}\right]\) ,那基向量也是向量啊,對於經歷過M1變換過后的空間再做M2的變換(這個是本質),數學式子上看,就是拿M2這個矩陣去分別乘以M1變換過后的空間中的基向量,
然后分別得到的兩個新的基向量 \(\left[\begin{array}{l} 2 \\ 1 \end{array}\right]\) 和 \(\left[\begin{array}{l} 0 \\ -2 \end{array}\right]\),就組成了這個復合矩陣 \(\left[\begin{array}{l} 2 & 0\\ 1 & -2 \end{array}\right]\)。(因為復合矩陣表示的變換效果就是M1變換之后再M2變換,矩陣中的兩列就是變換過后的兩個基向量)
問題:矩陣相乘滿足交換律嗎?
用幾何變換的角度來看,AB ≠ BA,詳見動畫演示 https://www.bilibili.com/video/BV1ms41167u9
問題:矩陣相乘滿足結合律嗎?如 (AB)C = A(BC) ?
因為是從右往左讀,所以左邊的式子是對原空間先做了一個C的變換,然后做了一個等效於A×B的合變換(本質上等效於A×B的合變換,就是先做B變換,再做A變換),而右邊的式子是做了一個等效於B×C的合變換,然后再做A變換,所以等式左右兩邊都是先做了C變換,然后做B變換,最后做A變換。
所以滿足結合律。
行列式(視頻p7)
這里以二維空間舉例(也就是平面空間)
給出一個矩陣,如 \(\left[\begin{array}{l} 3 & 0\\ 0 & 2 \end{array}\right]\) ,它表示的是將基向量所在的空間做一個變換,原來的兩個基向量 \(\vec{i}:\left[\begin{array}{l} 0 \\ 1 \end{array}\right]\) 和 \(\vec{j}:\left[\begin{array}{l} 1 \\ 0 \end{array}\right]\) 經過此次變換之后就變
成了 \(\vec{i}:\left[\begin{array}{l} 3 \\ 0 \end{array}\right]\) 和 \(\vec{j}:\left[\begin{array}{l} 0 \\ 2 \end{array}\right]\) ,這個時候呢我們可以看到,原來的基向量i和j,圍成的矩形的面積為1,而變換過后\(\vec{i}\) 和 \(\vec{j}\) 圍成的矩形的面積,我們說這個線性變換讓它的面積比原來擴大了 3×2=6倍。
只要知道原來的基向量圍成的矩形的面積和變換后的基向量圍成的矩形的面積,我們就可以知道變換前后,空間中任意一塊區域的面積變化的比例。
我們就可以在幾何意義上這樣去解釋行列式:線性變換對空間中的面積產生改變的比例,就是行列式的值。
如果某一個矩陣的行列式為0,表示經過該變換之后,原來平面中的所有的面積都被壓成了一條線,甚至一個點(因為沒有面積了嘛)
那么,看一個矩陣的行列式是否為0,也就是說明它代表的變換是否將空間壓縮到了更小的維度上。
另外,如果某個矩陣的行列式為負數, 相當於變換過后,空間的方向翻轉了,(如果是二維,可以想象成一張紙翻了個面兒)
至於三階行列式的計算公式為什么是下圖這樣,視頻作者沒有展開。
逆矩陣(視頻p8)
\(A\vec{x}=\vec{v}\) 表示的就是矩陣A乘以x向量之后得到的是向量v,也就是說,當所在的空間經過線性變換之后,向量x變成了向量v,現在我們知道了向量v,也知道了變換方式A,剩下的未知量x也就可以求解了。(或者說我們要找到一個向量x,使得它在經過變換A之后變成的向量與v重合)
假設有一個方程組如下所示,它的解依賴於矩陣A所代表的變換是將空間擠壓到一個低維空間,還是保持像粗還是空間一樣的二維空間。
上面講到,如果擠壓到了一個低維空間,代表det(A)=0 ,反之則是det(A)≠ 0.
如果它沒有被擠壓到一個低維空間,則我們可以想象,\(\vec{x}\) 經過A這個變換之后變成了 \(\vec{v}\) ,則將 \(\vec{v}\) 做一個A矩陣的逆變換,就可可以將\(\vec{v}\) 變回原來的 \(\vec{x}\) 了。假設,A是將原來的平面坐標系順時針旋轉90°,那么那么A的反向變換就是將原來的平面坐標系逆時針旋轉90°,我們將其稱為A的逆,既然它是一個變換,那也可以寫成矩陣的形式,稱為矩陣 \(A\) 的逆矩陣,即 \(A^{-1}\) .
上面加粗的這句話,用數學公式寫出來,就是 \(A^{-1} A \overrightarrow{\mathrm{x}}=A^{-1} \overrightarrow{\mathbf{v}}\) ,一個變換和它的逆變換疊加,就相當於啥都沒做,即一個矩陣乘逆矩陣,結果為單位矩陣。
為什么是單位矩陣呢?矩陣乘積的結果的每一列就表示的是經過變換之后的基向量,那么啥都沒做,就是相當於平面上的(1,0)、(0,1)這兩個基向量,或者三維的(1,0,0)(0,1,0)和(0,0,1)三個向量,更高維以此類推……
寫出來就是 \(\left[\begin{array}{l} 1 & 0\\ 0 & 1 \end{array}\right]\) 和 \(\left[\begin{array}{l} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\\end{array}\right]\) ,可不就是我們的單位矩陣嘛?
當det(A)為零的時候,那對於A這個變換,可就沒有一個逆變換了,因為你沒法將一條被壓的線恢復成一個平面,因為變回去的這個變換就是一個函數,線上的一個向量的輸入需要產生多個的輸出,這是不符合函數的定義的。擴展到三維上也是如此將一個被壓所致的平面空間恢復到一個三維空間是做不到的。