定義當然是怎麼定義都可以的,關鍵是要有我們想要的性質……

矩陣乘法本質上描述的是有限維線性空間上線性變換的複合。如果變換f將線性空間A中的任意向量線性地變成了線性空間B中的向量,即滿足

f(t_1 alpha_1 + t_2alpha_2) = t_1f(alpha_1) + t_2f(alpha_2)

則說f是A到B的一個線性變換。同樣,如果g是B到C的一個線性變換,那麼 g circ f 表示線性空間A中的向量先由f變換,再由g變換,得到線性空間C中的向量,它也是一個線性變換,這就叫做線性變換的複合。

有限維線性空間上的變換都可以用矩陣來表示,我們規定兩個線性變換的複合對應的矩陣,就是兩個線性變化的矩陣按順序相乘的結果。將n維線性空間中的向量映射到m維線性空間中的線性變換,對應的矩陣是一個m行n列的矩陣,它與一個n行的列向量相乘,得到一個m行的列向量。因為只有前一個線性變換得到的向量在下一個線性變換的作用域中的時候,線性變換才能複合,所以上一個線性變換對應矩陣的列數,必須和下一個線性變換對應矩陣的行數相等。

注意我們在複合的時候,將後作用的寫在左邊,矩陣相乘的時候也是如此,因此左邊的矩陣是後作用的線性變換對應的矩陣,它的行數必須等於右邊矩陣的列數。

考慮向量空間A中的單位正交基底,它在f作用下分別映射到的正好是f對應矩陣的每一列,由此得到矩陣乘法的計演算法則,即是左邊矩陣分別乘以右邊矩陣的每一列,得到的列向量重新拼成矩陣,這就是我們常用的矩陣乘法的定義了。


你可以認為矩陣乘法類似於2組槓桿聯動,每一組槓桿有多個輸入端,多個輸出端(注意每一個輸出端可能會受多個輸入端的影響(比如有的桿並不暴露輸出介面,只是負責對其他桿使力),沒有滿秩意味著某些輸入端的某種作用力組合可以模擬出另外一個輸入端的單獨用力的效果),A組槓桿的輸出端和B組槓桿的輸入端用萬向節固定起來,這樣組合出來一個新的「槓桿組」C。

毫無疑問,A的輸出端和B的輸入端數量應該相等才能避免「空載」(有的輸出端沒有接入負載或者有的輸入端空閑)。其實如果你不介意這種空載,你可以用0補齊缺的行或者列,這樣就可以繼續進行矩陣乘法啦(物理效果不變)。


當成現映射的複合,

AB,

B的codomain得與A的domain一樣才能複合

都是有限維線性空間上的線性映射時

A的列數就是A的domain那個線性空間的維數,

B的行數就是B的codomain那個線性空間的維數

是同一個,所以維數的一樣....


半張量積了解一下。


可以這麼理解:矩陣是多維度的向量。向量的內積(點乘)要求維度相同。


矩陣的乘法相當於一個基變換,第二個矩陣的行數相當於一個基底列向量的元素個數,第一個矩陣的每列數相當於在變換基下的原始係數,相乘後的矩陣的每一行等價於在新

基下的坐標。


當然你可以定義1*0等於100,但是沒有卵用啊


因為矩陣本質上是線性變換,把一個m維的向量變成一個n維的向量,需要一個n行m列的矩陣。這個變換必須是線性的。而兩個矩陣相乘,相當於先用一個矩陣作變換,再用另一個矩陣作變換。用上面的例子,把m維的向量a變為n維的向量b,需要一個n行m列的矩陣A,而再把這個n維的向量b變為t維的向量c,也需要另一個矩陣B,它是t行n列的(同上面的原理),即B的列數與A的行數一樣。而如果直接把向量a變成向量c,用的矩陣就是B乘上A(因為是先用A作用,再用B作用)。所以,兩個矩陣的相乘一定是前一個矩陣的列數和後一個矩陣的行數相同。


推薦閱讀:
相关文章