行列式把一个方阵压缩成一个数。这个数同时记录两件事:线性变换把体积放大多少,以及它是否翻转方向。公式服务于这个几何含义。

二维行列式测量有向面积

以 AA 的两列 a1=(a,c)T\mathbf a_1=(a,c)^{\mathsf T}、a2=(b,d)T\mathbf a_2=(b,d)^{\mathsf T} 为边的平行四边形,其有向面积为

det⁡A=det⁡(abcd)=ad−bc.\det A= \det\begin{pmatrix}a&b\\c&d\end{pmatrix}=ad-bc.

绝对值给出面积。正负号区分两列的排列方向。交换两列会翻转方向,因此行列式变号;两列共线时面积塌缩为零。

三条性质确定一般行列式

把 det⁡(a1,…,an)\det(\mathbf a_1,\ldots,\mathbf a_n) 看成列向量的函数。它满足:

  1. 对每一列分别线性;
  2. 交换两列会变号;
  3. det⁡I=1\det I=1。

第二条推出重复列时行列式为零。多线性又说明一列加上另一列的倍数不会改变行列式。由这三条性质可以唯一确定 n×nn\times n 行列式,并得到 Leibniz 展开

det⁡A=∑σ∈Snsgn⁡(σ)∏i=1nai,σ(i).\det A=\sum_{\sigma\in S_n} \operatorname{sgn}(\sigma) \prod_{i=1}^n a_{i,\sigma(i)}.

这个公式适合证明存在性,却不适合大型矩阵的手算。

证明存在性与唯一性

把每一列按标准基展开。多线性使任何候选函数都化为若干项,每项的输入是一组有序标准基向量。若有重复向量,交换这两列既不改变输入又改变符号,因此该项为零。没有重复时,输入就是标准基的一种排列;其值等于排列符号乘以单位矩阵处的值。归一化条件于是唯一确定上面的公式。把排列换成逆排列,就得到按行索引书写的形式。

反过来,上面的有限和对每列都是线性的,因为每个乘积恰好取该列的一个元素。交换两列,相当于用这个对换重新配对求和项,排列符号随之反转。在单位矩阵处只有恒等排列贡献 11。所以公式确实满足三条性质,存在性与唯一性均得证。这里排列符号定义为 (−1)逆序数(-1)^{\text{逆序数}};一次对换会改变逆序数的奇偶性。

把另一列的 cc 倍加到某列,多出来的一项有两列成比例,因此为零。数乘一列的规则则直接来自线性。

消元怎样计算行列式

消元与 LU中的三种行操作对应三条规则:

  • 交换两行,行列式乘以 −1-1;
  • 一行乘以 cc,行列式乘以 cc;
  • 一行加上另一行的倍数,行列式不变。

把矩阵化为上三角矩阵后,行列式就是对角元素乘积,再补上换行和缩放造成的因子。若 PA=LUPA=LU 且 LL 对角线全为 11,则

det⁡(P)det⁡(A)=∏iuii.\det(P)\det(A)=\prod_i u_{ii}.
证明转置、三角矩阵与行变换

在 ATA^{\mathsf T} 的排列求和中,把排列换成逆排列,乘积就成为 AA 的对应项。排列与逆排列同号,因此 det⁡AT=det⁡A\det A^{\mathsf T}=\det A,所有列变换规则随之成为行变换规则。

上三角矩阵的非零项要求每个 ii 都满足 i≤σ(i)i\le\sigma(i)。两边求和相等,故每个不等式都必须取等号,只有恒等排列留下,结果正是对角元之积。转置给出下三角情形。更一般地,

det⁡(CE0F)=det⁡Cdet⁡F.\det\begin{pmatrix}C&E\\0&F\end{pmatrix}=\det C\det F.

任何非零项都必须把下方行索引配到下方列索引,所以上方索引也只能彼此配对。排列的乘积和符号分别拆成两个块内排列的乘积与符号;分别求和即得公式,无须假设对角块可逆。

一个三阶消元例子

考虑

A=(120251013).A=\begin{pmatrix}1&2&0\\2&5&1\\0&1&3\end{pmatrix}.

先做 R2←R2−2R1R_2\leftarrow R_2-2R_1,再做 R3←R3−R2R_3\leftarrow R_3-R_2,得到对角线为 1,1,21,1,2 的上三角矩阵。两步都不改变行列式,所以 det⁡A=2\det A=2。不需要列出六个排列项。

行列式为零恰好表示压缩了维度

下列条件对方阵 AA 等价:

det⁡A≠0⟺A 可逆⟺ker⁡A={0}⟺rank⁡(A)=n.\det A\ne0 \Longleftrightarrow A\text{ 可逆} \Longleftrightarrow \ker A=\{\mathbf0\} \Longleftrightarrow \operatorname{rank}(A)=n.

若列向量相关,多线性可把一个零组合转化为 det⁡A=0\det A=0。若消元中每列都有主元,三角形的对角元素全非零,因此行列式非零并且矩阵可逆。

复合变换使体积缩放相乘

先施加 BB 再施加 AA,总体变换为 ABAB。体积先乘 det⁡B\det B,再乘 det⁡A\det A,所以

det⁡(AB)=det⁡(A)det⁡(B).\det(AB)=\det(A)\det(B).

于是 det⁡(A−1)=1/det⁡(A)\det(A^{-1})=1/\det(A),换基产生的相似矩阵具有相同行列式:

det⁡(S−1AS)=det⁡A.\det(S^{-1}AS)=\det A.

这说明行列式描述线性映射本身,不依赖所选坐标基。

从多线性证明乘法法则

前面的体积解释提供直觉,也可以给出纯代数证明。固定 AA,把

F(b1,…,bn)=det⁡(Ab1,…,Abn)F(\mathbf b_1,\ldots,\mathbf b_n) =\det(A\mathbf b_1,\ldots,A\mathbf b_n)

看作 BB 的列的函数。它是交替多线性函数,在标准基上的值为 det⁡A\det A。把每列展开为标准基的组合,重复指标的项全部为零,剩下的项按排列符号相加,因此 F(B)=det⁡(A)det⁡(B)F(B)=\det(A)\det(B)。这个论证也包含 AA 奇异的情况,不需要除以 det⁡A\det A。

余子式展开是递归公式

删去第 ii 行和第 jj 列得到子矩阵 AijA_{ij},余子式为 Cij=(−1)i+jdet⁡AijC_{ij}=(-1)^{i+j}\det A_{ij}。沿第 ii 行展开:

det⁡A=∑j=1naijCij.\det A=\sum_{j=1}^n a_{ij}C_{ij}.

稀疏的小矩阵适合这样计算。一般稠密矩阵用消元更高效,因为递归展开会反复计算许多子问题。

证明余子式展开

把 Leibniz 求和按第 ii 行选中的列 jj 分组。用 i−1i-1 次相邻换行把第 ii 行移到最前,再用 j−1j-1 次相邻换列把第 jj 列移到最前。选中左上角元素的项,恰好是 aija_{ij} 乘以剩余行列的排列项,剩余索引的相对顺序保持不变。撤销交换带来的符号为 (−1)i+j−2=(−1)i+j(-1)^{i+j-2}=(-1)^{i+j},这一组之和就是 aijCija_{ij}C_{ij}。对所有 jj 求和得证。约定零阶行列式为 11,便包含 n=1n=1 的情形;转置后得到按列展开。

行列式不会保存全部几何信息

diag⁡(100,0.01)\operatorname{diag}(100,0.01) 与单位矩阵的行列式都为 11,但前者沿一个方向拉长、沿另一个方向压缩。行列式只测量总的有向体积因子,不能单独描述误差放大、各方向伸缩或矩阵是否接近奇异。

练习

练习面积与方向

计算列向量 (2,1)(2,1)、(1,3)(1,3) 构成的有向面积,并说明交换两列后的变化。

解答

行列式为 2⋅3−1⋅1=52\cdot3-1\cdot1=5。交换两列后为 −5-5,面积仍为 55,方向翻转。

练习不用展开计算

若 BB 由 AA 把第三行加上第一行的四倍得到,比较 det⁡A\det A 与 det⁡B\det B。

解答

加上另一行的倍数不改变行列式,所以 det⁡B=det⁡A\det B=\det A。

练习相似矩阵

证明相似矩阵的行列式相同。

解答

det⁡(S−1AS)=det⁡(S)−1det⁡(A)det⁡(S)=det⁡A\det(S^{-1}AS)=\det(S)^{-1}\det(A)\det(S)=\det A。