矩阵乘法

· · 算法·理论

一个 m \times n矩阵是一个由 mn 列元素排列成的矩形阵列。即形如

A = \begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{bmatrix}

两个大小分别为 m \times nn \times p 的矩阵 A, B 相乘的结果为一个大小为 m \times p 的矩阵。将结果矩阵记作 C,则

c_{i,j} = \sum_{k = 1}^{n} a_{i,k} b_{k,j} \text{,\qquad($1 \le i \le m$, $1 \le j \le p$).}

讲白话:计算结果的 c_{i,j} 等于 A 中第 i 行的 n 个数与 B 中第 j 列的 n 个数对应相乘。

而如果 A 的列数与 B 的行数不相等,则无法进行乘法运算(或说乘法运算无意义)。

可以验证,矩阵乘法满足结合律,即 (A\times B)\times C = A\times (B\times C)

一个大小为 n \times n 的矩阵 A 可以与自身进行乘法,得到的仍是大小为 n \times n 的矩阵,记作 A^2 = A \times A。进一步地,还可以递归地定义任意高次方 A^k = A \times A^{k - 1},或称 A^k = \underbrace{A \times A \times \cdots \times A}_{k \text{ 次}}

特殊地,定义 A^0 为单位矩阵 I = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}