行列式笔记

在看了Introduction to Linear Algebra之后我对于行列式真的是豁然开朗。

行列式的性质

行列式被定义为具有一下三个核心性质的,关于一个方阵的值:

  1. 单位阵的行列式为1。

  2. 两行交换,行列式变号。

  3. 行列式关于单行是线性的,即

    \begin{vmatrix} \vdots \\ (\boldsymbol  a + \boldsymbol b)^{\mathrm T} \\ \vdots \end{vmatrix} = \begin{vmatrix} \vdots \\ \boldsymbol a^{\mathrm T} \\ \vdots \end{vmatrix} + \begin{vmatrix} \vdots \\ \boldsymbol b^{\mathrm T} \\ \vdots \end{vmatrix},\quad\quad
\begin{vmatrix} \vdots \\ (t\boldsymbol a)^{\mathrm T} \\ \vdots \end{vmatrix} = t\begin{vmatrix} \vdots \\ \boldsymbol a^{\mathrm T} \\ \vdots \end{vmatrix}

从这三个性质,可以导出行列式所有重要的性质:

  1. 两行相等,行列式为0证明:交换相等两行,行列式不变,但又由性质2,行列式要变号,因此行列式只能是0

  2. 初等行变换不改变行列式的值。证明:由性质3、4得:、

    \begin{vmatrix}
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots \\
 (\boldsymbol a -l \boldsymbol b)^{\mathrm T} \\
 \vdots
\end{vmatrix}
 = \begin{vmatrix}
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots \\
 \boldsymbol a^{\mathrm T} \\
 \vdots
\end{vmatrix}
-
l\begin{vmatrix}
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots
\end{vmatrix}
= \begin{vmatrix}
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots \\
 \boldsymbol a^{\mathrm T} \\
 \vdots
\end{vmatrix}
-
l\cdot 0
= \begin{vmatrix}
 \vdots \\
 \boldsymbol b^{\mathrm T} \\
 \vdots \\
 \boldsymbol a^{\mathrm T} \\
 \vdots
\end{vmatrix}

  3. 有一行为\boldsymbol 0,则行列式为0证明:将另一行加到零行上,出现相等的两行,由性质4,行列式的值为0。又因为初等行变换不改变行列式的值,所以原来的行列式值也是0

  4. 三角阵的行列式为其主对角线元素之积。证明:无论是上三角阵还是下三角阵,都可以简单地利用行变换消去非对角线上的元素,此时由性质1和性质3,行列式的值就是主对角线元素之积。

  5. 矩阵可逆,则行列式非零。证明:考虑高斯消元,如果矩阵奇异则必然三角阵中有零行,行列式为0。反之,则左右行都是主元行,三角阵的行列式非零。(高斯消元过程中的行变换不改变行列式,行交换只改变正负。)

  6. 积的行列式等于行列式的积。证明:对于矩阵A,B,考虑关于A的函数D(A) = |AB|/|B|。其有三个性质:

    1. D(I) = |B|/|B| = 1
    2. A的两行交换,则AB的两行交换,则|AB|变号,则D(A)变号。
    3. A的单行线性变换即AB的单行线性变换,因此|AB|关于A的单行是线性的,即D(A)关于A单行是线性的。

    因此,D(A)满足行列式的核心性质,由行列式之定义,D(A) = |A|

  7. 转置不改变行列式的值。若矩阵奇异,则其转置奇异,则二者行列式皆为0。若矩阵可逆,则考虑LU分解PA=LU。两边转置得A^{\mathrm T}P^{\mathrm T} = U^{\mathrm T}L^{\mathrm T}。由性质9,有

    |P||A|=|L||U|,\quad \left|A^{\mathrm T}\right|\left|P^{\mathrm T}\right| = \left|U^{\mathrm T}\right|\left|L^{\mathrm T}\right|
    比较二式,L,U为三角阵,因为转置不改变对角线,因而转置不改变二者行列式的值。P为行交换的排列,行列式为\pm 1,而P^{\mathrm T}P=I,因此|P|\left|P^{\mathrm T}\right|同正负,即相等。综上,由两等式,|A| = \left|A^{\mathrm T}\right|

    推论:性质2、3、4、5、6对于列也适用。

行列式的计算

排列公式

由行列式的单行线性,可以逐行将行列式进行拆分,例如:

\begin{aligned}
    \begin{vmatrix}
        a &b\\
        c &d
    \end{vmatrix} &= \begin{vmatrix}
        a &0\\
        c &d
    \end{vmatrix} + \begin{vmatrix}
        0 &b\\
        c &d
    \end{vmatrix} \\
    &= \begin{vmatrix}
        a &0\\
        c &0
    \end{vmatrix} + \begin{vmatrix}
        a &0\\
        0 &c
    \end{vmatrix} + \begin{vmatrix}
        0 &b\\
        c &0
    \end{vmatrix} + \begin{vmatrix}
        0 &b\\
        0 &d
    \end{vmatrix}
\end{aligned}
照此态势,n行的行列式可以被分拆为n^n个每行至多只有一个非零元素的行列式之和。而注意到,这些行列式有一些存在零列,他们的值一定为0可以省略。因此,可能非零的只有那些每行至多只有一个非零元素,且非零元素所在列两两不同的行列式。对于这些行列式,存在排列矩阵可以将其对角化,进而我们得出这些行列式的值为每一行可能的非零元素之积乘以排列矩阵的行列式,后者只可能是\pm 1——不妨将这正负定义为排列的“奇偶性”。则行列式的排列公式呼之欲出:

A_{n\times n} = \sum_{\pi \in S_n} (-1)^{\sigma(\pi)}\prod_{i=1}^na_{i, \pi(i)}

其中S_n表示所有n排列的集合,\pi表示一个排列,\sigma(\pi)表示\pi的逆序对数,即

\sigma(\pi)=\sum_{i<j}[\pi(i) > \pi(j)]

行列展开

同样由行列式的单行线性,可以将行列式的某一行进行拆分成n个该行只有至多一个非零元素的行列式之和。对于每一个这样的行列式考虑排列公式:显然有效的排列是正好在那一行选中了非零元素的那一列的(其他的排列都选到了0,就没有贡献了),去掉选中这个元素的部分,这些排列恰好全部转化为n-1长度的全排列,覆盖了矩阵中所有不在非零元素所在行所在列的元素——那这些是不是可以看作是一个小一点的n-1阶行列式呢?这就是行列式行列展开的原理。

因为这个笔记主要是我复习自用,所以具体形式我就不多写了。

我记得自己两年之前写过一篇行列式值的按行列展开定义与排列定义等价性证明,那个时候觉得自己写了一大堆很厉害,现在一看,虽然比较严谨,但是格局小了。

克拉默法则

克拉默法则提供了一种在形式上求解线性方程的工具,其证明如下:

\left.
\begin{aligned}
A \boldsymbol x &= \boldsymbol b \\
A I &= A
\end{aligned}
\right\}
\Rightarrow 
A \cdot \begin{bmatrix}
1 &0 &\cdots &0 &x_1 &0 &\cdots &0 \\
0 &1 &\cdots &0 &x_2  &0&\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 &0 &\cdots &1 &x_{i-1} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i+1} &1 &\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 & 0 &\cdots &0 &x_n &0 &\cdots &1
\end{bmatrix} = \begin{bmatrix}
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
    \boldsymbol{a_1} &\boldsymbol{a_2} &\cdots  & \boldsymbol{a_{i - 1}} &\boldsymbol b & \boldsymbol{a_{i + 1}} &\cdots &\boldsymbol{a_n} \\
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
\end{bmatrix}
因此,由积的行列式为行列式的积,就有
|A| \cdot \begin{vmatrix}
1 &0 &\cdots &0 &x_1 &0 &\cdots &0 \\
0 &1 &\cdots &0 &x_2  &0&\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 &0 &\cdots &1 &x_{i-1} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i+1} &1 &\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 & 0 &\cdots &0 &x_n &0 &\cdots &1
\end{vmatrix} = \begin{vmatrix}
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
    \boldsymbol{a_1} &\boldsymbol{a_2} &\cdots  & \boldsymbol{a_{i - 1}} &\boldsymbol b & \boldsymbol{a_{i + 1}} &\cdots &\boldsymbol{a_n} \\
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
\end{vmatrix}
而注意到
\begin{vmatrix}
1 &0 &\cdots &0 &x_1 &0 &\cdots &0 \\
0 &1 &\cdots &0 &x_2  &0&\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 &0 &\cdots &1 &x_{i-1} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i} &0 &\cdots &0 \\
0 &0 &\cdots &0 &x_{i+1} &1 &\cdots &0 \\
\vdots &\vdots &\ddots &\vdots &\vdots &\vdots &\ddots  &\vdots \\
0 & 0 &\cdots &0 &x_n &0 &\cdots &1
\end{vmatrix} = x_i
因此就有
x_i = \frac{\begin{vmatrix}
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
    \boldsymbol{a_1} &\boldsymbol{a_2} &\cdots  & \boldsymbol{a_{i - 1}} &\boldsymbol b & \boldsymbol{a_{i + 1}} &\cdots &\boldsymbol{a_n} \\
    \vert &\vert &\cdots &\vert &\vert &\vert &\cdots &\vert\\
\end{vmatrix}}{|A|}
即克拉默法则得证。

行列式体积

行列式的几何意义为:以行列式的行向量为边的高维盒体(box,不知道怎么翻最合适,就是矩形,平行六面体等)的“带号体积”。

为什么?因为这个几何意义是满足行列式的三条根本性质的:

  1. 单位阵的行向量组成的盒体就是单位盒体,体积显然是一。
  2. 交换行列式的行不会改变盒体的形状,所以带号体积的绝对值不变,但符号是改变的(这姑且是带号体积的“定义”吧,带号体积的绝对值就是常规意义下的体积,这是自然的)。
  3. 对行列式一行的向量进行线性拉伸,对应盒体的体积显然也会线性拉伸。把行列式一行的行向量分拆成两个行向量之和……这个似乎有些复杂,在二维的情况下容易画图理解,在高维的情况下类似。

因此,以原点为一个顶点,另外两个顶点为(x_1, y_1), (x_2, y_2)的三角形面积就是

\frac{1}{2}\left|\begin{vmatrix}x_1 &y_1 \\ x_2 &y_2\end{vmatrix}\right|
三个顶点为(x_1,y_2),(x_2,y_2),(x_3, y_3)的三角形面积就是
\frac{1}{2}\left|\begin{vmatrix}x_1 &y_1 & 1\\ x_2 &y_2 &1 \\ x_3 &y_3 &1\end{vmatrix}\right|
上面这个公式可以想象三个三维向量感性理解一波(脑补割补和祖暅原理),也可以通过对1列的展开归约到上式。

三维向量的叉积

两个三维向量的叉积\boldsymbol u \times \boldsymbol v定义为另外一个三维向量,其模为|\boldsymbol u||\boldsymbol v||\sin \theta|,其方向垂直\boldsymbol u, \boldsymbol v。叉积的公式可以通过如下的伪·行列式进行记忆:

\boldsymbol u \times \boldsymbol v = \begin{vmatrix}
    \boldsymbol i &\boldsymbol j &\boldsymbol k \\
    \boldsymbol u_1 &\boldsymbol u_2 &\boldsymbol u_3 \\
    \boldsymbol v_1 &\boldsymbol v_2 &\boldsymbol v_3 \\    
\end{vmatrix}
其中\boldsymbol i = (1, 0, 0), \boldsymbol j = (0, 1, 0), \boldsymbol k = (0, 0, 1)

显然,从上面的行列式形式我们看出叉积具有反对称性:\boldsymbol u \times \boldsymbol v = -\boldsymbol v \times \boldsymbol u

叉积在物理上具有比较重要的应用。

最后,有一种有意思的写法:叉积再点积

(\boldsymbol u \times \boldsymbol v)\cdot \boldsymbol w = \begin{vmatrix}
    \boldsymbol w_1 &\boldsymbol w_2 &\boldsymbol w_3 \\
    \boldsymbol u_1 &\boldsymbol u_2 &\boldsymbol u_3 \\
    \boldsymbol v_1 &\boldsymbol v_2 &\boldsymbol v_3 \\    
\end{vmatrix}