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

正在加载和构建章节...

第7章:行列式





在本章中,我们将介绍行列式,它是与方阵相关联的一个数。 行列式有许多重要用途。其中一个用途是,$n$ 个线性方程的系统 $\mx{A}\vc{x}=\vc{b}$ 在 $n$ 个未知数中,当且仅当 $\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} \ \ \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)$。尝试移动图像点使它们对应。图像由隆德大学的 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 $,则有无穷多个解 $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})=$


For a $3 \times 3$ matrix
\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)
这证明了该陈述。 性质 $(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{如果 $n$ 是偶排列} \\ -1 &\mbox{如果 $n$ 是奇排列} . \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$,使得 $\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 转置、乘法与逆


In this section, we present theorems about the determinant of a transposed matrix, of a product of matrices, and of the inverse of a matrix.

定理 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}}}$ 都可以移动。 回想一下,平行四边形的面积本质上是矩阵的行列式(不含符号),并且由于 \linkref{定理}{theo_determinant_inverse},如果 $\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外,其余都是零。 使用行列式的线性性(定理 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)
由于第一列在第 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:
使用按第 1 行展开计算
\begin{equation} \begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ 7 & 8 & 9 \end{vmatrix} \end{equation} (7.58)
\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,关于行列式的展开。 对于非对角线元素 $b_{ij}$(其中 $i\neq j$),我们有
\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{$\mx{A}$ 的列向量是基} \\ (ii) & \spc\text{$\mx{A}$ 的行向量是基} \\ (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{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 中,我们看到第一幅图像中的 2D 点的位置受到另一幅图像中对应 2D 点位置的约束。原因是这些 2D 点都是同一个 3D 点的投影。

将坐标为 $(u_1,u_2,u_3)$ 的 3D 点投影到 2D 图像点 $\vc{v} = (v_1,v_2)$ 有一个相对简单的模型。使用所谓的齐次坐标可以使模型变得更简单。然后点用列向量表示,其中额外的坐标设为 1。在这种表示中,3D 点表示为
\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}$ 的 3D 点在两幅图像中都可见。在第一幅图像中,齐次坐标向量是 $\vc{v}_L$,在另一幅图像中向量是 $\vc{v}_R$。 这两幅图像的相机矩阵方程为
\begin{equation} \lambda_L \vc{v}_L = \mx{P}_L \vc{u}\ \ \ \ \mathrm{且} \ \ \ \ \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 章:秩(下一章)