先介紹向量的兩種運算,一個行向量乘以一個列向量稱作向量的內積,又叫作點積,結果是一個數;
一個列向量乘以一個行向量稱作向量的外積,外積是一種特殊的克羅內克積,結果是一個矩陣,
假設和b分別是一個行向量和一個列向量,那麼內積、外積分別記作和。
注意:外積在不同的地方定義方式不太一樣,這裏不詳細討論
定義了內積和外積以後,我們討論矩陣的乘法。矩陣是由向量組成的,因此對矩陣不同角度的抽象,將矩陣乘法轉換爲向量乘法,可以使我們從不同的角度去理解矩陣的乘法。首先我們可以對於一個矩陣A(假設行和列的大小都是2),我們可以即可以把它看作由兩個行向量組成的列向量,
,又可以看作是由兩個列向量組成的行量,我們表示列向量,表示行向量
這樣矩陣A和矩陣B的乘積按照不同的角度就可以組成四種理解方式。
一、 A是由行向量組成的列向量,B是由列向量組成的行向量
此時AB乘積變爲了兩個新的向量的外積形式,按照外積定義,我們有
注意到這裏面每一個都是一個向量,因此就是一個內積,計算結果就是AB矩陣第i行第j列中的元素。因此,我們可以看到,矩陣乘積是兩個向量的外積,並且外積矩陣中的每一個元素是一個內積。這種方式是最直接的理解方式。
二、 A是由列向量組成的行向量,B也是由列向量組成的行向量
令C = AB, 我們考慮C的每一個列向量:
同理:
因此,矩陣C的每一個列向量,是A的列向量的一個線性組合,該線性組合中的係數是的各個元素。從這個角度說C的每一列都存在於A的列向量空間內。
三、 A是由行向量組成的列向量,B也是由行向量組成的列向量
類似於上面的情況,不過我們現在考慮C的每一個行向量:
同理:
因此,矩陣C的每一個行向量,是B的行向量的一個線性組合,該線性組合中的係數是的各個元素。從這個角度說C的每一個行向量都存在於B的行向量空間內。
四、 A是由列向量組成的行向量,B也是由行向量組成的列向量
此時AB乘積變爲了兩個新的向量的內積形式。按照內積定義我們有:
注意到是一個外積形式,因爲是一個列向量,是一個行向量,因此C是由各個外積矩陣相加得到的。
根據以上分析,我們可以將第一種和第四種方式放到一起,第二種和第三种放到一起分別進行理解。第一種方式先將A抽象爲列向量,將B抽象爲行向量,從而將矩陣乘法變爲了一種外積的形式,而外積矩陣中的每一個元素是一個行向量和一個列向量的內積。這種方式每次得到C的一個元素。
第四種理解方式先將A抽象爲行向量,將B抽象爲列向量,從而將矩陣乘法變爲了一種內積形式,內積的各個組成部分又是一個外積。這種方式每次不是得到C的一個元素,而是將C看作是多個矩陣相加組成的,每次計算得到一個加數矩陣。
第二種方式將矩陣A、B都抽象爲行向量,行向量的每個組成是一個列向量,A乘以B的每一個列向量得到一個新的列向量,並且該列向量存在於A的列向量空間內,A乘以B相當於是對A進行了列變換。第三種方式則將A乘以B看作是對B進行了行變換。
如果想對一個矩陣進行行變換,可以左乘一個矩陣;相應的如果想對矩陣進行列變換,可以右乘一個矩陣。這種思想被應用到高斯消元的過程中。
最後我們總結一下矩陣C(C=AB)到底是什麼,C是一個矩陣,是一個多面孔的矩陣。它既是列向量組成的行向量,每個列向量是A的列空間的線性組合,又是行向量組成的列向量,每個行向量是B的行空間的線性組合;它是一個內積,內積的每個成分是一個外積,同時它又是一個外積,外積矩陣的每一個元素是一個內積。
參考資料:
[1] http://videolectures.net/mit1806s05_strang_lec06/
[2] Introduction to Linear Algebra; Gilbert Strang