2014年7月26日 星期六

李娘二姊不辣:矩陣乘法 Matrix multiplication

矩陣說到底其實也就是一塊棋盤上擺數字罷了,卻被那些數學家搞得七葷八素。


但是後來這全都要用來解釋狄拉克的左矢右矢。

有一個諸看倌大概不知道的冷知識:英國數學家西爾維斯特(James Joseph Sylvester,1814-1897)當初在1848年引進矩陣概念時,他採用了「子宮」,拉丁語做matrix(當然子宮在拉丁語裡還有其他如uterus的名稱存在),來命名矩陣。

也就是說,對古羅馬人講「矩陣」,他們腦子裡立刻想到的是「子宮」。

哈哈哈,不管,首先來考慮兩個矩陣AB,為了乘法方便,我們將A的行數和B的列數給統一(矩陣為先列再行,一個4*3的矩陣有四列三行,不要受行列式搞混了):


我替諸看倌準備了4*3的矩陣A和3*5的矩陣B。在我們來乘起來前,先看看矩陣乘法是如何定義的。今有m*n的矩陣A和n*p的矩陣B,其乘積AB的元素可表示為:


為了讓A中某一列的元素都能分配到B中某一行的元素,A的行數和B的列數必須相同,其乘積才有意義可言。且矩陣乘法交換律不一定成立,即ABBA不一定相等(甚至其中一者可能無意義)。

而同時矩陣乘法也可以用另一個比較直觀的方法來解釋:


我花了六個小時做的。這樣也比較能解釋A的行數和B的列數必須相同的原因。



還記得我寫給諸看倌的兩個矩陣AB嗎?如果你納悶為何還有第二種寫法,那麼我來告訴你,那是列向量行向量。若是向量可以寫作1*n或n*1的矩陣,那麼矩陣也可以寫成向量,哪種向量都可以。


這樣我們就可以定義內積了,同時兩個向量也可以相乘:


原本沒有意義的BA此時也有意義了,但是AB則變成了1*1的矩陣,就和內積一樣。這裡事實上不管A是列向量還是行向量,只要BA不是同一種向量,相乘在一起(列向量在前,行向量在後)就會返回純量。但元素個數仍要相同。



純量積?喔,那很簡單。給定一個純量λ和一個矩陣A,其純量積可分為兩種:左乘積(Left Scalar Multiplication)和右乘積(Right Scalar Multiplication)。當然在很多情況下LSC和RSC是相通的,但是在某些沒有交換律的狀況下LSC和RSC得要分清楚(當然不是矩陣相乘啦)。比如說:


其中ij是四元數,遵守ij=k、jk=i、ki=j以及平方=-1等規則。現在來看看和i的左乘積和右乘積:


上方為i的左乘積,下方為i的右乘積,不難看出兩者在(2,2)的位置差了一個負號。



矩陣的乘法沒什麼啦,說真的。

但是他會應用在狄拉克標記上。真的。

沒有留言:

張貼留言