線性代數
|
![{\displaystyle \mathbf {A} ={\begin{bmatrix}1&2\\3&4\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a31efc33ac33577d719a3ccd162a9bf21e4847ea)
|
向量 · 向量空間 · 基底 · 行列式 · 矩陣
|
|
|
「橫向的一條線(row)」的各地常用名稱 |
---|
中國大陸 | 行 |
---|
臺灣 | 列 |
---|
「縱向的一條線(column)」的各地常用名稱 |
---|
中國大陸 | 列 |
---|
臺灣 | 行 |
---|
數學中,矩陣乘法(英語:matrix multiplication)是一種根據兩個矩陣得到第三個矩陣的二元運算,第三個矩陣即前兩者的乘積,稱為矩陣積(英語:matrix product)。設
是
的矩陣,
是
的矩陣,則它們的矩陣積
是
的矩陣。
中每一行的
個元素都與
中對應列的
個元素對應相乘,這些乘積的和就是
中的一個元素。
矩陣可以用來表示線性映射,矩陣積則可以用來表示線性映射的複合。因此,矩陣乘法是線性代數的基礎工具,不僅在數學中有大量應用,在應用數學、物理學、工程學等領域也有廣泛使用。[1][2]
一般矩陣乘積
矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的行數(column,中國大陸作列數,台灣作行數)和第二個矩陣的列數(row,中國大陸作行數,台灣作列數)相同時才有定義。一般單指矩陣乘積時,指的便是一般矩陣乘積。若
為
矩陣,
為
矩陣,則他們的乘積
(有時記做
)會是一個
矩陣。其乘積矩陣的元素如下面式子得出:
![{\displaystyle (AB)_{ij}=\sum _{r=1}^{n}a_{ir}b_{rj}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots +a_{in}b_{nj}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eaed39fd8326a2d32bbdd6076c98429de328c52d)
以上是用矩陣單元的代數系統來說明這類乘法的抽象性質。本節以下各種運算法都是這個公式的不同角度理解,運算結果相等:
由定義直接計算
左邊的圖表示出要如何計算
的
和
元素,當
是個
矩陣和B是個
矩陣時。分別來自兩個矩陣的元素都依箭頭方向而兩兩配對,把每一對中的兩個元素相乘,再把這些乘積加總起來,最後得到的值即為箭頭相交位置的值。
![{\displaystyle (AB)_{1,2}=\sum _{r=1}^{2}a_{1,r}b_{r,2}=a_{1,1}b_{1,2}+a_{1,2}b_{2,2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1c2e1059e097b93755b056fac0c073d26fa43612)
![{\displaystyle (AB)_{3,3}=\sum _{r=1}^{2}a_{3,r}b_{r,3}=a_{3,1}b_{1,3}+a_{3,2}b_{2,3}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d1de2c142d577a207d6e59a51669e8848f97a52f)
向量方法
這種矩陣乘積亦可由稍微不同的觀點來思考:把向量和各系數相乘後相加起來。設
和
是兩個給定如下的矩陣:
![{\displaystyle \mathbf {B} ={\begin{bmatrix}b_{1,1}&b_{1,2}&\dots \\b_{2,1}&b_{2,2}&\dots \\\vdots &\vdots &\ddots \end{bmatrix}}={\begin{bmatrix}B_{1}\\B_{2}\\\vdots \end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/02149a6ce09437f19588ce0a754bb14d2e1e82a3)
其中
是由所有
元素所組成的向量(column),
是由所有
元素所組成的向量,以此類推。
是由所有
元素所組成的向量(row),
是由所有
元素所組成的向量,以此類推。
則
![{\displaystyle \mathbf {AB} ={\begin{bmatrix}a_{1,1}{\begin{bmatrix}b_{1,1}&b_{1,2}&\dots \end{bmatrix}}+a_{1,2}{\begin{bmatrix}b_{2,1}&b_{2,2}&\dots \end{bmatrix}}+\cdots \\\\a_{2,1}{\begin{bmatrix}b_{1,1}&b_{1,2}&\dots \end{bmatrix}}+a_{2,2}{\begin{bmatrix}b_{2,1}&b_{2,2}&\dots \end{bmatrix}}+\cdots \\\vdots \end{bmatrix}}=A_{1}B_{1}+A_{2}B_{2}+\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/4f392175f6f0b4404fd4372c221467ea81e2926a)
舉個例子來說:
![{\displaystyle {\begin{bmatrix}1&0&2\\-1&3&1\end{bmatrix}}\cdot {\begin{bmatrix}3&1\\2&1\\1&0\end{bmatrix}}={\begin{bmatrix}1{\begin{bmatrix}3&1\end{bmatrix}}+0{\begin{bmatrix}2&1\end{bmatrix}}+2{\begin{bmatrix}1&0\end{bmatrix}}\\-1{\begin{bmatrix}3&1\end{bmatrix}}+3{\begin{bmatrix}2&1\end{bmatrix}}+1{\begin{bmatrix}1&0\end{bmatrix}}\end{bmatrix}}={\begin{bmatrix}{\begin{bmatrix}3&1\end{bmatrix}}+{\begin{bmatrix}0&0\end{bmatrix}}+{\begin{bmatrix}2&0\end{bmatrix}}\\{\begin{bmatrix}-3&-1\end{bmatrix}}+{\begin{bmatrix}6&3\end{bmatrix}}+{\begin{bmatrix}1&0\end{bmatrix}}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26f4694e70e6451992a9d7450d787c6dad31248f)
![{\displaystyle ={\begin{bmatrix}5&1\\4&2\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d58ee56e7a79833fd079864bafbfa2f35d3b5735)
左面矩陣的列為為系數表,右邊矩陣為向量表。例如,第一行是[1 0 2],因此將1乘上第一個向量,0乘上第二個向量,2則乘上第三個向量。
向量表方法
一般矩陣乘積也可以想為是行向量和列向量的內積。若
和
為給定如下的矩陣:
且![{\displaystyle \mathbf {B} ={\begin{bmatrix}b_{1,1}&b_{1,2}&b_{1,3}&\dots \\b_{2,1}&b_{2,2}&b_{2,3}&\dots \\b_{3,1}&b_{3,2}&b_{3,3}&\dots \\\vdots &\vdots &\vdots &\ddots \end{bmatrix}}={\begin{bmatrix}B_{1}&B_{2}&B_{3}&\dots \end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cf8263dd6f788536de1e3dc44b191a8a5a099cc7)
其中,這裏
是由所有
元素所組成的向量,
是由所有
元素所組成的向量,以此類推。
是由所有
元素所組成的向量,
是由所有
元素所組成的向量,以此類推。
則
![{\displaystyle \mathbf {AB} ={\begin{bmatrix}A_{1}\\A_{2}\\A_{3}\\\vdots \end{bmatrix}}\times {\begin{bmatrix}B_{1}&B_{2}&B_{3}&\dots \end{bmatrix}}={\begin{bmatrix}(A_{1}\cdot B_{1})&(A_{1}\cdot B_{2})&(A_{1}\cdot B_{3})&\dots \\(A_{2}\cdot B_{1})&(A_{2}\cdot B_{2})&(A_{2}\cdot B_{3})&\dots \\(A_{3}\cdot B_{1})&(A_{3}\cdot B_{2})&(A_{3}\cdot B_{3})&\dots \\\vdots &\vdots &\vdots &\ddots \end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11bbd6247618518bb0931f0bce365af094fbf209)
即
![{\displaystyle \left(\mathbf {AB} \right)_{ij}=A_{i}B_{j}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0b44fcc6a5bdaab16a72ea4a078f34639b17c453)
性質
矩陣乘法是不可交換的(即
),除了一些較特別的情況。很清楚可以知道,不可能預期說在改變向量的部份後還能得到相同的結果,而且第一個矩陣的列數必須要和第二個矩陣的行數相同,也可以看出為什麼矩陣相乘的順序會影響其結果。
雖然矩陣乘法是不可交換的,但
和
的行列式總會是一樣的(當
、
是同樣大小的方陣時)。其解釋在行列式條目內。
當
、
可以被解釋為線性算子,其矩陣乘積
會對應為兩個線性算子的複合函數,其中B先作用。
在試算表中做矩陣乘法
以 Google Sheet 為例,選取儲存格範圍或者使用陣列,在儲存格輸入
=MMULT({1,0,2;-1,3,1},{3,1;2,1;1,0})
在某些試算表軟件中必須必須按Ctrl+⇧ Shift+↵ Enter 將儲存格內的變數轉換為陣列
純量乘積
矩陣
和純量
的純量乘積
的矩陣大小和
一樣,
的各元素定義如下:
![{\displaystyle (rA)_{ij}=r\cdot a_{ij}\ }](https://wikimedia.org/api/rest_v1/media/math/render/svg/cce570effa19431cbf05ab0d8489ebb38e74c3eb)
若我們考慮於一個環的矩陣時,上述的乘積有時會稱做左乘積,而右乘積的則定義為
![{\displaystyle (Ar)_{ij}=a_{ij}\cdot r\ }](https://wikimedia.org/api/rest_v1/media/math/render/svg/f9aaa61bc12904d64f052d700314068067b316ad)
當環是可交換時,例如實數體或複數體,這兩個乘積是相同的。但無論如何,若環是不可交換的話,如四元數,他們可能會是不同的。例如,
![{\displaystyle i{\begin{bmatrix}i&0\\0&j\\\end{bmatrix}}={\begin{bmatrix}-1&0\\0&k\\\end{bmatrix}}\neq {\begin{bmatrix}-1&0\\0&-k\\\end{bmatrix}}={\begin{bmatrix}i&0\\0&j\\\end{bmatrix}}i}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ac65ea601c50f0a4826ba35b55ddd8e1f9475a0)
阿達馬乘積
給定兩個相同維度的矩陣可計算有阿達馬乘積(Hadamard product),或稱做逐項乘積、分素乘積(element-wise product, entrywise product)。兩個
矩陣
、
的阿達馬乘積標記為
,定義為
的
矩陣。例如,
![{\displaystyle {\begin{bmatrix}1&3&2\\1&0&0\\1&2&2\end{bmatrix}}\circ {\begin{bmatrix}0&0&2\\7&5&0\\2&1&1\end{bmatrix}}={\begin{bmatrix}1\cdot 0&3\cdot 0&2\cdot 2\\1\cdot 7&0\cdot 5&0\cdot 0\\1\cdot 2&2\cdot 1&2\cdot 1\end{bmatrix}}={\begin{bmatrix}0&0&4\\7&0&0\\2&2&2\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1f01749e2c7188ed1e9116b599d7463fc05efc76)
需注意的是,阿達馬乘積是克羅內克乘積的子矩陣。
克羅內克乘積
給定任兩個矩陣
和
,可以得到兩個矩陣的直積,或稱為克羅內克乘積
,其定義如下
![{\displaystyle {\begin{bmatrix}a_{11}B&a_{12}B&\cdots &a_{1n}B\\\vdots &\vdots &\ddots &\vdots \\a_{m1}B&a_{m2}B&\cdots &a_{mn}B\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2564043aefaa4d1c933f96cae9df3f0c784e9a4b)
當
是一
矩陣和
是一
矩陣時,
會是一
矩陣,而且此一乘積也是不可交換的。
舉個例子,
![{\displaystyle {\begin{bmatrix}1&2\\3&1\\\end{bmatrix}}\otimes {\begin{bmatrix}0&3\\2&1\\\end{bmatrix}}={\begin{bmatrix}1\cdot 0&1\cdot 3&2\cdot 0&2\cdot 3\\1\cdot 2&1\cdot 1&2\cdot 2&2\cdot 1\\3\cdot 0&3\cdot 3&1\cdot 0&1\cdot 3\\3\cdot 2&3\cdot 1&1\cdot 2&1\cdot 1\\\end{bmatrix}}={\begin{bmatrix}0&3&0&6\\2&1&4&2\\0&9&0&3\\6&3&2&1\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/81e72b94c6379860d10c1995bf8f6ee61d577d77)
若
和
分別表示兩個線性算子
和
,
便為其映射的張量乘積,
共同性質
上述三種乘積都符合結合律:
![{\displaystyle A(BC)=(AB)C}](https://wikimedia.org/api/rest_v1/media/math/render/svg/048f9dfede59a1c2411d5957e29258ae35146d76)
以及分配律:
![{\displaystyle A(B+C)=AB+AC}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae56c08141d4aef506fafafa32a2b288fe23709d)
![{\displaystyle (A+B)C=AC+BC}](https://wikimedia.org/api/rest_v1/media/math/render/svg/760b6e6bcdf2144c9503b79986f4eaed5f69508e)
而且和純量乘積相容:
![{\displaystyle c(AB)=(cA)B}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5dce97435759084a398945f9cc7eba0d148a0bfb)
![{\displaystyle (Ac)B=A(cB)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c5ef27674cc3595b4d0fb336d33a2c8b8068d812)
![{\displaystyle (AB)c=A(Bc)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9d070c088ee24bb30f0f2ff2e34aba47863eb3dd)
注意上述三個分開的表示式只有在純量體的乘法及加法是可交換(即純量體為一可交換環)時會相同。
另見
外部連結
參考
其它參考文獻包括:
- 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.