帶你深入理解矩陣乘法

爲了不浪費大家寶貴的時間,開頭我先簡要說明一下這篇博文對哪些讀者可能會有幫助

1、你是正在學習矩陣的乘法運算,覺得矩陣的乘法掌握起來很困難

2、你已經學會了矩陣乘法,但如果你在計算矩陣乘法時還在使用“一行乘一列得一數”的方法,那我強烈建議你看看後面的內容。

因爲,我將帶你更加深刻地理解矩陣,與之而來是對矩陣乘法的全新計算方式。這不僅讓你在計算矩陣乘法時更快,而且更省心。

 

“矩陣就是數表”這可能是很多人第一次在線性代數課堂上聽到的概念。我不能指責老師這樣教有錯,但這種膚淺的理解會給以後的學習帶來越來越多的困難,無形之中讓線性代數變得越來越“玄學”。

我認爲好的學問都應該是通俗易懂的,因此讓我們從一個最簡單的概念開始——數數,或者說計量。

人類利用數字來表示事物的多少,但單有數字還是不夠的,配合數字一起使用的還有一個概念——單位。例如,2L水,3kg鋼鐵等等。在更爲抽象的一點事物上,還有與“單位”對應的一個概念——權。例如十進制數字 34 中的 4 的權是 1,而 3 的權是進制 10。簡單來說,衡量任何實物,我們總是要現在此類事物中找一個看得順眼的 “樣品” 來作爲衡量該類型其他事物的一個標準,看看需要衡量的事物是這個標準量的“幾倍”,這樣綜合起來,我們心裏就能有一個感性的認識。

認識一:其實沒有標準,所有的標準都是由一個具體的事物(看得最順眼的那個)來充當的。

上面的數數的例子都是單維度的,然而有很多量無法之中一組“數字+單位”這樣的組合來描述清楚,而需要多組。比如,平面上的點的位置需要兩組,三維空間中的點的位置需要三組才能描述清楚,等等。而線性代數研究的就是空間。讓我們還是再從最簡單的概念開始——平面直角座標系。

也許你會說,平面直角座標系還不簡單麼,不就是這個麼

                                                         

但是,我更希望它在你心中樣子長成這樣:

                                                  

官方的說法把它叫做“平面直角座標系的基”,你可以把它理解爲在平面中數點的位置時用到的“單位”(就叫它“標準1”吧)。點(2,3)實際上是:

                                                                   (2, 3)=2\times (1, 0) + 3\times(0, 1)

很多時候我們看的順眼事物往往就那一個,因此標準也是唯一的了。比如二維平面的標準:

                                                                        \overrightarrow{e_{x}}=(1, 0)        \overrightarrow{e_{y}}=(0, 1)

或許有人會說,x方向的基並不一定需要和y方向上的基保持長度相同,夾角也不需要是直角(只要是兩個方向就行了)。隨便整一個:

                                                                  

這也能作爲衡量平面中點的座標的“單位”(暫且叫它“標準2”好了)。但讓我們來看一個具體的例子:

如果有一個點在上面這個座標系中的座標是:x=3, y=4。我們是不是通常會“忍不住“計算一下:

                                       3\times \overrightarrow{e_{x}}+4\times \overrightarrow{e_{y}}=3\times(2,0)+4\times(\frac{1}{\sqrt[]{2}},\frac{1}{\sqrt[]{2}})=(6+2\; \sqrt[]{2},2\; \sqrt[]{2})

這個算式很簡單,但不知你想過沒有,爲什麼我們要去算呢?爲什麼不就用

                                                                               3\times \overrightarrow{e_{x}}+4\times \overrightarrow{e_{y}}

來表示這個點的座標就好了呢,實際上,當我們寫下第一個等號,在進行

                                                                    \overrightarrow{e_{x}}=(2,0)              \overrightarrow{e_{y}}=(\frac{1}{\sqrt[]{2}},\frac{1}{\sqrt[]{2}})

這樣的換算時,我們就已經放棄上面的“標準2”,又使用起了平面直角座標系的“標準1”。

認識二:標準往往是唯一的,使用其他的標準時,我們會情不自禁地回到這個唯一的標準。而這個唯一的標準都有一個特性,你不會去想把它轉化成其他標準。

而這個的簡單算式,實際上就是一次“矩陣運算”!不信?讓我們再來看一下這個簡單的式子:

                                            (3,4)\times (\overrightarrow{e_{x}},\overrightarrow{e_{y}}) =(3,4)\times \begin{bmatrix} 2&0 \\ \frac{1}{\sqrt[]{2}} &\frac{1}{\sqrt[]{2}} \end{bmatrix}=3\times(2,0)+4\times(\frac{1}{\sqrt[]{2}},\frac{1}{\sqrt[]{2}})\\=(6+2\; \sqrt[]{2},2\;\sqrt[]{2})          

這就是簡單而又直接的算法,我可沒有用什麼“一橫乘一豎”。不過你應該能發現兩種算法的答案居然是一樣的!等等,你也許會說,這根本就不是矩陣的乘法,就算你這樣變形着寫,着充其量也就是個向量對矩陣的乘法。那下面再讓我們來思考一個更爲深刻的問題——矩陣究竟是什麼?是數表麼,當然不是。其實,上文已經對這個問題給出了答案,再看看 認知一 吧,標準是由事物來充當的;二維空間中衡量點的位置的標準是由二維點來充當的,n 維空間中衡量點的位置的標準是由 n 維點來充當的。更進一步的,n 維空間中衡量一個點的座標需要描述清楚 n 個維度,那描述清楚每一個維度又需要什麼呢?回到開篇所說,需要一個數,一個“單位”。而在 n 維空間中,一個“單位”,一個“標準”,就是由一個點來充當的啊。即,一個維度需要一個標準,一個標準就是一個點,n 個維度自然需要 n 個點,而這每個點又都是 n 維空間中的點,自然每個都有 n 個維度。n 個 n 維點,可不就是一個 n\times n 的矩陣嘛。爲什麼長寬相等的矩陣出現頻率這麼高,因爲這樣的矩陣本質上是一個座標系!一個描述 n 維空間的座標系。

當你用一個點(專業的說法叫向量)乘以矩陣時,實際上是放棄了以這個矩陣作爲座標系來衡量這個點的位置,重新使用了我們看得最順眼的衡量標準——“單位陣”;

當你用矩陣乘以矩陣時,如

                                                                              \mathbf{A_{n\times n}\times B_{n\times n}=C_{n\times n}}

實際上是進行了 n 次點乘以矩陣。你放棄了用矩陣 B 來衡量前面矩陣 A 中的 n 個點的位置,重新使用了我們看得最順眼的衡量標準——“單位陣”。這矩陣A中的 n 個點在矩陣 B 中的位置就是矩陣 A 本身所描述的,在你放棄標準 B(進行了這次矩陣運算後),矩陣 A 中的 n 個點的位置變成由矩陣 C 來描述了。

最後,有了上面的鋪墊,我們來看一下,在這樣的理解下,矩陣乘法到底應該怎麼算。

                                      \mathbf{A}\times \mathbf{B}=\begin{pmatrix}\mathbf{a_1}\\ \mathbf{a_2}\\ \mathbf{a_3}\end{pmatrix} \times \mathbf{B} = \begin{pmatrix} \mathbf{a_1}\times \mathbf{B}\\ \mathbf{a_2}\times \mathbf{B}\\ \mathbf{a_3}\times \mathbf{B} \end{pmatrix} =\begin{pmatrix} a_{11}\times \mathbf{b_1}+ a_{12}\times \mathbf{b_2}+ a_{13}\times \mathbf{b_3}\\ a_{21}\times \mathbf{b_1}+ a_{22}\times \mathbf{b_2}+ a_{23}\times \mathbf{b_3}\\ a_{31}\times \mathbf{b_1}+ a_{32}\times \mathbf{b_2}+ a_{33}\times \mathbf{b_3} \end{pmatrix}

這裏只有“橫”,沒有什麼“豎”的概念。不要一個數一個數地算,應該一個點一個點的算。公式太抽象?舉個栗子,要計算:

                                                                          \begin{pmatrix} 1 & 2 & 4\\ 3 & 1 & 5\\ 4 & 6 & 3 \end{pmatrix}\times \begin{pmatrix} 2 & 1 & 3\\ 7 & 9 & 10\\ 5 & 7 & 1 \end{pmatrix}

我們一行一行的算,第一行:

                                   \begin{pmatrix} 1 & 2 & 4 \end{pmatrix} \times \begin{pmatrix} 2 & 1 & 3\\ 7 & 9 & 10\\ 5 & 7 & 1 \end{pmatrix} \\ \\= 1 \times \begin{pmatrix} 2 & 1 & 3 \end{pmatrix}+ 2 \times \begin{pmatrix} 7 & 9 & 10 \end{pmatrix}+ 4 \times \begin{pmatrix} 5 & 7 & 1 \end{pmatrix} \\ \\ =\begin{pmatrix} 2 & 1 & 3 \end{pmatrix}+ \begin{pmatrix} 14 & 18 & 20 \end{pmatrix}+ \begin{pmatrix} 20 & 28 & 4 \end{pmatrix}= \begin{pmatrix} 36 & 47 & 27 \end{pmatrix}

相信剩下兩行的計算就不用我囉嗦了,大家都會。

相信大家在學線性代數的時候,一會兒是列向量,一會兒是行向量,叫人頭暈,老師解釋這只是種寫法,並沒有什麼講究,但事實又好像不是如此,因爲你要“一行乘一列”嘛,前面放“行”後面放“列”,這式子沒法算吶。但我在這裏要吶喊:

認識三:從來就沒有什麼列向量,所有的向量都是行向量。

其實,你要是認爲“從來就沒有什麼行向量,所有的向量都是列向量”也可以,那樣的算法是一次算一列。事情的真相其實是所有的向量都是“同方向”的,你喜歡行向量就都是行向量好了,你喜歡列向量就都是列向量好了,反正他們不會同時存在。相信只有一個方向的向量會讓你神清氣爽,不再暈頭轉向。不過你要是用列向量的話,記得要從後往前算,有興趣的讀者可以研究一下具體的算法,如有不明之處可以下面留言交流。

最後再皮一下:其實我是喜歡都看能行向量啦,一來寫起來省紙又順手,二來從左往右算,符合習慣。我還暗自揣測過爲什麼行比列順手,可能跟書寫工具有關吧,矩陣記號是西方發明的,西方人用硬筆,書寫時沉腕,旋轉肘關節自然橫向方便,如果矩陣記號是中國人發明的,我們用軟筆,書寫時懸腕,旋轉肩關節自然豎向方便,那說不定矩陣運算就是列運算更加方便了。

如果您覺得本篇文章對您有所幫助,那就支持我一下吧。

                                                

                                                         

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章