© 2015-2020 Jacob Ström、Kalle Åström 与 Tomas Akenine-Möller

正在加载并构建本章……

第 7 章:行列式





本章将介绍行列式,它是与方阵相联系的一个数。 行列式有许多重要用途。例如,由 $n$ 个方程组成、含 $n$ 个未知量的线性方程组 $\mx{A}\vc{x}=\vc{b}$ 有唯一解,当且仅当 $\mx{A}$ 的行列式不为零。 本章后面还会看到行列式的许多其他用途与解释。
7.1 引言


例 7.1: 基础矩阵
交互式图解 5.2中,我们曾根据一组图像重建若干所谓特征点的三维位置。 同时求出三维点的位置以及相机在各幅图像之间如何运动,是一个很有意思的问题。解决它的第一步,是先弄清只有两幅图像时的情形。一种方法使用所谓的基础矩阵,它刻画两幅图像中对应点之间的关系;下面将用行列式推导这一约束。设给定同一场景的两幅不同图像。左图中坐标为 $(x_1,y_1)$ 的点与右图中坐标为 $(x_2,y_2)$ 的点只有在满足下式时才可能彼此对应:
\begin{equation} \vc{u}_1^\T \mx{F} \vc{u}_2 = 0, \end{equation} (7.1)
其中
\begin{equation} \vc{u}_1 = \begin{pmatrix} x_1\\ y_1\\ 1 \end{pmatrix} \ \ \text{且}\ \ \vc{u}_2 = \begin{pmatrix} x_2\\ y_2\\ 1 \end{pmatrix} \end{equation} (7.2)
其中,$\mx{F}$ 是一个 $3 \times 3$ 矩阵,与两个相机位置之间的相对运动有关。 在本例图示中,$\mx{F}= \left(\begin{array}{ccc} 1.055 & 58.10 & -58.96 \\ 58.60 & -0.044 & -336.0 \\ -55.52 & 228.3 & 110.5 \end{array}\right)$。
交互式图解 7.1: 左图中坐标为 $(x_1,y_1)$ 的点与右图中坐标为 $(x_2,y_2)$ 的点只有在 $\vc{u}_1^\T \mx{F} \vc{u}_2 = 0$ 时才可能彼此对应,其中 $u_1 = (x_1,y_1,1)$,$u_2 = (x_2,y_2,1)$。试着移动图像中的点,使它们相互对应。图像由隆德大学 Carl Olsson 提供。
交互式图解 7.1: 左图中坐标为 $\hid{(x_1,y_1)}$ 的点与右图中坐标为 $\hid{(x_2,y_2)}$ 的点只有在 $\hid{\vc{u}_1^\T \mx{F} \vc{u}_2 = 0}$ 时才可能彼此对应,其中 $\hid{u_1 = (x_1,y_1,1)}$,$\hid{u_2 = (x_2,y_2,1)}$。试着移动图像中的点,使它们相互对应。图像由隆德大学 Carl Olsson 提供。
$\vc{u}_1 = \left(\begin{array}{l} \hid{0..9} \\ \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{0..} \\ \hid{1} \\ \hid{1} \end{array}\right)$
$\vc{u}_2 = \left(\begin{array}{l} \hid{0..9} \\ \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{0..} \\ \hid{1} \\ \hid{1} \end{array}\right)$
$\vc{u}_1^\T \mx{F} \vc{u}_2 = $


行列式是一个把矩阵 $\mx{A}$ 映射为数值 $\det(\mx{A})$ 的函数。后面将看到,行列式可以由三个简单性质定义。不过在深入细节之前,我们先考察一维、二维和三维情形下行列式的显式表达式。 对于 $1 \times 1$ 矩阵,
\begin{equation} \mx{A} = \left( \begin{array}{r} a \end{array} \right) \end{equation} (7.3)
行列式就是 $\det(\mx{A}) = a$。 它表示向量的带符号长度
\begin{equation} \vc{a} = \left( \begin{array}{r} a \end{array} \right) . \end{equation} (7.4)
不难看出,当 $\det(\mx{A}) = a \neq 0$ 时,方程 $ \mx{A} \vc{x} = \vc{b} $ 有唯一解。 当行列式为零且 $\vc{b} \neq \vc{0}$ 时,方程可能无解。 以 $1\times 1$ 矩阵为例,此时方程简化为 $ax=b$;若 $a=0$,方程 $a x = 3$ 就无解。 若 $b = 0$,方程变成 $0 x = 0$,因而有无穷多个解 $x$。

对于 $2 \times 2$ 矩阵
\begin{equation} \mx{A} = \left( \begin{array}{rr} a_{11} & a_{12} \\ a_{21} & a_{22} \\ \end{array} \right) \end{equation} (7.5)
行列式为 $\det(\mx{A}) = a_{11} a_{22} - a_{12} a_{21}$。 行列式有时用左右各一条竖线括起,因此上式也写作
\begin{equation} \det(\mx{A}) = \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix} = a_{11} a_{22} - a_{12} a_{21} . \end{equation} (7.6)
若把两列看作平面中两个向量的坐标,即
\begin{equation} \mx{A} = \begin{pmatrix} \vc{a}_{,1} & \vc{a}_{,2} \end{pmatrix} \end{equation} (7.7)
那么行列式就是 $\vc{a}_{,1}$ 与 $\vc{a}_{,2}$ 所张成平行四边形的带符号面积。 回忆定义 6.2中的列向量与行向量记法。 交互式图解 7.2直观展示了这一点。 若两个向量具有正(负)定向,行列式的符号就是正(负);图中相应以绿色(红色)平行四边形表示。试着在图示中改变行列式的符号。
交互式图解 7.2: 在这幅交互式图解中,我们把 $2\times 2$ 矩阵 $\mx{A}$ 表示成它的两个列向量 $\vc{a}_{,1}$ 和 $\vc{a}_{,2}$,即 $\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$. 图中的列向量可以移动。
交互式图解 7.2: 在这幅交互式图解中,我们把 $\hid{2\times 2}$ 矩阵 $\hid{\mx{A}}$ 表示成它的两个列向量 $\hid{\vc{a}_{,1}}$ 和 $\hid{\vc{a}_{,2}}$,即 $\hid{\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)}$. 图中的列向量可以移动。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\det(\mx{A})=$


对于 $3 \times 3$ 矩阵
\begin{equation} \mx{A} = \left( \begin{array}{rr} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33} \end{array} \right) \end{equation} (7.8)
行列式为 $\det(\mx{A}) = a_{11} a_{22} a_{33} + a_{12} a_{23} a_{31} + a_{13} a_{21} a_{32} - a_{11} a_{23} a_{32} - a_{12} a_{21} a_{33} - a_{13} a_{22} a_{31}$。 若把三列看作空间中三个向量的坐标,即
\begin{equation} \mx{A} = \left( \begin{array}{rrr} \vc{a}_{,1} & \vc{a}_{,2} & \vc{a}_{,3} \end{array} \right) \end{equation} (7.9)
那么行列式就是 $\vc{a}_1$、$\vc{a}_2$ 与 $\vc{a}_3$ 所张成平行六面体的体积。 交互式图解 7.3直观展示了 $\vc{a}_{,1}$、$\vc{a}_{,2}$ 与 $\vc{a}_{,3}$ 所张成平行六面体的体积。
交互式图解 7.3: 这里展示 $3\times 3$ 矩阵 $\mx{A}$ 的三个列向量:$\textcolor{#aa0000}{\vc{a}_{,1}}$、 $\textcolor{#00aa00}{\vc{a}_{,2}}$, 以及 $\textcolor{#0000aa}{\vc{a}_{,3}}$。 图中的灰色虚线只用于帮助辨认向量在三维空间中的位置。 不妨把移动向量作为一道练习,例如尝试让它们组成单位矩阵 $\Bigl( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{smallmatrix} \Bigr)$。 回忆一下:可以按住鼠标右键并移动鼠标来改变观察视角,也可以在平板电脑上用两根手指滑动。仅凭一个视角很难判断平行六面体的体积。试着改变向量,使行列式为零,但不要让任何向量的长度变为零。然后旋转视角:这些向量看起来是否位于同一平面内?
交互式图解 7.3: 这里展示 $\hid{3\times 3}$ 矩阵 $\hid{\mx{A}}$ 的三个列向量:$\hid{\textcolor{#aa0000}{\vc{a}_{,1}}}$、 $\hid{\textcolor{#00aa00}{\vc{a}_{,2}}}$, 以及 $\hid{\textcolor{#0000aa}{\vc{a}_{,3}}}$。 图中的灰色虚线只用于帮助辨认向量在三维空间中的位置。 不妨把移动向量作为一道练习,例如尝试让它们组成单位矩阵 $\hid{\Bigl( \begin{smallmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{smallmatrix} \Bigr)}$。 回忆一下:可以按住鼠标右键并移动鼠标来改变观察视角,也可以在平板电脑上用两根手指滑动。仅凭一个视角很难判断平行六面体的体积。试着改变向量,使行列式为零,但不要让任何向量的长度变为零。然后旋转视角:这些向量看起来是否位于同一平面内?
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\textcolor{#0000aa}{\vc{a}_{,3}}$
$\det(\mx{A})=$
7.2 定义


下面稍微简化记法:矩阵 $\mx{A}$ 的列向量 $\vc{a}_{,i}$ 也记作 $\vc{a}_i$。 行列式可以有多种定义方式。 采用哪一种定义只是技术上的选择,所得结果相同。 这里用三个基本性质来定义一般 $n \times n$ 矩阵 $\mx{A}$ 的行列式。

定义 7.1: 行列式
行列式 $\det$ 是定义在方阵 $\mx{A}$ 上的标量函数,并满足以下三个性质:
\begin{equation} \begin{array}{llr} (i) & \det( \mx{I}) = 1 & \spc\text{(单位矩阵的行列式)} \\ (ii) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_i & \ldots \end{vmatrix} = 0 & \spc\text{(两列相同时为零)} \\ (iii) & \begin{vmatrix} \ldots & \lambda_1 \vc{a}_1 + \lambda_2 \vc{a}_2 & \ldots \end{vmatrix} = \lambda_1 \begin{vmatrix} \ldots & \vc{a}_1 & \ldots \end{vmatrix} + \lambda_2 \begin{vmatrix} \ldots & \vc{a}_2 & \ldots \end{vmatrix} & \spc\text{(对每一列都是线性的)} \\ \end{array} \end{equation} (7.10)
可以证明,满足这三个性质的函数存在且唯一。 行列式存在性与唯一性的证明较为技术化,相比行列式本身的性质并非重点。 为避免遮蔽主线,我们把这些证明留到第 7.3 节。 由这三个基本性质还能推出许多有用的性质,现汇总于定理 7.1

定理 7.1: 行列式的性质
\begin{equation} \begin{array}{llr} (iv) & \begin{vmatrix} \ldots & \vc{0} & \ldots \end{vmatrix} = 0 & \spc\text{(有一列为零时为零)} \\ (v) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} = - \begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_i & \ldots \end{vmatrix} & \spc\text{(交换两列)} \\ (vi) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} = \begin{vmatrix} \ldots & \vc{a}_i+\lambda \vc{a}_j & \ldots & \vc{a}_j & \ldots \end{vmatrix} & \spc\text{(把一列的倍数加到另一列)} \\ (vii) & \det( \mx{A}) = \det( \mx{A}^\T) & \spc\text{(转置)} \\ (viii) & \det( \mx{A} \mx{B}) = \det( \mx{A}) \det( \mx{B}) & \spc\text{(乘积)} \\ (ix) & \det( \mx{A}^{-1}) = \frac{1}{\det( \mx{A})} & \spc\text{(逆矩阵)} \\ \end{array} \end{equation} (7.11)

性质 $(iv)$ 由线性性质(定义中的性质 $(iii)$)直接推出。 在性质 $(iii)$ 中令 $\lambda_2 = 0$,得到
\begin{equation} \begin{vmatrix} \ldots & \lambda_1 \vc{a}_1 & \ldots \end{vmatrix} = \lambda_1 \begin{vmatrix} \ldots & \vc{a}_1 & \ldots \end{vmatrix} \end{equation} (7.12)
由于零向量 $\vc{0}$ 可以写成标量 $0$ 与任意非零向量 $\vc{a_1}$ 的乘积,因此
\begin{equation} \begin{vmatrix} \ldots & \vc{0} & \ldots \end{vmatrix} = \begin{vmatrix} \ldots & 0\ \vc{a}_1 & \ldots \end{vmatrix} = 0 \ \begin{vmatrix} \ldots & \vc{a}_1 & \ldots \end{vmatrix} = 0. \end{equation} (7.13)
性质 $(v)$ 可证明如下。构造行列式
\begin{equation} \begin{vmatrix} \ldots & \vc{a}_i + \vc{a}_j & \ldots & \vc{a}_i + \vc{a}_j & \ldots \end{vmatrix} , \end{equation} (7.14)
它有两列相同,所以等于零。利用行列式对每一列的线性性,得到
\begin{equation} \begin{array}{ll} 0 = & \begin{vmatrix} \ldots & \vc{a}_i + \vc{a}_j & \ldots & \vc{a}_i + \vc{a}_j & \ldots \end{vmatrix} = \\ & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_i & \ldots \end{vmatrix} + \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} + \\ + & \begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_i & \ldots \end{vmatrix} + \begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_j & \ldots \end{vmatrix} . \end{array} \end{equation} (7.15)
其中首项与末项都有两列相同,因而均为零。于是
\begin{equation} 0 = \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} + \begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_i & \ldots \end{vmatrix} , \end{equation} (7.16)
这就证明了性质 $(v)$。 性质 $(vi)$ 可证明如下。 利用线性性可得
\begin{equation} \begin{array}{ll} & \begin{vmatrix} \ldots & \vc{a}_i + \lambda \vc{a}_j & \ldots & \vc{a}_j & \ldots \end{vmatrix} = \\ & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} + \lambda \begin{vmatrix} \ldots & \vc{a}_j & \ldots & \vc{a}_j & \ldots \end{vmatrix} = \\ & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_j & \ldots \end{vmatrix} \end{array} , \end{equation} (7.17)
这就证明了性质 $(vi)$。 性质 $(vii)$、$(viii)$ 与 $(ix)$ 留待后文证明。
$\square$


乍看之下,性质 $(vi)$ 似乎有悖直觉:行列式与列向量张成的面积或体积有关,而给一个列向量加上另一个向量的倍数会使它变长。既然一个向量变长了,面积为何仍保持不变?交互式图解 7.4解释了其中原因。
交互式图解 7.4: 这幅交互式图解展示:把一个列向量的倍数加到另一个列向量上时,两列所张成的面积会怎样变化。第一步中的矩阵 $\mx{A} = \bigl(\textcolor{#0000aa}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$ 由两个列向量 $\textcolor{#0000aa}{\vc{a}_{,1}}$ 与 $\textcolor{#00aa00}{\vc{a}_{,2}}$ 组成。两列所张成的面积以蓝色标出。
交互式图解 7.4: 对第二个矩阵 $\hid{\mx{A'} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1} + \lambda \vc{a}_{,2}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)}$,第一列等于原第一列加上第二列的 $\hid{\lambda}$ 倍,而第二列保持不变。$\hid{\mx{A'}}$ 两列张成的面积以粉色标出(与蓝色区域重叠处为紫色)。用滑块增大 $\hid{\lambda}$ 时,向量 $\hid{\textcolor{#aa0000}{\vc{a}_{,1} + \lambda \vc{a}_{,2}}}$ 会变长,但平行四边形的剪切程度也随之增大,恰好抵消长度增长,因此面积保持不变。注意,不重叠部分的粉色三角形与蓝色三角形完全一致。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#0000aa}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\det(\mx{A})=$
$\lambda=$
$\lambda \vc{a}_{,2}$
$\textcolor{#aa0000}{\vc{a}_{,1} + \lambda \vc{a}_{,2}}$
$\det(\mx{A'})=$
$\mx{A'} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
利用以上定义和规则便可计算行列式。下面看一个例子。

例 7.2:
求下列行列式:
\begin{equation} \begin{vmatrix} 1 & 23 & 2 \\ 5 & 12 & 10 \\ 4 & 72 & 8 \end{vmatrix} ? \end{equation} (7.18)
注意第三列是 $(1,5,4)$ 的两倍。利用行列式对第三列的线性性,有
\begin{equation} \begin{vmatrix} 1 & 23 & 2 \\ 5 & 12 & 10 \\ 4 & 72 & 8 \end{vmatrix} = 2 \begin{vmatrix} 1 & 23 & 1 \\ 5 & 12 & 5 \\ 4 & 72 & 4 \end{vmatrix} . \end{equation} (7.19)
最后一个行列式有两列相同,因此
\begin{equation} \begin{vmatrix} 1 & 23 & 2 \\ 5 & 12 & 10 \\ 4 & 72 & 8 \end{vmatrix} = 2 \begin{vmatrix} 1 & 23 & 1 \\ 5 & 12 & 5 \\ 4 & 72 & 4 \end{vmatrix} = 0 . \end{equation} (7.20)
7.3 排列与行列式


本节将证明:确实存在满足 定义 7.1中各项性质的函数,而且这样的函数唯一;同时还会给出计算行列式的公式。为完成证明,需要先引入 $n$ 个数的排列这一概念。 排列的核心思想其实很简单;对一般 $2 \times 2$ 矩阵应用性质 $(i)$–$(vi)$,最能说明问题。

例 7.3:
考察一般 $2 \times 2$ 矩阵的行列式
\begin{equation} \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} . \end{equation} (7.21)
由于第一列可以写成如下线性组合
\begin{equation} \begin{bmatrix} a_{11} \\ a_{21} \end{bmatrix} = a_{11} \begin{bmatrix} 1 \\ 0 \end{bmatrix} + a_{21} \begin{bmatrix} 0 \\ 1\end{bmatrix} \end{equation} (7.22)
由行列式对第一列的线性性可得
\begin{equation} \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} = a_{11} \begin{vmatrix} 1 & a_{12}\\ 0 & a_{22} \end{vmatrix} + a_{21} \begin{vmatrix} 0 & a_{12}\\ 1 & a_{22} \end{vmatrix} . \end{equation} (7.23)
对第二列使用同样的方法,得到
\begin{equation} \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} = a_{11} \left (a_{12} \underbrace{\begin{vmatrix} 1 & 1\\ 0 & 0 \end{vmatrix}}_{0} + a_{22}\underbrace{\begin{vmatrix} 1 & 0\\ 0 & 1 \end{vmatrix}}_{1} \right )+ a_{21} \left( a_{12}\underbrace{\begin{vmatrix} 0 & 1\\ 1 & 0 \end{vmatrix}}_{-1} + a_{22} \underbrace{\begin{vmatrix} 0 & 0\\ 1& 1 \end{vmatrix}}_{0} \right). \end{equation} (7.24)
上式中的第一个和最后一个行列式都有两列相同,因而等于零。 根据定义中的性质 (i),第二个行列式等于 $1$。第三个行列式等于 $-1$,因为
\begin{equation} \begin{vmatrix} 0 & 1\\ 1 & 0 \end{vmatrix} = - \begin{vmatrix} 1 & 0\\ 0 & 1 \end{vmatrix} = -1 , \end{equation} (7.25)
这里先用性质 $(v)$ 交换两列,再使用性质 $(i)$。 因此,行列式的定义给出
\begin{equation} \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} = a_{11} a_{22} - a_{21} a_{12} , \end{equation} (7.26)
这与前面给出的表达式一致。
本例通过依次展开各列来计算 $2 \times 2$ 行列式。 对一般 $n \times n$ 矩阵作同样处理,便可得到行列式的显式表达式。 用 $n$ 个数的排列这一概念,可以最简洁地写出该表达式。

定义 7.2:
$n$ 个元素的一个排列 $p$,是集合 $\{ 1, 2, \ldots, n \}$ 到自身的双射。
排列 $p$ 由它在集合中各元素上的作用确定,也就是由 $p(1), p(2), \ldots, p(n)$ 确定。 由于 $p$ 是双射,$\{ 1, 2, \ldots, n \}$ 中的每个数在序列 $p(1), p(2), \ldots, p(n)$ 中恰好出现一次。 换言之,这些数被重新排序了。有时记作 $p = [p(1), p(2), \ldots, p(n)]$。

定义 7.3:
只交换两个元素而保持其余元素不变的排列,称为对换。

例 7.4:
排列 $p = [1\ 2\ 4\ 3]$ 是一个对换,因为元素 $3$ 与 $4$ 交换了位置,而其余元素 $1$ 与 $2$ 保持不变。

定义 7.4:
排列的逆 $p^{-1}$,定义为相应双射的逆函数。

例 7.5:
设 $p = [2\ 3\ 4\ 1]$ 是 $4$ 个数的一个排列,即 $p = [p(1)\ p(2)\ p(3)\ p(4)] = [2\ 3\ 4\ 1]$。求逆排列 $p^{-1}$。由 $p(1)=2$ 得 $p^{-1}(2) = 1$,因此 $p^{-1} = [?\ 1\ ?\ ?]$。由 $p(2)=3$ 得 $p^{-1}(3)=2$,所以 $p^{-1} = [?\ 1\ 2\ ?]$。同理,$p(3)=4$ 与 $p(4)=1$ 分别给出 $p^{-1}(4)=3$ 和 $p^{-1}(1)=4$。故 $p^{-1} = [4\ 1\ 2\ 3]$。
若 $p$ 是 $n$ 个元素的排列,则共有 ${n \choose 2}$ 个数对 $(p(i),p(j))$。其中一些数对的次序正确,即 $(p(i),p(j))$ 与 $(i,j)$ 的先后顺序相同。反之,若 $(p(i),p(j))$ 相对于 $(i,j)$ 的顺序颠倒,则称该数对为一个逆序

定义 7.5:
这里的 ${n \choose 2}$ 是二项式系数,一般地,${n \choose k} = \frac{n!}{k! (n-k)!}$。二项式系数的一个重要性质是:从含 $n$ 个元素的集合中选取 $k$ 个元素,共有 ${n \choose k}$ 种方法。

定义 7.6:
若一个排列的逆序数为偶数,则称其为偶排列;若逆序数为奇数,则称其为奇排列

定义 7.7:
排列 $p$ 的符号记作 $\sigma(p)$,定义为
\begin{equation} \sigma(p) = \begin{cases} +1 &\mbox{若 $p$ 为偶排列} \\ -1 &\mbox{若 $p$ 为奇排列} . \end{cases} \end{equation} (7.27)

定理 7.2: 排列符号的性质
对排列有
\begin{equation} \begin{array}{llr} (i) & \sigma(p) = \sigma(p^{-1}) & \\ (ii) & \sigma(p \circ q) = \sigma(p) \sigma(q)& \\ (iii) & \sigma(p) = -1 & \spc\text{(若 $p$ 为对换)} \end{array} \end{equation} (7.28)
这里用 $\circ$ 表示复合,即 $p \circ q$ 表示先按 $q$ 排列,再按 $p$ 排列所得的排列。(更一般地,复合用于组合两个函数。复合函数 $f = g \circ h$ 满足 $f(x) = g(h(x))$,也就是先应用 $h$,再对结果应用 $g$。) $n$ 个元素的排列 $p$ 可以表示成一个 $n \times n$ 矩阵 $\mx{E}_p$:除位置 $(p(1),1), (p(2),2), \ldots, (p(n),n)$ 上的元素取 $1$ 外,其余元素全为零。$\mx{E}_p$ 的行列式特别容易计算,有 $\det(\mx{E}_p) = \sigma(p)$。 现在可以给出一般维数下行列式显式公式的定理。

定理 7.3:
$n \times n$ 矩阵 $\mx{A}$ 的行列式为
\begin{equation} \det(\mx{A}) = \sum_p \sigma(p) a_{p(1),1} a_{p(2),2} \ldots a_{p(n),n} , \end{equation} (7.29)
其中求和遍历所有排列 $p$,$\sigma(p)$ 表示排列 $p$ 的符号。

若对一般 $n \times n$ 矩阵作与例 7.3相同的展开,则每展开一列,项数都会变为原来的 $n$ 倍。把 $n$ 列全部展开后,行列式将表示为 $n^n$ 项之和。其中一些项因有两列相同而为零;例 7.3 的四项中,第一项与最后一项就是如此。去掉这些零项后得到
\begin{equation} \det(\mx{A}) = \sum_p a_{p(1),1} a_{p(2),2} \ldots a_{p(n),n} \det(\mx{E}_p), \end{equation} (7.30)
其中求和遍历 $n$ 个数的全部 $n!$ 个排列 $p$。 因此,若存在满足条件 $(i)$、$(ii)$、$(iii)$ 的函数,它必可写成
\begin{equation} \det(\mx{A}) = \sum_p a_{p(1),1} a_{p(2),2} \ldots a_{p(n),n} \sigma(p). \end{equation} (7.31)
要完成证明,还需说明上式满足条件 $(i)$、$(ii)$、$(iii)$。 上式对每一列都是线性的,因为它是若干项之和,且每一项都对每一列线性,故满足 $(i)$。当矩阵为单位矩阵 $\mx{I}$ 时,上式等于一,故满足 $(ii)$。只需再证明 $(iii)$:若有两列相同,该函数为零。 不失一般性,设相同的两列为第 $1$ 列和第 $2$ 列。对每个排列 $p = [p(1), p(2), p(3), \ldots, p(n)]$,都有另一个排列 $q = [p(2), p(1), p(3), \ldots, p(n)]$,它由交换前两个元素所得,并且 $\sigma(p) = -\sigma(q)$。上式可按如下成对项求和:
\begin{equation} a_{p(1),1} a_{p(2),2} \ldots a_{p(n),n} \sigma(p) + a_{p(2),1} a_{p(1),2} \ldots a_{p(n),n} \sigma(q) . \end{equation} (7.32)
由于第 1、2 列相同,且 $\sigma(p) = -\sigma(q)$,每一对这样的项都等于零:
\begin{equation} a_{p(1),1} a_{p(2),2} \ldots a_{p(n),n} \sigma(p) - a_{p(2),2} a_{p(1),1} \ldots a_{p(n),n} \sigma(p) = 0 . \end{equation} (7.33)
至此证明了:满足性质 $(i)$、$(ii)$、$(iii)$ 的函数存在且唯一,并且该函数 $\det$ 由式 (7.29)给出。
$\square$


因此,与前例一致,$1$、$2$、$3$ 阶行列式分别包含 $1$、$2$、$6$ 项。 $2 \times 2$ 行列式有一种容易记忆的图式:写出矩阵并想象一个交叉,先将一条对角线上的元素相乘,再减去另一条对角线上的元素之积,如下所示。
\begin{equation} \begin{array}{cccccc} \!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! + & \,\,\,\,\,\,\,\,\,\,\,\, \,\,\,\,\, - \\ \!\!\!\!\!\!\!\!\!\! \searrow & \,\,\,\,\,\,\,\, \swarrow \\ a_{11} & a_{12}\\ a_{21} & a_{22} \end{array}, \end{equation} (7.34)
也就是 $a_{11} a_{22} - a_{21} a_{12}$。 对于 $3 \times 3$ 矩阵,也有一种帮助记忆行列式的图式。按下图把矩阵的三列 $\vc{a}_1$、$\vc{a}_2$、$\vc{a}_3$ 连写两遍:
\begin{equation} \begin{array}{cccccc} \!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!+ &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! + &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! + &\,\,\,\,\,\,\,\,\,\,\,\, - &\,\, - & - \\ \!\!\!\!\!\!\!\!\!\!\searrow &\!\!\!\!\!\!\!\!\! \searrow &\!\!\!\!\!\!\!\!\!\! \searrow & \!\swarrow &\!\!\!\!\!\!\!\!\! \swarrow &\!\!\!\!\!\!\!\!\!\!\! \swarrow \\ a_{11} & a_{12} & a_{13} &\!\!\!\!\!\!\!\!\! a_{11} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{12} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{13} \\ a_{21} & a_{22} & a_{23} &\!\!\!\!\!\!\!\!\! a_{21} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{22} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{23} \\ a_{31} & a_{32} & a_{33} &\!\!\!\!\!\!\!\!\! a_{31} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{32} &\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\! a_{33} \\ \end{array} \end{equation} (7.35)
即 $+a_{11}a_{22}a_{33} +a_{12}a_{23}a_{31} +a_{13}a_{21}a_{32} -a_{11}a_{23}a_{32} -a_{12}a_{21}a_{33} -a_{13}a_{22}a_{31}$。 但要注意,阶数更高的矩阵没有类似的简单图式;例如,$4 \times 4$ 行列式就没有这样简便的计算规律。 项数也会迅速增长:$4 \times 4$ 行列式有 $24$ 项,$5 \times 5$ 行列式有 $120$ 项。
7.4 转置、乘法与求逆


本节介绍关于转置矩阵、矩阵乘积和逆矩阵之行列式的若干定理。

定理 7.4:
转置不改变矩阵的行列式,即
\begin{equation} \det(\mx{A}) = \det(\mx{A}^\T) . \end{equation} (7.36)

对于矩阵 $\mx{A}=[a_{ij}]$,其转置矩阵为 $\mx{A}^\T = [b_{ij}]$,其中 $b_{ij}=a_{ji}$。根据定理 7.3,有
\begin{equation} \det(\mx{A}^T) = \sum_{p} b_{p(1),1} b_{p(2),2} \ldots b_{p(n),n} \sigma(p) = \sum_{p} a_{1,p(1)} a_{2,p(2)} \ldots a_{n,p(n)} \sigma(p) . \end{equation} (7.37)
每一项都可以重新排列成 $a_{1,p(1)} a_{2,p(2)} \ldots a_{n,p(n)} = a_{q(1),1} a_{q(2),2} \ldots a_{q(n),n}$, 其中 $q = p^{-1}$。 又由定理 7.2可知 $\sigma(p) = \sigma(p^{-1}) = \sigma(q)$,因此
\begin{equation} \det(\mx{A}^\T) = \sum_{p} a_{1,p(1)} a_{2,p(2)} \ldots a_{n,p(n)} \sigma(p) = \sum_{q} a_{q(1),1} a_{q(2),2} \ldots a_{q(n),n} \sigma(q) = \det{\mx{A}} , \end{equation} (7.38)
证毕。
$\square$


定理 7.5:
矩阵乘积的行列式等于相应行列式的乘积,即
\begin{equation} \det(\mx{A} \mx{B}) = \det(\mx{A}) \det(\mx{B}). \end{equation} (7.39)

矩阵乘积 $\mx{A} \mx{B}$ 可以写成
\begin{equation} \mx{A} \mx{B} = \begin{pmatrix} \mx{A} \vc{b}_1 & \mx{A} \vc{b}_2 & \ldots & \mx{A} \vc{b}_n \end{pmatrix} , \end{equation} (7.40)
其中 $\vc{b}_j$ 是矩阵 $\mx{B}$ 的第 $j$ 列。 现在考察乘积 $\mx{A} \mx{B}$ 的每一列 $\mx{A} \vc{b}_j$。每一列 $\mx{A} \vc{b}_j$ 都是 $\mx{A}$ 的各列 $\vc{a}_i$ 的线性组合:
\begin{equation} \mx{A} \vc{b}_j = \sum_i \vc{a}_i b_{ij}, \end{equation} (7.41)
其中 $\vc{a}_i$ 是矩阵 $\mx{A}$ 的第 $i$ 列。 由于行列式关于每一列都是线性的,故
\begin{equation} \det(\mx{A} \mx{B}) = \det( \begin{pmatrix} \sum_i b_{i1} \vc{a}_i & \sum_i b_{i2} \vc{a}_i & \ldots \sum_i b_{in} \vc{a}_i \end{pmatrix} = \sum_p b_{p(1),1} b_{p(2),2} \cdot b_{p(n),n} \det( \begin{pmatrix} \vc{a}_{p(1)} & \vc{a}_{p(2)} & \ldots \vc{a}_{p(n)} \end{pmatrix} ). \end{equation} (7.42)
若其中两列相同,求和式中的相应行列式便为零。因此,只有 $p$ 为排列时的项才有贡献。重新排列各列后可得
\begin{equation} \det ( \begin{pmatrix} \vc{a}_{p(1)} & \vc{a}_{p(2)} & \ldots & \vc{a}_{p(n)} \end{pmatrix} ) = \sigma(p) \det{\mx{A}} . \end{equation} (7.43)
于是
\begin{equation} \det(\mx{A} \mx{B}) = \sum_p b_{p(1),1} b_{p(2),2} \cdot b_{p(n),n} \sigma(p) \det(\mx{A}) = \det(\mx{A}) \det(\mx{B}) , \end{equation} (7.44)
定理得证。
$\square$


利用定理 7.5,可以证明下面这个有用的结论。

定理 7.6:
逆矩阵的行列式等于原矩阵行列式的倒数,即
\begin{equation} \det(\mx{A}^{-1}) = \frac{1}{\det(\mx{A})}. \end{equation} (7.45)

对恒等式 $\mx{A} \mx{A}^{-1} = \mx{I}$ 应用定理 7.5,得到
\begin{equation} \det( \mx{A} \mx{A}^{-1} ) = \det( \mx{A} )\det( \mx{A}^{-1} ) = \det( \mx{I} ) = 1 \end{equation} (7.46)
从而证明
\begin{equation} \det(\mx{A}^{-1}) = \frac{1}{\det(\mx{A})}. \end{equation} (7.47)
$\square$


交互式图解 7.5针对 $2\times 2$ 矩阵展示了定理 7.6。 例如,若让 $\mx{A}$ 对应的平行四边形面积变小,则 $\mx{A}^{-1}$ 对应的平行四边形面积会变大,反之亦然。
交互式图解 7.5: 在这个交互式图解中,我们把 $2\times 2$ 矩阵 $\mx{A}$ 形象地表示为组成它的两个列向量 $\vc{a}_{,1}$ 和 $\vc{a}_{,2}$,即 $\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$. 图中的 $\textcolor{#aa0000}{\vc{a}_{,1}}$ 和 $\textcolor{#00aa00}{\vc{a}_{,2}}$ 都可以移动。 回想一下,平行四边形的面积本质上就是矩阵行列式的绝对值。 根据定理 7.6,$\mx{A}$ 的平行四边形变大时,其逆矩阵的平行四边形会变小,反之亦然。
交互式图解 7.5: 在这个交互式图解中,我们把 $\hid{2\times 2}$ 矩阵 $\hid{\mx{A}}$ 形象地表示为组成它的两个列向量 $\hid{\vc{a}_{,1}}$ 和 $\hid{\vc{a}_{,2}}$,即 $\hid{\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)}$. 图中的 $\hid{\textcolor{#aa0000}{\vc{a}_{,1}}}$ 和 $\hid{\textcolor{#00aa00}{\vc{a}_{,2}}}$ 都可以移动。 回想一下,平行四边形的面积本质上就是矩阵行列式的绝对值。 根据定理 7.6,$\hid{\mx{A}}$ 的平行四边形变大时,其逆矩阵的平行四边形会变小,反之亦然。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\mx{A}^{-1} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
7.5 按列展开


本节先定义余子式:它是由方阵计算得到的一个标量。

定义 7.8: 余子式
设 $\mx{A}$ 是一个 $n \times n$ 矩阵。删去 $\mx{A}$ 的第 $i$ 行和第 $j$ 列后,会得到一个 $(n-1) \times (n-1)$ 矩阵;它的行列式称为余子式,记作 $D_{ij}$。
这些行列式通常称为矩阵的余子式,也称一阶余子式。

例 7.6:
设矩阵 $\mx{A}$ 为
\begin{equation} \mx{A} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ 7 & 8 & 9 \end{pmatrix} . \end{equation} (7.48)
求 $D_{1,2}$ 和 $D_{3,1}$。 删去第 $1$ 行和第 $2$ 列即可得到 $D_{1,2}$,因此
\begin{equation} D_{1,2} = \det \begin{pmatrix} 4 & 6\\ 7 & 9 \end{pmatrix} . \end{equation} (7.49)
删去第 $3$ 行和第 $1$ 列即可得到 $D_{3,1}$,因此
\begin{equation} D_{3,1} = \det \begin{pmatrix} 2 & 3 \\ 5 & 6 \end{pmatrix} . \end{equation} (7.50)

定理 7.7: 按行或按列展开
$n \times n$ 矩阵 $\mx{A}$ 的行列式可按第 $i$ 行展开计算:
\begin{equation} \det(\mx{A}) = \sum_j (-1)^{i+j} a_{ij} D_{ij} . \end{equation} (7.51)
也可以按第 $j$ 列展开计算:
\begin{equation} \det(\mx{A}) = \sum_i (-1)^{i+j} a_{ij} D_{ij} . \end{equation} (7.52)

$\mx{A}$ 的第 $j$ 列可以写成如下线性组合
\begin{equation} \vc{a}_{,j} = a_{1j} \vc{i}_1 + a_{2j} \vc{i}_2 + \ldots + a_{nj} \vc{i}_n \end{equation} (7.53)
其中 $\vc{i}_1, \ldots, \vc{i}_n$ 是标准,$\vc{i}_j$ 的第 $j$ 个分量为 $1$,其余分量均为 $0$。 利用行列式的线性性质(定理 7.1中的性质 $(iii)$),可将行列式写成
\begin{equation} \det(\mx{A}) = \sum_k a_{kj} \det(\mx{B}_k) , \end{equation} (7.54)
其中 $\mx{B}_i$ 除第 $j$ 列被替换为 $\vc{i}_i$ 外,与 $\mx{A}$ 完全相同。 经过 $i-1$ 次行交换和 $j-1$ 次列交换,可得 $\det(\mx{B}_i) = (-1)^{i+j} \det(\mx{C}_i)$, 其中
\begin{equation} \mx{C}_i = \begin{pmatrix} 1 & 0\\ 0 & D_{ij} \end{pmatrix} . \end{equation} (7.55)
要完成证明,只需说明 $\det(\mx{C}_i) = \det(D_{ij})$。 根据定理 7.3,有
\begin{equation} \det(\mx{C}_i) = \sum_p c_{p(1),1} c_{p(2),2} \ldots c_{p(n),n} \sigma(p). \end{equation} (7.56)
由于第一列从第 $2$ 行到第 $n$ 行均为零,只有满足 $p(1)=1$ 的排列会对求和产生贡献。因此
\begin{equation} \det(\mx{C}_i) = \sum_{p,p(1)=1} c_{p(1),1} c_{p(2),2} \ldots c_{p(n),n} \sigma(p) = \sum_{p,p(1)=1} c_{p(2),2} \ldots c_{p(n),n} \sigma(p) = \sum_{q} d_{q(1),1} \ldots d_{q(n-1),n-1} \sigma(q) = \det{(D_{ij})} . \end{equation} (7.57)
再由 $\det(\mx{A}) = \det(\mx{A}^\T)$,即可从按列展开的结论得到按行展开的证明。
$\square$


例 7.7:
计算
\begin{equation} \begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ 7 & 8 & 9 \end{vmatrix} \end{equation} (7.58)
先按第 $1$ 行展开:
\begin{equation} \begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ 7 & 8 & 9 \end{vmatrix} = 1 \begin{vmatrix} 5 & 6\\ 8 & 9 \end{vmatrix} - 2 \begin{vmatrix} 4 & 6\\ 7 & 9 \end{vmatrix} +3 \begin{vmatrix} 4 & 5 \\ 7 & 8 \end{vmatrix} = 1 (45-48) - 2 (36-42) + 3 (32-35) = -3 + 12 - 9 = 0 \end{equation} (7.59)
再按第 $2$ 列展开计算同一个行列式:
\begin{equation} \begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ 7 & 8 & 9 \end{vmatrix} = -2 \begin{vmatrix} 4& 6\\ 7 & 9 \end{vmatrix} +5 \begin{vmatrix} 1 & 3\\ 7 & 9 \end{vmatrix} -8 \begin{vmatrix} 1 & 3 \\ 4 & 6 \end{vmatrix} = -2 (36-42) +5 (9-21) -8 (6-12) = 12 -60 +48 = 0. \end{equation} (7.60)
当某一行或某一列含有许多零时,沿该行或该列展开尤为方便。下面的例子说明了这一点。

例 7.8:
计算
\begin{equation} \begin{vmatrix} 1 & 2 & 3 & 3 & \pi \\ 4 & 5 & 0 & 4 & -912\\ 0 & 0 & 0 & 0 & 1 \\ 7 & 8 & 0 & 5 & -\pi^2 \\ 0 & 2 & 0 & 0 & 77 \end{vmatrix}. \end{equation} (7.61)
先按第 $3$ 行展开,得到
\begin{equation} \begin{vmatrix} 1 & 2 & 3 & 3 & \pi \\ 4 & 5 & 0 & 4 & -912\\ 0 & 0 & 0 & 0 & 1 \\ 7 & 8 & 0 & 5 & -\pi^2 \\ 0 & 2 & 0 & 0 & 77 \end{vmatrix} = 0 + 0 + 0 + 0 + 1 \begin{vmatrix} 1 & 2 & 3 & 3 \\ 4 & 5 & 0 & 4 \\ 7 & 8 & 0 & 5 \\ 0 & 2 & 0 & 0 \end{vmatrix}. \end{equation} (7.62)
继续按第 $3$ 列展开:
\begin{equation} \begin{vmatrix} 1 & 2 & 3 & 3 & \pi \\ 4 & 5 & 0 & 4 & -912\\ 0 & 0 & 0 & 0 & 1 \\ 7 & 8 & 0 & 5 & -\pi^2 \\ 0 & 2 & 0 & 0 & 77 \end{vmatrix} = \begin{vmatrix} 1 & 2 & 3 & 3 \\ 4 & 5 & 0 & 4 \\ 7 & 8 & 0 & 5 \\ 0 & 2 & 0 & 0 \end{vmatrix} = 3 \begin{vmatrix} 4 & 5 & 4 \\ 7 & 8 & 5 \\ 0 & 2 & 0 \end{vmatrix} + 0 + 0 + 0 . \end{equation} (7.63)
现在再按第 $3$ 行展开:
\begin{equation} \begin{vmatrix} 1 & 2 & 3 & 3 & \pi \\ 4 & 5 & 0 & 4 & -912\\ 0 & 0 & 0 & 0 & 1 \\ 7 & 8 & 0 & 5 & -\pi^2 \\ 0 & 2 & 0 & 0 & 77 \end{vmatrix} = 3 \begin{vmatrix} 4 & 5 & 4 \\ 7 & 8 & 5 \\ 0 & 2 & 0 \end{vmatrix} = 3 \cdot (-2) \begin{vmatrix} 4 & 4 \\ 7 & 5 \\ \end{vmatrix} = -6 (20-28) = 48 \end{equation} (7.64)

例 7.9: 三角矩阵的行列式
三角矩阵的行列式等于其对角元素的乘积。 利用按行或按列展开,很容易看出这一点。例如,下面这个行列式等于多少?
\begin{equation} \begin{vmatrix} 11 & 0 & 0 \\ 1 & 17 & 0 \\ 1 & 2 & 42 \end{vmatrix} ? \end{equation} (7.65)
反复按第一行展开,得到
\begin{equation} \begin{vmatrix} 11 & 0 & 0 \\ 1 & 17 & 0 \\ 1 & 2 & 42 \end{vmatrix} = 11 \begin{vmatrix} 17 & 0 \\ 2 & 42 \end{vmatrix} = 11 \cdot 17 \begin{vmatrix} 42 \end{vmatrix} = 11 \cdot 17 \cdot 42 . \end{equation} (7.66)
因此,该行列式就是对角元素的乘积。

例 7.10: 把一列的倍数加到另一列
根据性质 (vi),把一列的若干倍加到(或从中减去)另一列,不会改变行列式。这一性质有时能大幅简化计算。 例如:
\begin{equation} \begin{vmatrix} 1 & 1 & 1\\ 1 & 2 & 2 \\ 1 & 3 & 9 \end{vmatrix} = \begin{vmatrix} 1 & 1 & 0 \\ 1 & 2 & 0 \\ 1 & 3 & 6 \end{vmatrix} = \begin{vmatrix} 1 & 0 & 0 \\ 1 & 1 & 0 \\ 1 & 2 & 6 \end{vmatrix} = 1 \cdot 1 \cdot 6 = 6 . \end{equation} (7.67)
第一步用第 $3$ 列减去第 $2$ 列,第二步用新的第 $2$ 列减去第 $1$ 列。最后一步利用了三角矩阵的行列式等于对角元素乘积这一事实 (见例 7.9)。
7.6 伴随矩阵


本节将介绍方阵 $\mx{A}$ 的伴随矩阵 $\adj( \mx{A} )$。

定义 7.9: 伴随矩阵
伴随矩阵 $\adj( \mx{A} )$ 是一个在位置 $(i,j)$ 上的元素为 $(-1)^{i+j} D_{ji}$ 的矩阵。与上一节相同,$D_{ij}$ 表示从矩阵 $\mx{A}$ 中删去第 $i$ 行和第 $j$ 列后所得矩阵的行列式。
注意,定义中使用的是 $D_{ji}$,而不是 $D_{ij}$。

例 7.11:
计算如下 $2 \times 2$ 矩阵的伴随矩阵:
\begin{equation} \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix} , \end{equation} (7.68)
首先需要计算各个余子式 $D_{ij}$。 $D_{11}$ 是删去第 $1$ 行和第 $1$ 列后所得矩阵的行列式,因此 $D_{11}=a_{22}$。同理,$D_{12} = a_{21}$、$D_{21} = a_{12}$、$D_{22} = a_{11}$。 故伴随矩阵为
\begin{equation} \adj(\mx{A}) = \begin{pmatrix} a_{22} & -a_{12}\\ -a_{21} & a_{11} \end{pmatrix} . \end{equation} (7.69)
例如,$\adj(\mx{A})_{12} = -D_{21} = -a_{12}$。 可以看到,主对角线上的两个元素交换了位置,而非主对角线上的两个元素改变了符号。
伴随矩阵与逆矩阵有着密切联系,如下定理所示。

定理 7.8:
若 $\mx{A}$ 为方阵,$\adj(\mx{A})$ 为其伴随矩阵,则
\begin{equation} \mx{A} (\adj(\mx{A})) = (\adj(\mx{A})) \mx{A} = \det(\mx{A}) \mx{I} . \end{equation} (7.70)
若 $\det(\mx{A}) \neq 0$,则 $\mx{A}$ 可逆,且其逆矩阵为
\begin{equation} \mx{A}^{-1} = \frac{1}{\det \mx{A}} \adj \mx{A} . \end{equation} (7.71)

考察乘积 $\mx{B} = (\adj (\mx{A})) \mx{A}$。$\mx{B}$ 的对角元素 $b_{jj}$ 为
\begin{equation} b_{jj} = \sum_i (\adj (\mx{A}))_{ji} a_{ij} = \sum_i (-1)^{i+j} D_{ij} a_{ij} = \det \mx{A}, \end{equation} (7.72)
其中,$(\adj \mx{A})_{ji}$ 是 $\mx{A}$ 的伴随矩阵在第 $j$ 行、第 $i$ 列的元素(标量),$a_{ij}$ 仍表示 $\mx{A}$ 在第 $i$ 行、第 $j$ 列的元素。 最后一个等式来自关于行列式展开的定理 7.7。 对于 $i\neq j$ 的非对角元素 $b_{ij}$,有
\begin{equation} b_{ij} = \sum_k (\adj (\mx{A}))_{ik} a_{kj} = \sum_i (-1)^{i+k} D_{ij} a_{ki} a_{kj} = 0. \end{equation} (7.73)
最后一个等号成立,是因为 $\sum_i (-1)^{i+k} D_{ij} a_{ki} a_{kj}$ 正是把矩阵 $\mx{A}$ 的第 $j$ 列替换为第 $i$ 列后计算行列式的表达式。由于 $i \neq j$,修改后的矩阵有两列相同,故其行列式为零。
$\square$


例 7.12:
利用定理 7.8,计算 $2 \times 2$ 矩阵的逆矩阵格外方便。 在例 7.11中,我们看到一般的 $2 \times 2$ 矩阵
\begin{equation} \mx{A} = \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix} , \end{equation} (7.74)
的伴随矩阵为
\begin{equation} \adj(\mx{A}) = \begin{pmatrix} a_{22} & -a_{12}\\ -a_{21} & a_{11} \end{pmatrix} . \end{equation} (7.75)
根据定理 7.8,有
\begin{equation} \mx{A}^{-1} = \frac{1}{\det \mx{A}} \adj \mx{A} = \frac{1}{a_{11} a_{22} - a_{12} a_{21}} \begin{pmatrix} a_{22} & -a_{12}\\ -a_{21} & a_{11} \end{pmatrix}, \end{equation} (7.76)
这与上一章定理 6.3中的结果一致。
7.7 克拉默法则


本节将介绍克拉默法则。当我们想求方程 $\mx{A}\vc{x}=\vc{y}$ 的解 $\vc{x}$,却不需要知道 $\mx{A}$ 的逆矩阵时,它非常有用。

定理 7.9:
若 $\mx{A}$ 为方阵且 $\det \mx{A} \neq 0$,则矩阵方程 $\mx{A}\vc{x} = \vc{y}$ 的解 $\vc{x}$ 满足
\begin{equation} x_i =\frac{ \det \begin{pmatrix} \vc{a}_1 & \ldots & \vc{a}_{i-1} & \vc{y} & \vc{a}_{i+1} & \ldots & \vc{a}_n \end{pmatrix} }{\det \mx{A}} . \end{equation} (7.77)
换言之,把 $\mx{A}$ 的第 $i$ 列替换为等式右侧的 $\vc{y}$,计算所得矩阵的行列式,再除以 $\mx{A}$ 的行列式,就能直接得到解向量 $\vc{x}$ 的第 $i$ 个坐标。 这个方法简单得几乎令人难以置信。

考察行列式
\begin{equation} \det \begin{pmatrix} \vc{a}_1 & \ldots & \vc{a}_{i-1} & \vc{y} & \vc{a}_{i+1} & \ldots & \vc{a}_n \end{pmatrix} . \end{equation} (7.78)
由矩阵方程 $\mx{A}\vc{x} = \vc{y}$ 可知,列向量 $\vc{y}$ 是 $\mx{A}$ 各列的线性组合,即
\begin{equation} \vc{y} = \sum_j x_j \vc{a}_j . \end{equation} (7.79)
由于行列式关于每一列都是线性的,故
\begin{equation} \det \begin{pmatrix} \vc{a}_1 & \ldots & \vc{a}_{i-1} & \vc{y} & \vc{a}_{i+1} & \ldots & \vc{a}_n \end{pmatrix} = \sum_j x_j \det \begin{pmatrix} \vc{a}_1 & \ldots & \vc{a}_{i-1} & \vc{a}_{j} & \vc{a}_{i+1} & \ldots & \vc{a}_n \end{pmatrix} = x_i \det \mx{A} . \end{equation} (7.80)
在上述求和中,只要 $j \neq i$,相应矩阵便有两列相同,因此其行列式为零;而当 $j=i$ 时,得到 $x_i \det \mx{A}$。证毕。
$\square$


例 7.13:
考察矩阵方程
\begin{equation} \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix} \begin{pmatrix} x_1\\ x_2 \end{pmatrix} = \begin{pmatrix} y_1\\ y_2 \end{pmatrix} . \end{equation} (7.81)
若 $\det(\mx{A}) = a_{11} a_{22} - a_{12} a_{21} \neq 0$,则解唯一,且
\begin{equation} x_1 = \frac{ \begin{vmatrix} y_1 & a_{12}\\ y_2 & a_{22} \end{vmatrix} }{ \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} } = \frac{y_1 a_{22} - y_2 a_{12}}{a_{11} a_{22} - a_{12} a_{21}} \end{equation} (7.82)
以及
\begin{equation} x_2 = \frac{ \begin{vmatrix} a_{11} & y_1 \\ a_{21} & y_2 \end{vmatrix} }{ \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} } = \frac{y_2 a_{11} - y_1 a_{21}}{a_{11} a_{22} - a_{12} a_{21}}. \end{equation} (7.83)
交互式图解 7.6中,我们用克拉默法则求解方程组 $\mx{A}\vc{z}=\vc{b}$ 中的 $\vc{z}$。
交互式图解 7.6: 在这个交互式图解中,我们把 $2\times 2$ 矩阵 $\mx{A}$ 形象地表示为组成它的两个列向量 $\vc{a}_{,1}$ 和 $\vc{a}_{,2}$,即 $\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)$. 我们要解 $\mx{A}\vc{z} = \vc{b}$,即计算 $\vc{z} = \mx{A}^{-1}\vc{b}$。 为使图示更清楚,这里写作 $\vc{z}=(x,y)$。 图中的列向量可以移动,黑色箭头表示 $\vc{b}$。 解 $\vc{z}=(x,y)$ 由克拉默法则求得。
交互式图解 7.6: 在这个交互式图解中,我们把 $\hid{2\times 2}$ 矩阵 $\hid{\mx{A}}$ 形象地表示为组成它的两个列向量 $\hid{\vc{a}_{,1}}$ 和 $\hid{\vc{a}_{,2}}$,即 $\hid{\mx{A} = \bigl(\textcolor{#aa0000}{\vc{a}_{,1}}\,\, \textcolor{#00aa00}{\vc{a}_{,2}} \bigr)}$. 我们要解 $\hid{\mx{A}\vc{z} = \vc{b}}$,即计算 $\hid{\vc{z} = \mx{A}^{-1}\vc{b}}$。 为使图示更清楚,这里写作 $\hid{\vc{z}=(x,y)}$。 图中的列向量可以移动,黑色箭头表示 $\hid{\vc{b}}$。 解 $\hid{\vc{z}=(x,y)}$ 由克拉默法则求得。
$\mx{A} = \left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$\textcolor{#aa0000}{\vc{a}_{,1}}$
$\textcolor{#009000}{\vc{a}_{,2}}$
$\det(\mx{A})=$
$\left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)\begin{pmatrix}x\\y\end{pmatrix}=\left(\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right.$
$\left.\begin{array}{l} \hid{1} \\ \hid{1} \end{array}\right)$
$x=$
$y=$
$\vc{b}$
7.8 行列式、线性无关与可逆性


定理 7.10:
对任意方阵 $\mx{A}$,下列命题彼此等价:
\begin{equation} \begin{array}{ll} (i) & \spc\mx{A}\spc\text{ 的列向量构成一组基} \\ (ii) & \spc\mx{A}\spc\text{ 的行向量构成一组基} \\ (iii) & \spc\text{矩阵方程} \spc \mx{A} \vc{x} = 0 \spc\text{只有零解} \spc \vc{x}=0 \\ (iv) & \spc\text{对于任意}\spc \vc{y}\spc\text{,矩阵方程}\spc \mx{A} \vc{x} = \vc{y} \spc\text{都有解} \\ (v) & \spc\text{矩阵} \spc \mx{A} \spc\text{可逆} \\ (vi) & \spc\det \mx{A} \neq 0 \\ \end{array} \end{equation} (7.84)

定理 6.9可知,$(i)、(ii)、(iii)、(iv)、(v)$ 彼此等价。这里只需证明它们还与 $(vi)$ 等价。

若 $\det \mx{A} \neq 0$,则由定理 7.8可知该矩阵可逆。 反之,若矩阵 $\mx{A}$ 可逆,则由定理 7.8有 $\det \mx{A} \det \mx{A}^{-1} = 1$,因此 $\det \mx{A} \neq 0$ 且 $\det \mx{A}^{-1} \neq 0$。
$\square$


例 7.14: 同一直线上的三个点
利用行列式推导一个约束,用来判断三点 $(x_1,y_1)$、$(x_2,y_2)$ 和 $(x_3,y_3)$ 是否共线,也就是是否位于同一条直线上。

若三点共线,则存在一条直线,不妨记为 $ax+by+c = 0$,使三个点均位于该直线上。换言之,
\begin{equation} a x_1+b y_1+c = 0 \\ a x_2+b y_2+c = 0 \\ a x_3+b y_3+c = 0 . \end{equation} (7.85)
把它改写成矩阵—向量方程:
\begin{equation} \begin{pmatrix} x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ x_3 & y_3 & 1 \end{pmatrix} \begin{pmatrix} a\\ b\\ c \end{pmatrix} = 0 . \end{equation} (7.86)
这是一个 $\mx{A}\vc{s}=0$ 型方程,其中 $\vc{s} = (a, b, c)$。 根据定理 7.10,若 $\det{\mx{A}} \neq 0$,方程只有 $a=b=c=0$ 这一零解,意味着这些点不在同一条直线上。反之,若 $\det{\mx{A}} = 0$,则至少存在一个非零解。每个解 $\vc{s}$ 都对应一条直线。不过要注意,解的数乘 $\lambda \vc{s}$ 与 $\vc{s}$ 对应同一条直线

结论:三点共线,当且仅当
\begin{equation} \begin{vmatrix} x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ x_3 & y_3 & 1 \end{vmatrix} = 0 . \end{equation} (7.87)

例 7.15: 基础矩阵
交互式图解 5.2中,我们看到第一幅图像中二维点的位置受到另一幅图像中对应二维点位置的约束。这是因为两个二维点都是同一个三维点的投影。

把坐标为 $(u_1,u_2,u_3)$ 的三维点投影为二维图像点 $\vc{v} = (v_1,v_2)$,可以用一个相对简单的模型描述。使用所谓的齐次坐标后,这个模型会更加简洁。此时,点用额外添加一个取值为 $1$ 的坐标的列向量表示。在这种表示下,三维点写成
\begin{equation} \vc{u} = \begin{pmatrix} u_1\\ u_2\\ u_3\\ 1 \end{pmatrix} \end{equation} (7.88)
图像点写成
\begin{equation} \vc{v} = \begin{pmatrix} v_1\\ v_2\\ 1 \end{pmatrix} . \end{equation} (7.89)
于是,投影模型为
\begin{equation} \lambda \begin{pmatrix} v_1\\ v_2\\ 1 \end{pmatrix} = \lambda \begin{pmatrix} p_{11} & p_{12} & p_{13} & p_{14} \\ p_{21} & p_{22} & p_{23} & p_{24} \\ p_{31} & p_{32} & p_{33} & p_{34} \end{pmatrix} \begin{pmatrix} u_1\\ u_2\\ u_3\\ 1 \end{pmatrix} \end{equation} (7.90)
或者用矩阵和向量记号写成
\begin{equation} \lambda \vc{v} = \mx{P} \vc{u} \end{equation} (7.91)
在这个模型方程中,$\mx{P}$ 称为相机矩阵,包含相机位置朝向的参数,$\lambda$ 是标量。由于方程中含有 $\lambda$,这个模型是非线性的。尽管如此,线性代数的方法对分析和理解这个问题至关重要。

设有两幅图像,$\mx{P}_L$ 是第一幅图像对应的相机矩阵,$\mx{P}_R$ 是第二幅图像对应的相机矩阵。设齐次坐标向量为 $\vc{u}$ 的同一个三维点同时出现在两幅图像中;它在第一幅图像中的齐次坐标向量为 $\vc{v}_L$,在第二幅图像中为 $\vc{v}_R$。 两幅图像的相机矩阵方程为
\begin{equation} \lambda_L \vc{v}_L = \mx{P}_L \vc{u}\ \ \ \ \text{且} \ \ \ \ \lambda_R \vc{v}_R = \mx{P}_R \vc{u}. \end{equation} (7.92)
这两个矩阵方程可合并写成一个矩阵方程:
\begin{equation} \begin{pmatrix} \mx{P}_L & \vc{v}_L & \vc{0} \\ \mx{P}_R & \vc{0} & \vc{v}_R \end{pmatrix} \begin{pmatrix} \vc{u}\\ -\lambda_L \\ -\lambda_R \end{pmatrix} = \begin{pmatrix} \vc{0}\\ \vc{0} \end{pmatrix} . \end{equation} (7.93)
注意,这里的矩阵和向量由其他矩阵或向量的分块组成,通常称为分块矩阵。 该矩阵方程属于 $\mx{A} \vc{x} = \vc{0}$ 型,其中 $\mx{A}$ 是 $6 \times 6$ 方阵。这个方程有一个并非零向量的解 $\begin{pmatrix}\vc{u}\\-\lambda_L \\-\lambda_R \end{pmatrix}$。根据定理 7.10,这意味着 $\det \mx{A} = 0$. 若先沿第五列、再沿第六列展开该行列式,便得到
\begin{equation} \vc{v}_L^\T \mx{F} \vc{v}_R = 0. \end{equation} (7.94)
这里,$\mx{F}$ 的各元素都是由两个相机矩阵的元素构成的 $4\times 4$ 矩阵的行列式。


第 6 章:矩阵(上一章) 第 8 章:秩(下一章)