矩陣乘法

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA Template:ScienceNavigation Template:各地中文名 Template:各地中文名

数学中,矩阵乘法Template:Lang-en)是一种根据两个矩阵得到第三个矩阵的二元运算,第三个矩阵即前两者的乘积,称为矩阵积Template:Lang-en)。设An×m的矩阵,Bm×p的矩阵,则它们的矩阵积ABn×p的矩阵。A中每一行的m个元素都与B中对应列的m个元素对应相乘,这些乘积的和就是AB中的一个元素。

矩阵可以用来表示线性映射,矩阵积则可以用来表示线性映射的复合。因此,矩阵乘法是线性代数的基础工具,不仅在数学中有大量应用,在应用数学物理学工程学等领域也有广泛使用。[1][2]

一般矩陣乘積

矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的Template:地区用词和第二個矩陣的Template:地区用词相同時才有定義。一般單指矩陣乘積時,指的便是一般矩陣乘積。若Am×n矩陣,Bn×p矩陣,則他們的乘積AB(有時記做AB)會是一個m×p矩陣。其乘積矩陣的元素如下面式子得出:

(AB)ij=r=1nairbrj=ai1b1j+ai2b2j++ainbnj

以上是用矩陣單元的代數系統來說明這類乘法的抽象性質。本節以下各種運算法都是這個公式的不同角度理解,運算結果相等:

由定義直接計算

左邊的圖表示出要如何計算AB(1,2)(3,3)元素,當A是個4×2矩陣和B是個2×3矩陣時。分別來自兩個矩陣的元素都依箭頭方向而兩兩配對,把每一對中的兩個元素相乘,再把這些乘積加總起來,最後得到的值即為箭頭相交位置的值。

(AB)1,2=r=12a1,rbr,2=a1,1b1,2+a1,2b2,2
(AB)3,3=r=12a3,rbr,3=a3,1b1,3+a3,2b2,3

向量方法

這種矩陣乘積亦可由稍微不同的觀點來思考:把向量和各係數相乘後相加起來。設𝐀𝐁是兩個給定如下的矩陣:

𝐀=[a1,1a1,2a2,1a2,2]=[A1A2], 𝐁=[b1,1b1,2b2,1b2,2]=[B1B2]

其中

A1是由所有ax,1元素所组成的向量(column),A2是由所有ax,2元素所组成的向量,以此类推。
B1是由所有b1,x元素所组成的向量(row),B2是由所有b2,x元素所组成的向量,以此类推。

𝐀𝐁=[a1,1[b1,1b1,2]+a1,2[b2,1b2,2]+a2,1[b1,1b1,2]+a2,2[b2,1b2,2]+]=A1B1+A2B2+

舉個例子來說:

[102131][312110]=[1[31]+0[21]+2[10]1[31]+3[21]+1[10]]=[[31]+[00]+[20][31]+[63]+[10]]
=[5142]

左面矩陣的列為為係數表,右邊矩陣為向量表。例如,第一行是[1 0 2],因此將1乘上第一個向量,0乘上第二個向量,2則乘上第三個向量。

向量表方法

一般矩陣乘積也可以想為是行向量列向量內積。若𝐀𝐁為給定如下的矩陣:

𝐀=[a1,1a1,2a1,3a2,1a2,2a2,3a3,1a3,2a3,3]=[A1A2A3]𝐁=[b1,1b1,2b1,3b2,1b2,2b2,3b3,1b3,2b3,3]=[B1B2B3]

其中,这里

A1是由所有a1,x元素所組成的向量,A2是由所有a2,x元素所組成的向量,以此類推。
B1是由所有bx,1元素所組成的向量,B2是由所有bx,2元素所組成的向量,以此類推。

𝐀𝐁=[A1A2A3]×[B1B2B3]=[(A1B1)(A1B2)(A1B3)(A2B1)(A2B2)(A2B3)(A3B1)(A3B2)(A3B3)]

(𝐀𝐁)ij=AiBj

性質

矩陣乘法是不可交換的(即ABBA),除了一些較特別的情況。很清楚可以知道,不可能預期說在改變向量的部份後還能得到相同的結果,而且第一個矩陣的列數必須要和第二個矩陣的行數相同,也可以看出為什麼矩陣相乘的順序會影響其結果。

雖然矩陣乘法是不可交換的,但ABBA行列式總會是一樣的(當AB是同樣大小的方陣時)。

AB可以被解釋為線性算子,其矩陣乘積AB會對應為兩個線性算子的複合函數,其中B先作用。

在試算表中做矩陣乘法

[102131][312110]=[5142]

以 Google Sheet 為例,選取儲存格範圍或者使用陣列,在儲存格輸入

=MMULT({1,0,2;-1,3,1},{3,1;2,1;1,0})

在某些試算表軟體中必須必須按Template:Keypress 將儲存格內的變數轉換為陣列

純量乘積

矩陣A=(aij)和純量r的純量乘積rA的矩陣大小和A一樣,rA的各元素定義如下:

(rA)ij=raij 

若我們考慮於一個的矩陣時,上述的乘積有時會稱做左乘積,而右乘積的則定義為

(Ar)ij=aijr 

當環是可交換時,例如實數體或複數體,這兩個乘積是相同的。但無論如何,若環是不可交換的話,如四元數,他們可能會是不同的。例如,

i[i00j]=[100k][100k]=[i00j]i

阿達馬乘積

Template:Seealso 給定兩個相同維度的矩陣可計算有阿達馬乘積Template:Lang),或稱做逐項乘積分素乘積element-wise product, entrywise product)。兩個m×n矩陣AB阿達馬乘積標記為AB,定義為 (AB)ij=aijbijm×n矩陣。例如,

[132100122][002750211]=[103022170500122121]=[004700222]

需注意的是,阿達馬乘積是克羅內克乘積的子矩陣

克羅內克乘積

Template:Main

給定任兩個矩陣AB,可以得到兩個矩陣的直積,或稱為克羅內克乘積AB,其定義如下

[a11Ba12Ba1nBam1Bam2BamnB]

A是一m×n矩陣和B是一p×r矩陣時,AB會是一mp×nr矩陣,而且此一乘積也是不可交換的。

舉個例子,

[1231][0321]=[10132023121122213033101332311211]=[0306214209036321]

AB分別表示兩個線性算子V1W1V2W2AB便為其映射的張量乘積V1V2W1W2

共同性質

上述三種乘積都符合結合律

A(BC)=(AB)C

以及分配律

A(B+C)=AB+AC
(A+B)C=AC+BC

而且和純量乘積相容:

c(AB)=(cA)B
(Ac)B=A(cB)
(AB)c=A(Bc)

注意上述三個分開的表示式只有在純量體的乘法及加法是可交換(即純量體為一可交換環)時會相同。

另見

外部連結

參考

Template:Reflist

其它参考文献包括:

  • Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969.
  • Coppersmith, D., Winograd S., Matrix multiplication via arithmetic progressions, J. Symbolic Comput. 9, p. 251-280, 1990.
  • Horn, Roger; Johnson, Charles: "Topics in Matrix Analysis", Cambridge, 1994.
  • Robinson, Sara, Toward an Optimal Algorithm for Matrix Multiplication, SIAM News 38(9), November 2005.

Template:线性代数的相关概念

de:Matrix (Mathematik)#Matrizenmultiplikation