© 2015-2020 Jacob Ström, Kalle Åström, and Tomas Akenine-Möller

正在加载并构建本章……

第 7 章:行列式





在本章中,我们将介绍行列式,它是与方阵相关联的一个数。 行列式有许多重要用途。其中之一是:含 $n$ 个未知数的 $n$ 线性 方程组 $\mx{A}\vc{x}=\vc{b}$ 有且仅有一个解,当且仅当 $\mx{A}$ 的行列式非零。 本章后面我们还将看到行列式的许多其他用途与解释。
7.1 引言


例 7.1: 基础矩阵
交互图 5.2 中,我们看到了由一组图像重建的若干所谓特征点的三维重建。 同时计算三维点以及相机在图像间如何移动,是一个有趣的问题。求解该问题的第一步是理解如何仅针对两张图像求解。一种技术涉及所谓的基础矩阵(fundamental matrix),它关联两张图像中的对应点。行列式用于推导这一约束。设给定同一场景的两张不同图像。左图中坐标为 $(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} \ \ \mathrm{and}\ \ \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)$。试着移动图像中的点使它们对应。图片由 Lund University 的 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)}$。试着移动图像中的点使它们对应。图片由 Lund University 的 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 $,则有无穷多解 $x$,因为方程现在变为 $0 x = 0$。

对于 $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{(determinant of unit matrix)} \\ (ii) & \begin{vmatrix} \ldots & \vc{a}_i & \ldots & \vc{a}_i & \ldots \end{vmatrix} = 0 & \spc\text{(zero if two columns are equal)} \\ (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{(linear in each column)} \\ \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{(zero if one column is zero)} \\ (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{(swapping columns)} \\ (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{(adding to another column)} \\ (vii) & \det( \mx{A}) = \det( \mx{A}^\T) & \spc\text{(transpose)} \\ (viii) & \det( \mx{A} \mx{B}) = \det( \mx{A}) \det( \mx{B}) & \spc\text{(product)} \\ (ix) & \det( \mx{A}^{-1}) = \frac{1}{\det( \mx{A})} & \spc\text{(inverse)} \\ \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)
这就证明了该结论。 性质 $(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)
这就证明了该结论。 我们将 $(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$,此处记作 $\sigma(p)$,为
\begin{equation} \sigma(p) = \begin{cases} +1 &\mbox{if $n$ is an even permutation} \\ -1 &\mbox{if $n$ is an odd permutation} . \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{(if $p$ is a transposition)} \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$,使得 $\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$ 项之和。其中有些项因行列式有相等列而消失。在该例中,四项中的第一项和最后一项消失了。去掉这些后 得到
\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}$ 为 1,$(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 中,定理 7.6 对 $2\times 2$ 矩阵作了展示。 例如,若使 $\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$ 矩阵。子式,记作 $D_{ij}$,是从 $\mx{A}.$ 中删去第 $i$ 行和第 $j$ 列后得到的 $(n-1) \times (n-1)$ 矩阵的行列式
这些行列式常称为矩阵的 子式 或余子式

例 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}$ 是什么? 矩阵 $D_{1,2}$ 是在删去第 $1$ 行和第 $2$ 列后得到的。因此
\begin{equation} D_{1,2} = \det \begin{pmatrix} 4 & 6\\ 7 & 9 \end{pmatrix} . \end{equation} (7.49)
矩阵 $D_{3,1}$ 是在删去第 $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$ 是与 $\mx{A}$ 相同的矩阵,只是将第 $j$ 列替换为 $\vc{i}_i$。 经过 $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)
由于第 1 列在第 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}$ 是去掉第 $i$ 行和第 $j$ 列后所得矩阵 $A$ 的行列式。
注意在定义中我们用的是 $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\text{The column vectors of}\spc \mx{A} \spc\text{is a basis} \\ (ii) & \spc\text{The row vectors of}\spc \mx{A} \spc\text{is a basis} \\ (iii) & \spc\text{The matrix equation} \spc \mx{A} \vc{x} = 0 \spc\text{has only one solution} \spc \vc{x}=0 \\ (iv) & \spc\text{The matrix equation}\spc \mx{A} \vc{x} = \vc{y} \spc\text{has a solution for every} \spc \vc{y} \\ (v) & \spc\text{The matrix} \spc \mx{A} \spc\text{is invertible} \\ (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{x}$ 对应一条 直线。然而注意,将解 $\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)$ 有一个相对简单的模型。使用所谓的 齐次 (homogeneous)坐标可使模型更简单。此时点表示为增加一个取值为 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}$ 是所谓的 相机矩阵 (camera matrix)。它包含相机的 位置 定向 参数,$\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}\ \ \ \ \mathrm{and} \ \ \ \ \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 章:秩(下一章)
关于本译本