矩阵乘法是驱动线性代数、计算机图形学、机器学习和物理仿真的运算。然而大多数学生只是把它当作一套机械的算法来学,从未看到它为什么要这样定义。本指南同时给你算法和直觉。
先看维度规则
在计算任何东西之前,先检查维度。要做 A⋅B:
- A 的形状必须是 m×n
- B 的形状必须是 n×p
- 结果 AB 的形状为 m×p
内侧维度必须匹配(n=n);外侧维度成为结果的形状。
如果你试图用一个 3×4 乘以一个 5×2,这个运算就是未定义的——再多的算术也救不了你。
行乘列的算法
AB 的 (i,j) 元素是 A 的第 i 行与 B 的第 j 列的点积:
(AB)ij=∑k=1nAikBkj
解题示例
A=(1324),B=(5768)
计算 AB:
- (AB)11=1⋅5+2⋅7=19
- (AB)12=1⋅6+2⋅8=22
- (AB)21=3⋅5+4⋅7=43
- (AB)22=3⋅6+4⋅8=50
所以 AB=(19432250)。
为什么乘法这样定义?
矩阵表示向量空间之间的线性映射。如果 A 把 Rn 映到 Rm,B 把 Rp 映到 Rn,那么 AB 应当是这些映射的复合。行乘列规则恰恰就是产生复合的方式。这个算法并非任意——它是由"先施加 B,再施加 A"必须被 AB 编码这一要求推导出来的。
性质(以及非性质!)
| 性质 | 是否成立? |
|---|
| A(BC)=(AB)C 结合律 | 是 |
| A(B+C)=AB+AC 分配律 | 是 |
| AB=BA 交换律 | 一般不成立 |
| AB=0⇒A=0 或 B=0 | 否 |
不可交换性是相对于标量算术需要做的最大思维调整。
常见错误
- 把行列乘积相加而不是相乘(你两者都要做——先逐对相乘再求和)。
- 颠倒维度检查的顺序——必须是 (m×n)(n×p),而不是 (n×m)(n×p)。
- 假定可交换性——即使 BA 有定义,AB 也可能根本没有定义。
用 AI 矩阵求解器试一试
把任意一对矩阵输入矩阵计算器,即可看到完整的逐行演算过程。
相关参考:
- 行列式计算器 —— 与 2×2 乘积天然配套
- 逆矩阵计算器 —— 以 AB=I 作为定义关系
- 向量计算器 —— 点积是每个元素的基础