为什么矩阵乘法不满足交换律但满足结合律
矩阵乘法 简单来说,就是两个矩形数字阵列按照特定规则进行运算。这个规则看起来有点复杂,但它背后隐藏着两个关键性质:不满足交换律(通常 A×B 不等于 B×A)和满足结合律((A×B)×C 一定等于 A×(B×C))。下面通过手把手的步骤,让你彻底理解这两件事。
一、先掌握矩阵乘法的核心规则
-
确认维度:只有第一个矩阵的列数等于第二个矩阵的行数时,乘法才能进行。例如,一个
2×3的矩阵只能乘以一个3×4的矩阵,结果是一个2×4的矩阵。 -
计算一个元素:结果矩阵中第
i行第j列的元素,等于第一个矩阵的第i行与第二个矩阵的第j列对应元素相乘后求和。- 公式:
(AB)_{ij} = Σₖ A_{ik} × B_{kj} - 其中
k从1跑到第一个矩阵的列数(也是第二个矩阵的行数)。
- 公式:
-
动手算一遍:取两个简单矩阵练习。
假设矩阵 A 为:
A = [1 2]
[3 4]
矩阵 B 为:
B = [5 6]
[7 8]
计算 A×B:
- (1,1) = 1×5 + 2×7 = 5 + 14 = 19
- (1,2) = 1×6 + 2×8 = 6 + 16 = 22
- (2,1) = 3×5 + 4×7 = 15 + 28 = 43
- (2,2) = 3×6 + 4×8 = 18 + 32 = 50
结果:A×B = [19 22] [43 50]
二、验证不满足交换律
1. 计算 B×A(与上面顺序相反)
- (1,1) = 5×1 + 6×3 = 5 + 18 = 23
- (1,2) = 5×2 + 6×4 = 10 + 24 = 34
- (2,1) = 7×1 + 8×3 = 7 + 24 = 31
- (2,2) = 7×2 + 8×4 = 14 + 32 = 46
结果:B×A = [23 34] [31 46]
2. 对比两个结果
A×B 与 B×A 完全不同(19 vs 23, 22 vs 34, …)。即使两个矩阵都是 2×2,交换顺序后结果也不相等。这就是不满足交换律的直接证据。
3. 解释根本原因(用生活比喻)
矩阵乘法本质是“线性变换的复合”。比如:
- 操作1:先旋转90度,再拉伸2倍。
- 操作2:先拉伸2倍,再旋转90度。
两种顺序得到的结果通常不同(先旋转再拉伸 vs 先拉伸再旋转,物体最终位置不同)。矩阵乘法正是这种先后顺序的数学表达,所以交换顺序相当于改变了操作流程,结果自然不一样。
从计算上看,每个元素是行与列的点积:(AB)_{ij} 用的是 A 的第 i 行和 B 的第 j 列;而 (BA)_{ij} 用的是 B 的第 i 行和 A 的第 j 列。由于 A 和 B 的数字分布不同,点积结果很难偶然相等。
4. 特殊例外(但一般情况不成立)
当 A 和 B 都是标量矩阵(如 A = [2 0; 0 2])或同时可对角化时,交换律可能成立。但这属于特例,不能改变“一般不满足”的结论。
三、验证满足结合律
1. 定义运算顺序
给定三个矩阵 A(m×n)、B(n×p)、C(p×q),维度必须完全匹配。结合律说的是:先算 (A×B) 再乘 C,与先算 (B×C) 再乘 A,结果完全相同。
2. 用公式证明(核心推理)
根据矩阵乘法定义:
(AB)是一个m×p矩阵,其第(i,k)元素为Σⱼ A_{ij} B_{jk}- 再乘 C:
[(AB)C]_{il} = Σₖ (AB)_{ik} C_{kl} = Σₖ (Σⱼ A_{ij} B_{jk}) C_{kl} = Σₖⱼ A_{ij} B_{jk} C_{kl}
同样计算 A(BC):
(BC)是一个n×q矩阵,其第(j,l)元素为Σₖ B_{jk} C_{kl}- 再乘 A:
[A(BC)]_{il} = Σⱼ A_{ij} (BC)_{jl} = Σⱼ A_{ij} (Σₖ B_{jk} C_{kl}) = Σⱼₖ A_{ij} B_{jk} C_{kl}
两者最终都是对 A_{ij} B_{jk} C_{kl} 对所有 j 和 k 求和,只是求和顺序不同。乘法满足交换律(这里指数字乘法),所以求和顺序不影响结果。因此 [(AB)C]_{il} = [A(BC)]_{il},对所有 i,l 成立。结合律成立。
3. 从线性变换角度理解
把矩阵看作线性变换的算子。变换的复合运算天然满足结合律:(f∘g)∘h = f∘(g∘h),因为无论括号怎么加,最终都是依次应用 h→g→f 变换。矩阵乘法就是变换复合的代数表示,所以结合律自动继承。
4. 数值验证(可选)
用上面 A、B 和另一个矩阵 C 试算:
C = [9 10]
[11 12]
先算 (A×B)×C:
- 已知
A×B = [19 22; 43 50] - 乘 C:
- (1,1) = 19×9 + 22×11 = 171 + 242 = 413
- (1,2) = 19×10 + 22×12 = 190 + 264 = 454
- (2,1) = 43×9 + 50×11 = 387 + 550 = 937
- (2,2) = 43×10 + 50×12 = 430 + 600 = 1030
再算 A×(B×C):
- 先算
B×C:- (1,1) = 5×9 + 6×11 = 45 + 66 = 111
- (1,2) = 5×10 + 6×12 = 50 + 72 = 122
- (2,1) = 7×9 + 8×11 = 63 + 88 = 151
- (2,2) = 7×10 + 8×12 = 70 + 96 = 166
- 再用 A 乘
B×C:- (1,1) = 1×111 + 2×151 = 111 + 302 = 413
- (1,2) = 1×122 + 2×166 = 122 + 332 = 454
- (2,1) = 3×111 + 4×151 = 333 + 604 = 937
- (2,2) = 3×122 + 4×166 = 366 + 664 = 1030
结果完全一致。验证通过。
四、总结两个性质的核心区别
| 性质 | 结论 | 原因 |
|---|---|---|
| 交换律 | 一般不成立 | 矩阵乘法对应线性变换的复合顺序,顺序不同往往结果不同。计算上,行与列的点积顺序交换后数值无必然联系。 |
| 结合律 | 始终成立 | 多重求和只改变求和顺序,不改变最终和。线性变换的复合运算本身满足结合律,矩阵乘法是其代数表达。 |
这两个性质是矩阵运算的基石:交换律缺失意味着不能随意调换矩阵顺序,否则整条计算链条会改变;结合律存在让我们可以自由选择先算哪两个矩阵,简化计算时非常有用(例如在数值计算中先合并小矩阵以减少乘法次数)。
现在你已能清晰解释:为什么“先乘后加”与“先加后乘”对矩阵来说不是一回事,但“先A乘B后乘C”与“先B乘C后乘A”永远是一回事。

暂无评论,快来抢沙发吧!