矩阵(Matrix)是按 矩形阵列 排列的数表,记为 A=(aij)m×n,表示 m 行 n 列。
矩阵有两套互相补充的直觉,学线代要随时在两者间切换:
- 数据表的视角:矩阵就是一张表格,每行是一个样本、每列是一个特征(或反之)。机器学习里的数据集、图像的像素网格、图的邻接矩阵都是这种用法。
- 线性映射的视角:一个 m×n 矩阵代表一个把 n 维向量变成 m 维向量的 线性变换 x↦Ax。矩阵的每一列,正是标准基向量 ej 被变换后落到的位置。
线性映射的视角更深刻,它解释了所有看似古怪的运算规则。比如矩阵乘法之所以那样定义,是因为它要对应 变换的复合。
(A+B)ij=aij+bij,(kA)ij=kaij
要求 A,B 同型(行列数都相同)。加法和数乘都是 逐元素 进行的,满足交换律、结合律、分配律,规则和普通数的加法、数乘一致。
设 A 为 m×n,B 为 n×p,则乘积 C=AB 为 m×p,其中
cij=k=1∑naikbkj
即「C 的第 i 行第 j 列 = A 的第 i 行与 B 的第 j 列对应相乘再相加」。
例:算 (1324)(5768)。左行配右列逐个点乘:
c11c21=1⋅5+2⋅7=19,=3⋅5+4⋅7=43,c12c22=1⋅6+2⋅8=22,=3⋅6+4⋅8=50
故乘积为 (19432250)。若反过来算 (5768)(1324)=(23313446),结果完全不同,正印证乘法不交换。
例:行向量乘列向量得一个数(内积),(123)456=4+10+18=32;反过来列乘行得一个 3 阶矩阵 456(123)=45681012121518。同样两个矩阵,乘的次序不同连形状都变了。
为什么定义得这么「绕」?因为矩阵乘法对应 变换的复合:先做 B 再做 A,等于做一次 AB。即 A(Bx)=(AB)x。复合变换的规则一旦展开,就长成上面这个求和式。理解了这一点,乘法就不是死记的公式了。
相乘的前提是「左列 = 右行」:左矩阵的列数必须等于右矩阵的行数,否则无法相乘。
一般情况下
AB=BA
几何直觉很清楚:变换的 次序 会影响结果。先旋转再投影,和先投影再旋转,得到的图形通常完全不同。所以矩阵乘法天然是「有先后」的,交换次序会变。
不过矩阵乘法仍然满足:
(AB)C=A(BC),A(B+C)=AB+AC,k(AB)=(kA)B=A(kB)
即 结合律 与 分配律 成立,只是 交换律 不成立。另外两个常见陷阱:AB=O 推不出 A=O 或 B=O;AB=AC 且 A=O 也推不出 B=C(除非 A 可逆)。
(AT)ij=aji
转置就是沿主对角线「翻折」,把行变成列。常用性质:
(A+B)T=AT+BT,(kA)T=kAT,(AT)T=A
(AB)T=BTAT
注意乘积转置要 反序,和求逆 (AB)−1=B−1A−1 的规律一致。
仅对 方阵 定义幂:Am=mA⋅A⋯A,且约定 A0=E。由结合律有 AmAk=Am+k、(Am)k=Amk。
但因为不交换,二项式定理一般不成立:(A+B)2=A2+AB+BA+B2,只有当 AB=BA 时才能合并成 A2+2AB+B2。求高次幂的实用办法是 相似对角化(详见 特征值与相似矩阵)。
| 名称 | 定义 |
|---|
| 零矩阵 O | 所有元素为 0 |
| 单位矩阵 E(或 I) | 对角线为 1,其余为 0,满足 AE=EA=A |
| 数量矩阵 kE | 对角线为 k 的对角阵,左右乘相当于数乘 k |
| 对角矩阵 | 非对角线元素全为 0,记 diag(d1,…,dn) |
| 上(下)三角矩阵 | 主对角线下(上)方元素全为 0 |
| 对称矩阵 | AT=A |
| 反对称矩阵 | AT=−A,对角线必为 0 |
| 正交矩阵 | ATA=AAT=E,即 A−1=AT |
| 幂等矩阵 | A2=A(对应投影变换) |
单位矩阵是矩阵乘法的「1」:它对应「什么都不做」的恒等变换。对角矩阵对应「各坐标轴方向独立缩放」,是最简单的一类变换,后续对角化追求的就是把矩阵化到这种形态。
若存在矩阵 B 使 AB=BA=E,则称 A 可逆(Invertible),B 为其 逆矩阵(Inverse Matrix),记为 A−1。逆矩阵若存在则唯一。
几何上,A−1 就是把 A 的变换「撤销」的那个变换。能撤销的前提是 A 没有把空间压扁 —— 一旦压扁(信息丢失),就回不去了,这正对应 ∣A∣=0 不可逆。
下列条件彼此等价(对 n 阶方阵 A):
A 可逆⟺∣A∣=0⟺r(A)=n⟺Ax=0 只有零解
也等价于:A 的列(行)向量 线性无关,A 可表示为若干 初等矩阵的乘积。
伴随矩阵(Adjugate Matrix)A∗ 由代数余子式 转置 排成:第 i 行第 j 列的元素是 Aji(注意下标颠倒)。它满足核心恒等式
AA∗=A∗A=∣A∣E
于是当 ∣A∣=0 时
A−1=∣A∣1A∗
伴随矩阵法适合 二阶、三阶 的手算,尤其二阶有口诀:
(acbd)−1=ad−bc1(d−c−ba)「主对角线对调、副对角线变号,再除以行列式」。高阶时代数余子式太多,改用初等变换法。
例:用伴随矩阵法求 A=123224313 的逆。先算行列式:
∣A∣=1(2⋅3−1⋅4)−2(2⋅3−1⋅3)+3(2⋅4−2⋅3)=2−6+6=2
逐个算九个代数余子式 Aij=(−1)i+jMij(每个是划去第 i 行第 j 列后的二阶行列式):
A11A21A31=+2413=2,=−2433=6,=+2231=−4,A12A22A32=−2313=−3,=+1333=−6,=−1231=5,A13A23A33=+2324=2,=−1324=2,=+1222=−2
伴随矩阵 A∗ 是代数余子式的 转置(第 i 行第 j 列放 Aji):
A∗=A11A12A13A21A22A23A31A32A33=2−326−62−45−2
于是 A−1=∣A∣1A∗=212−326−62−45−2=1−2313−31−225−1。可乘回 AA−1=E 验算。注意伴随矩阵的转置一步极易出错——代数余子式按 行 算出来,填进 A∗ 时要按 列 放。
把 A 和单位阵并排写成 (A∣E),对它做 初等行变换,当左边化成 E 时,右边就是 A−1:
(A∣E)行变换(E∣A−1)
原理:每次行变换相当于左乘一个初等矩阵,把 A 化成 E 的那串初等矩阵之积正好是 A−1,它们作用在 E 上就得到 A−1。这是高阶求逆的标准方法。
例:用初等行变换求 A=121250338 的逆。写出 (A∣E),逐步把左半化成 E:
121250338100010001r2−2r1, r3−r110021−23−351−2−1010001
用第 2 行消第 1、3 行的第 2 列(r1−2r2、r3+2r2):
r1−2r2, r3+2r21000109−3−15−2−5−212001
把第 3 行乘 −1 使主元为 1,再消第 1、2 行的第 3 列(r1−9r3、r2+3r3):
−r31000109−315−25−21−200−1r1−9r3, r2+3r3100010001−4013516−5−29−3−1
左半成了 E,右半即 A−1=−4013516−5−29−3−1。整个过程只用行变换,比算九个代数余子式利落得多。
(A−1)−1=A,(kA)−1=k1A−1(k=0)
(AB)−1=B−1A−1,(AT)−1=(A−1)T,∣A−1∣=∣A∣1
形如 AX=B 的矩阵方程,当 A 可逆时两边 左乘 A−1 得 X=A−1B;若是 XA=B 则两边 右乘 A−1 得 X=BA−1。次序不能错——乘法不交换,左方程左乘、右方程右乘。
例:解 AX=B,其中 A=(2111)、B=(1235)。A 可逆,∣A∣=1,由二阶口诀 A−1=(1−1−12),于是
X=A−1B=(1−1−12)(1235)=(−13−27)
更省事的办法是把 A−1 和 B 一并算掉:对 (A∣B) 做初等行变换,左半化成 E 时右半就是 X=A−1B,免去单独求逆。验算 AX=(2111)(−13−27)=(1235)=B,正确。
- 交换两行(列):ri↔rj。
- 某行(列)乘非零常数:kri(k=0)。
- 某行(列)加另一行(列)的 k 倍:ri+krj。
对单位矩阵 E 做 一次 初等变换得到的矩阵,称为 初等矩阵(Elementary Matrix)。关键规律:
- 对 A 做一次 行变换 = 用对应的初等矩阵 左乘 A。
- 对 A 做一次 列变换 = 用对应的初等矩阵 右乘 A。
初等矩阵都可逆,其逆仍是同类型的初等矩阵。「A 可逆」等价于「A 是有限个初等矩阵之积」,这把求逆、解方程、求秩统一到了同一套行变换工具上。
例:取 A=(acbd),用初等矩阵直观看「左乘动行、右乘动列」。把交换行的初等矩阵 P=(0110)(由 E 交换两行得到)左乘 A:
PA=(0110)(acbd)=(cadb)
正是把 A 的两 行 对调。同一个 P 改成 右乘:
AP=(acbd)(0110)=(bdac)
变成把两 列 对调。再看「第 2 行加第 1 行 k 倍」的初等矩阵 (1k01) 左乘 A 得 (ac+kabd+kb),恰好是行变换 r2+kr1。「行变换 = 左乘、列变换 = 右乘」这条规律就此一目了然。
- 行阶梯形(Row Echelon Form):每个非零行的首非零元(主元,Pivot)所在列号比上一行严格靠右,全零行都在底部。
- 行最简形(Reduced Row Echelon Form,RREF):在行阶梯形基础上,每个主元为 1,且主元所在列的其他元素全为 0。
任何矩阵都可经初等行变换化为 唯一 的行最简形。它是求秩、解方程组、判断线性相关性的公共工具。
对 A 同时做行、列变换,总能化成左上角是单位块、其余为零的 等价标准形:
A→(ErOOO),r=r(A)
这说明任意 m×n 矩阵在「行列变换等价」下完全由它的 秩 r 决定。
矩阵 A 的 秩(Rank)r(A) 有几种等价说法,它们指的是同一个数:
- A 化成行阶梯形后 非零行的个数;
- A 的 最高阶非零子式 的阶数;
- A 的列(行)向量组的 极大无关组 所含向量个数。
秩的本质是:变换 A 的 像空间的维数,也就是「这堆向量真正张成了几维」。秩越小,空间被压得越扁。
把 A 用初等行变换化成行阶梯形,数非零行的个数即可。初等变换 不改变秩,这是求秩的标准做法。
例:求 A=121243365487 的秩。化行阶梯形:
r2−2r1, r3−r1100201302403r2↔r3100210320430
第 2 行恰好是第 1 行的两倍,消成了全零行;非零行有 2 个,故 r(A)=2。它说明这三行里只有两行「真正独立」,第二行是多余的。
0≤r(A)≤min(m,n)
r(AT)=r(A),r(kA)=r(A)(k=0)
r(A+B)≤r(A)+r(B),r(AB)≤min(r(A),r(B))
可逆矩阵不改变秩:P,Q 可逆时 r(PAQ)=r(A)。另有西尔维斯特不等式 r(A)+r(B)−n≤r(AB)(A 为 m×n,B 为 n×p)。
- 行满秩:r(A)=m(行向量线性无关)。
- 列满秩:r(A)=n(列向量线性无关)。
- 方阵 A 满秩(r(A)=n)⟺∣A∣=0⟺A 可逆。
把矩阵划分为若干 子块,就能把整块子矩阵当成「元素」来运算(前提是分块方式相容,能对上行列数)。分块是处理大矩阵、推导结构性结论的利器。
加法、数乘逐块进行;乘法在「相邻块行列数对得上」时也逐块进行,规则与普通矩阵乘法一致,只是元素换成了子块(注意子块乘法不可交换次序)。
分块对角阵的逆,逐块求逆即可:
(A1OOA2)−1=(A1−1OOA2−1)
例:求 M=200013024 的逆。它是分块对角阵 (A1OOA2),其中 A1=(2)、A2=(1324)。逐块求逆:A1−1=(21),A2−1=1⋅4−2⋅31(4−3−21)=−21(4−3−21)=(−2231−21),拼回去:
M−1=21000−22301−21
大矩阵拆成小块各自处理,省去整体求逆。
分块三角阵的行列式,等于对角块行列式之积:
ACOB=AOCB=∣A∣⋅∣B∣
副对角分块还会带定向因子:
OBAO=(−1)mn∣A∣⋅∣B∣
其中 A 为 m 阶、B 为 n 阶方阵。
例:算 1357246800210012。它是分块下三角 ACOB,对角块 A=(1324)、B=(2112),行列式等于对角块之积:
∣A∣⋅∣B∣=(1⋅4−2⋅3)(2⋅2−1⋅1)=(−2)(3)=−6
左下角的 C=(5768) 完全不影响结果——分块三角阵的行列式只看对角块。