线性代数
|
![{\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.