Day 3 行列式

8 minute read

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{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}\]
\[\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}\]

注:在刚才的过程中

  • 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{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$ 表示。

\[\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 }\]

总结

在思考关于行列式的问题时,我们有两个视角:

  • 感性理解——有向体积。
  • 严格定义——唯一的那满足 3 个性质的函数。