Day 3 行列式
Published:
行列式
有一个 $n$ 维坐标系和一个方阵 $\mathbf A$,我想知道原本的单位 $n$ 维正方体在变换后,体积($n$ 维体积)变成原来的几倍。注意这里的体积是有向体积,一会儿会聊到。
这个倍数称为 $\mathbf A$ 的行列式,记作 $\det \mathbf A$ 或 $\lvert \mathbf A \rvert$。
设
\[\mathbf A = \begin{bmatrix} \vec a_1 & \vec a_2 & \cdots & \vec a_n \end{bmatrix}\]则这个倍数应该是一个关于这些向量的函数:
\[\det \mathbf A = f(\vec a_1, \vec a_2, \cdots, \vec a_n)\]行列式的性质
直接做是不好做的,我们要先分析其性质。
事实上,后文可以证明,满足这 3 个性质的函数有且仅有一个,即我们的行列式。
性质 1:多重线性
\[f(\cdots, a u_i + b v_i, \cdots) = a f(\cdots, u_i, \cdots) + b f(\cdots, v_i, \cdots)\]对于两个平行多面体,若它们有 $n-1$ 个维度上尺寸都一样,显然它们可以直接拼起来。
注意,当 $a,b$ 取负数时我们希望这依然成立,此时会出现负的体积(这就是刚才说的有向体积)。
性质 2:退化时为 $0$
若 $\vec a_1, \cdots, \vec a_n$ 线性相关,则
\[\det \mathbf A = f(\vec a_1, \cdots, \vec a_n) = 0\]性质 3:单位化
根据性质 1 和 2,其实结构已经差不多确定了,再确定一个单位即可。
\[\det \mathbf I = f(\vec e_1, \cdots, \vec e_n) = 1\]行列式的推论
$\det (\mathbf A \mathbf B) = \det \mathbf A \det \mathbf B$
第一次用了 $\mathbf B$ 的变换,把空间的体积放大 $\det \mathbf B$ 倍;第二次用了 $\mathbf A$ 的变换,把空间的体积放大 $\det \mathbf A$ 倍。所以总倍数就是 $\det \mathbf A \det \mathbf B$。
小推论:
\[\det \mathbf A^{-1} = \frac 1 {\det \mathbf A}\]感性理解很好,但是代数证明呢?定义函数
\[f_{\mathbf B}(\mathbf A) := \frac {\det (\mathbf A \mathbf B)} {\det \mathbf B}\]不难验证它满足那 3 条性质,因此它只能是 $\det \mathbf A$。
$\det \mathbf A = 0 \iff \text{rank}(\mathbf A) < n$
若体积被打成 $0$ 了,说明这个变换在“降维打击”,一定是把基变成了线性相关的向量。因此该方阵不满秩。
Alternating
交换两列时,行列式变为相反数。
\[f(\cdots, \vec a_i, \cdots, \vec a_j, \cdots) = \textcolor{red}{-} f(\cdots, \vec a_j, \cdots, \vec a_i, \cdots)\]证明:添上两个恒等于 $0$ 的绿色项,然后反复运用线性性。
\[\begin{aligned} & f(\cdots, \vec a_i, \cdots, \vec a_j, \cdots) + f(\cdots, \vec a_j, \cdots, \vec a_i, \cdots) \\ =& \textcolor{limegreen}{f(\cdots, \vec a_i, \cdots, \vec a_i, \cdots)} + f(\cdots, \vec a_j, \cdots, \vec a_i, \cdots) \\ & + f(\cdots, \vec a_j, \cdots, \vec a_i, \cdots) + \textcolor{limegreen}{f(\cdots, \vec a_j, \cdots, \vec a_j, \cdots)} \\ =& f(\cdots, \vec a_i + \vec a_j, \cdots, \vec a_i, \cdots) + f(\cdots, \vec a_j, \cdots, \vec a_i + \vec a_j, \cdots) \\ =& f(\cdots, \vec a_i + \vec a_j, \cdots, \vec a_i + \vec a_j, \cdots) \\ =& 0 \\ \end{aligned}\]加减消元不变性
把一个向量加上另一个向量的若干倍,行列式不变。
\[f(\cdots, \vec a_i + \lambda \vec a_j, \cdots) = f(\cdots, \vec a_i, \cdots)\]证明:
\[\begin{aligned} & f(\cdots, \vec a_i + \lambda \vec a_j, \cdots) \\ =& f(\cdots, \vec a_i, \cdots) + f(\cdots, \lambda \vec a_j, \cdots) \\ =& f(\cdots, \vec a_i, \cdots) \\ \end{aligned}\]三角阵行列式
三角阵行列式是对角线上的值之积。
若方阵不满秩,则必然是 $0$。若方阵满秩,则必然可以消元消到只剩对角线。
这个方法可以用来计算行列式。
$\det \mathbf A^T = \det \mathbf A$
证明:首先对于三角阵,这个结论是显然的。接下来证明 general 的情况。
对于 singular 方阵,由于 $\text{rank}(\mathbf A^T) = \text{rank}(\mathbf A) < n$,因此
\[\det \mathbf A^T = \det \mathbf A = 0\]对于 non-singular 方阵,有 LU 分解 $\mathbf A = \mathbf L \mathbf U$,把 $\mathbf A$ 拆成三角阵。
\[\begin{aligned} & \det \mathbf A^T \\ =& \det \mathbf (\mathbf L \mathbf U)^T \\ =& \det \mathbf U^T \mathbf L^T \\ =& \det \mathbf U^T \det \mathbf L^T \\ =& \det \mathbf U \det \mathbf L \\ =& \det (\mathbf L \mathbf U) \\ =& \det \mathbf A \\ \end{aligned}\]因此,行列式关于矩阵的列的一切性质,关于矩阵的行也成立。
余子式
求特殊的三阶行列式
\[\begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix}\]
根据行列式的线性性,它应该是一个关于右下角小矩阵的函数:
\[\begin{bmatrix} a_{2,2} & a_{2,3} \\ a_{3,2} & a_{3,3} \\ \end{bmatrix}\]尝试一下会发现它满足“退化时为 $0$”和“单位化”的性质,因此它只能是行列式:
\[\begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} = \begin{vmatrix} a_{2,2} & a_{2,3} \\ a_{3,2} & a_{3,3} \\ \end{vmatrix}\]\[\begin{aligned} & \begin{vmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{vmatrix} \\ =& a_{1,1} \begin{vmatrix} 1 & a_{1,2} & a_{1,3} \\ 0 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + a_{2,1} \begin{vmatrix} 0 & a_{1,2} & a_{1,3} \\ 1 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + a_{3,1} \begin{vmatrix} 0 & a_{1,2} & a_{1,3} \\ 0 & a_{2,2} & a_{2,3} \\ 1 & a_{3,2} & a_{3,3} \\ \end{vmatrix} \\ =& a_{1,1} \begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + a_{2,1} \begin{vmatrix} 0 & a_{1,2} & a_{1,3} \\ 1 & 0 & 0 \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + a_{3,1} \begin{vmatrix} 0 & a_{1,2} & a_{1,3} \\ 0 & a_{2,2} & a_{2,3} \\ 1 & 0 & 0 \\ \end{vmatrix} \\ =& a_{1,1} \begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{2,2} & a_{2,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + (-1)^1 a_{2,1} \begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{1,2} & a_{1,3} \\ 0 & a_{3,2} & a_{3,3} \\ \end{vmatrix} + (-1)^2 a_{3,1} \begin{vmatrix} 1 & 0 & 0 \\ 0 & a_{1,2} & a_{1,3} \\ 0 & a_{2,2} & a_{2,3} \\ \end{vmatrix} \\ =& a_{1,1} \begin{vmatrix} a_{2,2} & a_{2,3} \\ a_{3,2} & a_{3,3} \\ \end{vmatrix} - a_{2,1} \begin{vmatrix} a_{1,2} & a_{1,3} \\ a_{3,2} & a_{3,3} \\ \end{vmatrix} + a_{3,1} \begin{vmatrix} a_{1,2} & a_{1,3} \\ a_{2,2} & a_{2,3} \\ \end{vmatrix} \\ \end{aligned}\]求普通三阶行列式
\[\begin{vmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{vmatrix}\]
注:在刚才的过程中
- Step 1 利用多重线性性对第一个向量展开。
- Step 2 加减消元。
- Step 3 交换矩阵的行,$\det$ 变相反数。
- 我们证明过交换矩阵的列有这一性质,我们还证明过转置不改变 $\det$,因此行和列地位相等,行也符合这一性质。
- Step 4 套用前一题的结论。
【定义】余子式 (minor) $M_{i,j}$ 为原矩阵去掉第 $i$ 行第 $j$ 列的行列式。例如:
\[M_{2,1} := \begin{vmatrix} a_{1,2} & a_{1,3} \\ a_{3,2} & a_{3,3} \\ \end{vmatrix}\]则我们可以得到:
\[\det \mathbf A = \sum_{i=1}^n a_{i,1} (-1)^{i-1} M_{i,1}\]进一步地,如果拆的不是第 $1$ 列而是第 $j$ 列:
\[\det \mathbf A = \sum_{i=1}^n a_{i,j} (-1)^{(i-1)+(j-1)} M_{i,j}\] \[\boxed{ \det \mathbf A = \sum_{i=1}^n a_{i,j} (-1)^{i+j} M_{i,j} }\]若我们定义代数余子式 (cofactor) $C_{i,j} := (-1)^{i+j} M_{i,j}$,则这个式子可以进一步化简:
\[\boxed{ \det \mathbf A = \sum_{i=1}^n a_{i,j} C_{i,j} }\]余子式不仅可以用于计算,它更重要的意义是它归纳地构造性证明了满足那 3 个性质的函数只能是行列式。
二阶 & 三阶行列式的计算
二阶行列式
\[\begin{vmatrix} a_{1,1} & a_{1,2} \\ a_{2,1} & a_{2,2} \\ \end{vmatrix} = a_{1,1} a_{2,2} - a_{1,2} a_{2,1}\]三阶行列式
\[\begin{aligned} \begin{vmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{vmatrix} &= \textcolor{red}{a_{1,1}a_{2,2}a_{3,3} + a_{1,2}a_{2,3}a_{3,1} + a_{1,3}a_{2,1}a_{3,2}} \\ & \textcolor{blue}{- a_{1,3}a_{2,2}a_{3,1} - a_{1,1}a_{2,3}a_{3,2} - a_{1,2}a_{2,1}a_{3,3}} \\ \end{aligned}\]简单记忆方法(注意这纯粹是一个 trick,对 $4$ 阶及以上不适用):

神秘式子
\[\boxed{ \det \mathbf A = \sum_{\sigma \in S_n} \text{sgn}(\sigma) \prod_{i=1}^n a_{i, \sigma(i)} }\]其中 $S_n$ 代表 $n!$ 种 $1 \cdots n$ 的全排列,$\text{sgn}(\sigma) = (-1)^{p(\sigma)}$,$p(\sigma)$ 代表 $\sigma$ 的逆序对数。
证明
用多重线性性拆开:
\[\det \mathbf A = \sum_{i_1} \sum_{i_2} \cdots \sum _{i_n} a_{i_1, 1} a_{i_2, 2} \cdots a_{i_n, n} \det(\begin{bmatrix} \vec e_{i_1}, \vec e_{i_2}, \cdots, \vec e_{i_n} \end{bmatrix})\]注意线性相关的时候会变 $0$,所以只有 $i_1 \cdots i_n$ 恰好是一个排列的时候才会造成贡献。
后面的 $\det$ 项要么是 $1$ 要么是 $-1$,因为它可以排序成单位矩阵。我们排序时使用冒泡排序,熟知冒泡排序时的交换次数恰好为排列的逆序对数。这样就得到结论了。
应用:Jacobian Determinant
极坐标的定义:
\[\begin{cases} x = r \cos \theta \\ y = r \sin \theta \\ \end{cases}\]求出 $dx, dy$ 怎么用 $dr, d\theta$ 表示。
根据全微分公式:
\[\begin{cases} dx = \frac {\partial x} {\partial r} dr + \frac {\partial x} {\partial \theta} d\theta \\ dy = \frac {\partial y} {\partial r} dr + \frac {\partial y} {\partial \theta} d\theta \\ \end{cases}\]用矩阵写出来:
\[\begin{bmatrix} dx \\ dy \end{bmatrix} = \begin{bmatrix} \frac {\partial x} {\partial r} & \frac {\partial x} {\partial \theta} \\ \frac {\partial y} {\partial r} & \frac {\partial y} {\partial \theta} \\ \end{bmatrix} \begin{bmatrix} dr \\ d\theta \end{bmatrix}\](这也揭示了一种感性理解:普通坐标在无穷小的尺度上可以看作线性变换)
我们定义 Jacobi 矩阵 (Jacobian matrix) $\mathbf J$:
\[\boxed{\mathbf J := \frac {\partial (x,y)} {\partial (r, \theta)}:= \begin{bmatrix} \frac {\partial x} {\partial r} & \frac {\partial x} {\partial \theta} \\ \frac {\partial y} {\partial r} & \frac {\partial y} {\partial \theta} \\ \end{bmatrix}}\]则
\[\begin{bmatrix} dx \\ dy \end{bmatrix} = \mathbf J \begin{bmatrix} dr \\ d\theta \end{bmatrix}\]此题中
\[\mathbf J = \begin{bmatrix} \cos \theta & - r \sin \theta \\ \sin \theta & r \cos \theta \\ \end{bmatrix}\]求出小面积元 $dx dy$ 在极坐标下怎么用 $dr, d\theta$ 表示。
$dx$ 与 $dy$ 形成的小面积,是 $dr$ 和 $d\theta$ 形成的小面积经过 $\mathbf J$ 变换后的结果。因此它被放大到了 $\det \mathbf J$ 倍:
\[\boxed{ dx dy = \det \mathbf J \times dr d\theta }\]$\det \mathbf J$ 被称为 Jacobi 行列式 (Jacobian Determinant)。
此题中
\[\begin{aligned} & \det \mathbf J \\ =& \cos \theta \times r \cos \theta - \sin \theta \times (-r \sin \theta) \\ =& r \end{aligned}\]因此得到了结论:
\[dx dy = r dr d\theta\]若以后学习了外积,会知道这背后的本质其实是在说:
\[dx \land dy = \det \mathbf J \times dr \land d\theta\]
\[\begin{bmatrix} dx \\ dy \\ dz \end{bmatrix} = \begin{bmatrix} \sin \theta \cos \varphi & r \cos \theta \cos \varphi & - r \sin \theta \sin \varphi \\ \sin \theta \sin \varphi & r \cos \theta \sin \varphi & r \sin \theta \cos \varphi \\ \cos \theta & - r \sin \theta & 0 \\ \end{bmatrix} \begin{bmatrix} dr \\ d\theta \\ d\varphi \end{bmatrix}\] \[\det \mathbf J = r^2 \sin \theta\] \[\boxed{ dx dy dz = r^2 \sin \theta dr d\theta d\varphi }\]看一个复杂一点的:球坐标
\[\begin{cases} x = r \sin \theta \cos \varphi \\ y = r \sin \theta \sin \varphi \\ z = r \cos \theta \\ \end{cases}\]
把小体积 $dx dy dz$ 用 $dr, d\theta, d\varphi$ 表示。
总结
在思考关于行列式的问题时,我们有两个视角:
- 感性理解——有向体积。
- 严格定义——唯一的那满足 3 个性质的函数。