矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個(gè)矩陣的列數(shù)(column)和第二個(gè)矩陣的行數(shù)(row)相同時(shí)才有意義。一般單指矩陣乘積時(shí),指的便是一般矩陣乘積。一個(gè)m×n的矩陣就是m×n個(gè)數(shù)排成m行n列的一個(gè)數(shù)陣。由于它把許多數(shù)據(jù)緊湊的集中到了一起,所以有時(shí)候可以簡(jiǎn)便地表示一些復(fù)雜的模型,如電力系統(tǒng)網(wǎng)絡(luò)模型。
定義
設(shè)A為的矩陣,B為的矩陣C為矩陣A與B的乘積,記作,其中矩陣C中的第行第列元素可以表示為:
如下所示:
注意事項(xiàng)
1、當(dāng)矩陣A的列數(shù)(column)等于矩陣B的行數(shù)(row)時(shí),A與B可以相乘。
2、矩陣C的行數(shù)等于矩陣A的行數(shù),C的列數(shù)等于B的列數(shù)。
3、乘積C的第m行第n列的元素等于矩陣A的第m行的元素與矩陣B的第n列對(duì)應(yīng)元素乘積之和。
基本性質(zhì)
乘積形式
除了上述的矩陣乘法以外,還有其他一些特殊的“乘積”形式被定義在矩陣上,這些特殊形式的矩陣乘法在某些應(yīng)用中具有特殊的作用和優(yōu)勢(shì)。值得注意的是,當(dāng)提及“矩陣相乘”或者“矩陣乘法”的時(shí)候,并不是指代這些特殊的乘積形式,而是定義中所描述的矩陣乘法。在描述這些特殊乘積時(shí),使用這些運(yùn)算的專(zhuān)用名稱(chēng)和符號(hào)來(lái)避免表述歧義。
哈達(dá)馬積
矩陣與矩陣的Hadamard積記作。其元素定義為兩個(gè)矩陣對(duì)應(yīng)元素的乘積的m×n矩陣。例如,
克羅內(nèi)克積
克羅內(nèi)克積是兩個(gè)任意大小的矩陣間的運(yùn)算,符號(hào)記作。克羅內(nèi)克積也被稱(chēng)為直積或張量積。以德國(guó)數(shù)學(xué)家克羅內(nèi)克命名。計(jì)算過(guò)程如下例所示:
實(shí)現(xiàn)
C++代碼
struct?Matrix:vector
實(shí)際應(yīng)用
數(shù)據(jù)統(tǒng)計(jì)
某公司有四個(gè)工廠(chǎng),分布在不同地區(qū),同時(shí)三種產(chǎn)品,產(chǎn)量(單位;t),試用矩陣統(tǒng)計(jì)這些數(shù)據(jù)。
可用下述矩陣描述,其中四行分別表示甲乙丙丁四個(gè)工廠(chǎng)的生產(chǎn)情況,三列分布表示三種產(chǎn)品P1,P2,P3的產(chǎn)量。
再設(shè)矩陣,其中第一列表示三種產(chǎn)品的單件利潤(rùn),第二列表示三種產(chǎn)品的單件體積。
矩陣C的第一列數(shù)據(jù)分別表示四個(gè)工廠(chǎng)的利潤(rùn),第二列分別表示四個(gè)工廠(chǎng)產(chǎn)品需要的存儲(chǔ)空間。
路徑問(wèn)題
給定一個(gè)有向圖,問(wèn)從A點(diǎn)恰好走k步(允許重復(fù)經(jīng)過(guò)邊)到達(dá)B點(diǎn)的方案數(shù)。
把給定的圖轉(zhuǎn)為鄰接矩陣,即當(dāng)且僅當(dāng)存在一條邊。令,那么,實(shí)際上就等于從點(diǎn)i到點(diǎn)j恰好經(jīng)過(guò)2條邊的路徑數(shù)(枚舉k為中轉(zhuǎn)點(diǎn))。類(lèi)似地,的第i行第j列就表示從i到j(luò)經(jīng)過(guò)3條邊的路徑數(shù)。同理,如果要求經(jīng)過(guò)k步的路徑數(shù),我們只需要二分求出即可。
參考資料 >