矩阵乘法是第一个真正把“行”与“列”结合起来的矩阵运算。它也是矩阵之所以
能表达复合、线性方程组与逆矩阵的核心原因。所以这条规则不能只靠死记;你
要明白每一步的大小条件到底在做什么。
为什么矩阵乘法比加法微妙
矩阵加法与数乘都是逐项进行。矩阵乘法则不同:输出中的一个元素,是由左边
矩阵的一整行与右边矩阵的一整列共同决定。
定义
矩阵乘积何时有定义
若 A 是 m×n 矩阵,B 是 n×p 矩阵,则乘积 AB
有定义,且结果是 m×p 矩阵。
若 A 的列数不等于 B 的行数,则 AB 未定义。
内侧大小必须配对;外侧大小则给出结果矩阵的大小。
行乘列规则
定义
矩阵乘法
设 A=[aij] 是 m×n 矩阵,B=[bjk] 是 n×p
矩阵。
则 AB 的 (i,k) 元素为
(AB)ik=ai1b1k+ai2b2k+⋯+ainbnk.也就是说,输出中的一个元素,是 A 的第 i 行与 B 的第 k 列按位相
乘后再相加。
这个定义同时说明三件事:
- 矩阵乘法不是逐项相乘;
- 内侧大小必须吻合;
- 一个输出元素会用到整行与整列中所有对应位置。
例题
细算一个矩阵乘积
令
A=[132−1],B=[4501].由于两者都是 2×2,所以 AB 有定义。其元素为
(AB)11=1⋅4+2⋅5=14,(AB)12=1⋅0+2⋅1=2,(AB)21=3⋅4+(−1)⋅5=7,(AB)22=3⋅0+(−1)⋅1=−1.因此
AB=[1472−1].
矩阵乘向量就是方程组语言
若 x 是列向量,那么 Ax 只是矩阵乘法的特例,但它刚好把线性方程组的左
边全部打包起来。
对
A=[132−1−15],x=x1x2x3,
有
Ax=[x1+2x2−x33x1−x2+5x3].
所以 Ax=b 并不是纯粹缩写,而是把整个方程组写成一个矩阵乘积。
单位矩阵是刻意“什么也不改变”的矩阵
定义
单位矩阵
对每个正整数 n,In 表示 n×n 单位矩阵:主对角线上全是 1,
其余位置全是 0。
例如
I2=[1001],I3=100010001.
单位矩阵之所以重要,是因为它对任何大小相容的矩阵都不起改变作用:
AIn=A,ImA=A.
例题
为什么乘上单位矩阵不会改变矩阵
若
A=[24−13],则
AI2=[24−13][1001]=[24−13].因为 I2 的第一列会抽出 A 的第一列,第二列会抽出 A 的第二列。
这正是往后定义逆矩阵的原因:若 A−1 存在,就要求 AA−1=I。
乘法一般不交换
线性代数最早令学生不习惯的地方之一,就是
AB=BA
一般并不成立。
有时两个乘积都定义,但结果不同;有时其中一个有定义,另一个根本未定义。
所以次序同时影响“能不能做”与“做出来是什么”。
下面的图可以帮你直接看到:一个输出元素,是如何由一行与一列构成的。
边读边试
跟着看一格矩阵乘法
互动工具会在你改变 A 与 B 的元素时,即时更新 AB 的每一格。
结果
8 = 1×2 + 2×3
用列的观点去读乘积
除了逐格计算之外,矩阵乘法还有另一种非常重要的读法。
如果把 B 的列写成
B=[b1 b2 ⋯ bp],
那么就有
AB=[Ab1 Ab2 ⋯ Abp].
也就是说,乘积的每一列,都可以理解成 A 乘上 B 的对应列向量。
矩阵乘法其实表示复合
矩阵乘法不是随手规定出来的公式,而是用来表达线性映射复合的规则。
如果向量 x 先被送到 Bx,再将结果送到 A(Bx),那么整体作用就是
(AB)x.
所以内侧大小一定要匹配,因为第一个变换的输出,必须是第二个变换可以接收
的输入。
定理
结合律对应重复复合
只要相关乘积有定义,就有
A(BC)=(AB)C.所以一串矩阵乘积可以改变分组方式,而不改变最后的线性变换。
标准基向量解释为什么列的观点这么自然
在 Rn 中,ek 是第 k 个位置等于 1、其余位置都为 0 的向量。
如果 A 是 m×n 矩阵,那么 Aek 就恰好是 A 的第 k 列。
因此单位矩阵一点都不神秘。In 的各列就是 e1,e2,…,en,所以
右乘 In,其实就是逐列把 A 自己原封不动地重建出来。
同一个 sanity check 也适用于零矩阵。如果右边矩阵每一列都是零向量,那么乘积
的每一列也都会变成零向量,所以任何大小相容的 A0 都一定是零矩阵。
最先要记住的代数法则
当乘法有定义之后,下一步就要问:它和你已经熟悉的其他矩阵运算如何配合。
只要大小相容,矩阵乘法满足
A(B+C)=AB+AC,(A+B)C=AC+BC,
而纯量也可以移进移出:
(cA)B=c(AB)=A(cB).
零矩阵是最简单的 sanity check。若 0 是大小相容的零矩阵,就有
A0=0,0A=0.
原因是:行乘列时只要其中一边全是零,所有输出元素都只能是零。
这些法则虽然基础,但后面谈逆矩阵、block 计算和更长乘积推理时都会默认使
用。如果不把它们明确掌握,后面的长计算会很难核对。
例题
零乘积不代表其中一个因子必定为零
令
A=[1−1],B=[11].两个矩阵都不是零矩阵,但
AB=[1⋅1+(−1)⋅1]=[0].所以矩阵乘法与实数乘法不同:AB=0 并不推出 A=0 或 B=0。
定理
单位矩阵是唯一的
如果 E 是一个 n×n 矩阵,而且对每个相容的 n×n 矩阵 A
都满足
EA=AandAE=A,那么就一定有 E=In。
常见错误
常见错误
矩阵乘法不是逐项相乘
(AB)ik 不是 aikbik。它来自 A 的第 i 行与 B 的第 k
列。
常见错误
一个方向可乘,不代表反方向也可乘
若 A 是 2×3、B 是 3×4,则 AB 有定义,但 BA
没有。不要自动把顺序反过来。
快速检查
快速检查
若 A 是 2×3、B 是 3×5,那么 AB 的大小是什么?
快速检查
把一个大小相容的矩阵乘上 In,会发生什么?
快速检查
如果 B 的列向量是 b1 和 b2,怎样读 AB 的各列?
练习
快速检查
为什么 Ax=0 不论 A 是什么,都至少有一个解?
快速检查
为什么有时 AB 有定义,但 BA 却没有定义?
相关笔记
本节建立在
2.1 矩阵基础 之上。
下一节可读
3.2 转置与特殊矩阵,
或直接跳到
5.1 可逆矩阵。