定義
設A為的矩陣,B為的矩陣,那麼稱的矩陣C為矩陣A與B的乘積,記作,其中矩陣C中的第行第列元素可以表示為:
如下所示:
注意事項
1、當矩陣A的列數(column)等于矩陣B的行數(row)時,A與B可以相乘。
2、矩陣C的行數等于矩陣A的行數,C的列數等于B的列數。
3、乘積C的第m行第n列的元素等于矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
基本性質
乘法結合律:(AB)C=A(BC)
乘法左分配律:(A+B)C=AC+BC
乘法右分配律:C(A+B)=CA+CB
對數乘的結合性k(AB)=(kA)B=A(kB).
轉置(AB)T=BTAT
矩陣乘法在以下兩種情況下滿足交換律。
AA*=A*A,A和伴随矩陣相乘滿足交換律。
AE=EA,A和單位矩陣或數量矩陣滿足交換律。
其他的乘積形式
除了上述的矩陣乘法以外,還有其他一些特殊的“乘積”形式被定義在矩陣上,值得注意的是,當提及“矩陣相乘”或者“矩陣乘法”的時候,并不是指代這些特殊的乘積形式,而是定義中所描述的矩陣乘法。在描述這些特殊乘積時,使用這些運算的專用名稱和符号來避免表述歧義。
哈達馬積(Hadamardproduct)
矩陣與矩陣的Hadamard積記作。其元素定義為兩個矩陣對應元素的乘積的m×n矩陣。例如,
克羅内克積(KroneckerProduct)
克羅内克積是兩個任意大小的矩陣間的運算,符号記作。克羅内克積也被稱為直積或張量積.以德國數學家利奧波德·克羅内克命名。計算過程如下例所示:
實現
C++代碼
實際應用
數據統計
某公司有四個工廠,分布在不同地區,同時三種産品,産量(單位;t),試用矩陣統計這些數據。
可用下述矩陣描述,其中四行分别表示甲乙丙丁四個工廠的生産情況,三列分布表示三種産品P1,P2,P3的産量。
再設矩陣,其中第一列表示三種産品的單件利潤,第二列表示三種産品的單件體積。
矩陣C的第一列數據分别表示四個工廠的利潤,第二列分别表示四個工廠産品需要的存儲空間。
路徑問題
給定一個有向圖,問從A點恰好走k步(允許重複經過邊)到達B點的方案數。
把給定的圖轉為鄰接矩陣,即A(i,j)=1當且僅當存在一條邊i->j。令C=A*A,那麼C(i,j)=ΣA(i,k)*A(k,j),實際上就等于從點i到點j恰好經過2條邊的路徑數(枚舉k為中轉點)。類似地,C*A的第i行第j列就表示從i到j經過3條邊的路徑數。同理,如果要求經過k步的路徑數,我們隻需要二分求出A^k即可。