跳转至

从方程组到行列式

本页面回答一个"动机"问题:行列式是被什么东西逼出来的? 线索是一条直线——一元一次方程 → 二元一次方程组 → 三元一次方程组 → \(n\) 元一次方程组。我们想写出解的紧凑表达式,而这个表达式反复出现同一个结构,于是给它一个名字,就是行列式。

页面最后会指出关键的一步:二阶、三阶时的"对角线"直观在四阶时失效,所以必须回头去找更本质的规律。这正是 1.3 后半段(乃至整章)的出发点。

前置知识
  • 一元一次方程与二元一次方程组的消元法(中学内容,本页会用一次)
  • 1.1 数域:下文所有系数与常数项都取自同一个数域
  • 1.2 排列:本页末会用到"\(n\) 阶排列有 \(n!\) 个"

一元一次方程与一阶行列式

最简单的方程是

\[ ax = b, \qquad a \ne 0, \]

两边同乘 \(a^{-1}\)(这要求 \(a \ne 0\),也就要求"数"能自由地做除法,这正是选定数域的意义)即得

\[ x = \frac{b}{a} = a^{-1} b . \]

这里出现了一个数 \(a\)。如果给 \(a\) 两边加上两条竖线,记成

\[ \begin{vmatrix} a \end{vmatrix} = a, \]

就得到一阶行列式:它就是一个数本身,什么也没做。

一阶行列式不是绝对值

两者只是用了同一个符号,含义完全不同。对一阶行列式,无论 \(a\) 是正是负都有 \(\lvert a\rvert_{\text{det}} = a\);而绝对值要求 \(\lvert -3 \rvert = 3\)。数学里同一个符号在不同场合表示不同东西是常事,前提是使用前说清楚。

一阶行列式的价值不在它本身,而在于它让"一阶、二阶、三阶、……"这条链条有起点。

二元一次方程组与二阶行列式

方程组与其解

二元一次方程组的一般形式写成

\[ \begin{cases} a_{11} x_1 + a_{12} x_2 = b_1, \\ a_{21} x_1 + a_{22} x_2 = b_2 . \end{cases} \]

记号上有个小变化值得留意:中学写作 \(ax + by = c\),这里改用 \(a_{ij}\),其中第一个下标表示它在第几个方程(第几行)里,第二个下标表示它是第几个未知量的系数(第几列)。这样写的好处是可以直接推广到 \(n\) 元。

用消元法(第一个方程乘 \(a_{22}\)、第二个方程乘 \(a_{12}\),相减消去 \(x_2\);再做一次消去 \(x_1\))可得

\[ x_1 = \frac{b_1 a_{22} - a_{12} b_2}{a_{11} a_{22} - a_{12} a_{21}}, \qquad x_2 = \frac{a_{11} b_2 - b_1 a_{21}}{a_{11} a_{22} - a_{12} a_{21}} . \]

(这里假定分母不为 \(0\),见下面的注。)

关于“分母不为 \(0\)”

对二元一次方程组,分母

\[ a_{11} a_{22} - a_{12} a_{21} \ne 0 \]

与中学的说法"两个方程的系数不成比例"是同一件事,也正是"方程组有唯一解"的条件。它的 \(n\) 元版本就是 \(D \ne 0\),第三章讲完矩阵的初等变换后会给出完整讨论;本页只需要记住:只有 \(D \ne 0\) 时才能把解写成 \(\dfrac{D_1}{D}\)、\(\dfrac{D_2}{D}\)。

观察这两个式子:分母完全相同,都是 \(a_{11} a_{22} - a_{12} a_{21}\);分子长得和分母很像,只是某一列被常数项替换了。

定义二阶行列式

把系数从方程组里"拎出来",去掉未知量,剩下的是一张方形的数表

\[ \begin{matrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{matrix} \]

它上面的那个共同分母,自然值得单独命名。

定义(二阶行列式)

设 \(a_{11}, a_{12}, a_{21}, a_{22}\) 是数。称

\[ \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix} = a_{11} a_{22} - a_{12} a_{21} \]

为一个二阶行列式。

式中从左上到右下的一条线称为主对角线,从右上到左下的一条线称为反对角线。于是二阶行列式可以直观地记成:主对角线元素的乘积减去反对角线元素的乘积。

例题 1(计算二阶行列式)

计算 \(\begin{vmatrix} 3 & 1 \\ 2 & 4 \end{vmatrix}\) 与 \(\begin{vmatrix} 1 & 2 \\ 3 & 6 \end{vmatrix}\)。

解

\[ \begin{vmatrix} 3 & 1 \\ 2 & 4 \end{vmatrix} = 3 \times 4 - 1 \times 2 = 10, \qquad \begin{vmatrix} 1 & 2 \\ 3 & 6 \end{vmatrix} = 1 \times 6 - 2 \times 3 = 0 . \]

第二个行列式为 \(0\),对应的方程组"两个方程的系数成比例",正是中学说的"可能无解或有无穷多解"的情形。

把解写成行列式之比

把上面求得的解用行列式重写。记

\[ D = \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix}, \quad D_1 = \begin{vmatrix} b_{1} & a_{12} \\ b_{2} & a_{22} \end{vmatrix}, \quad D_2 = \begin{vmatrix} a_{11} & b_{1} \\ a_{21} & b_{2} \end{vmatrix}, \]

则 \(D_1\) 正是"用常数项 \(b_1, b_2\) 替换 \(D\) 的第 \(1\) 列",\(D_2\) 正是"替换第 \(2\) 列",而

\[ x_1 = \frac{D_1}{D}, \qquad x_2 = \frac{D_2}{D} \qquad (D \ne 0). \]

这就是二元情形的 Cramer 法则。它漂亮的地方在于形式统一:分子就是把分母的第 \(j\) 列换成常数项,与 \(j\) 无关。

从二阶看到规律

这一步的价值不在于"又算了一遍解"(消元法早就会了),而在于发现了一个可以被推广的形式。发现规律之后要接着问:这是二阶的偶然,还是对三元、四元乃至 \(n\) 元都成立?——这个问题就是整章的驱动力。

三元一次方程组与三阶行列式

三元一次方程组的一般形式是

\[ \begin{cases} a_{11} x_1 + a_{12} x_2 + a_{13} x_3 = b_1, \\ a_{21} x_1 + a_{22} x_2 + a_{23} x_3 = b_2, \\ a_{31} x_1 + a_{32} x_2 + a_{33} x_3 = b_3 . \end{cases} \]

\(n\) 元的情形可以照此一直写下去,记号完全一样,只是下标范围变大。

三阶行列式怎么定义

仿照二阶,我们希望分母是"\(3 \times 3\) 数表上的一个运算式",并且能让解写成

\[ x_1 = \frac{D_1}{D}, \quad x_2 = \frac{D_2}{D}, \quad x_3 = \frac{D_3}{D}, \]

其中 \(D_j\) 是把 \(D\) 的第 \(j\) 列换成 \(b_1, b_2, b_3\) 所得的行列式。

那么 \(D\) 该定义成什么?不能只取"两条对角线"。 因为 \(3 \times 3\) 数表有 \(9\) 个元素,而两条对角线只涉及 \(3 + 3 = 6\) 个元素(主、反对角线各 \(3\) 个,且不重合),剩下的 \(a_{12}, a_{21}, a_{32}, a_{23}\) 四个系数一个都没用上——如果它们不出现在解里,等于说 \(3\) 元一次方程组的解与这四个系数无关,这显然不合理。

正确的做法是把与两条对角线平行的线也用上,凑成 \(6\) 条线、每条线 \(3\) 个元素:

定义(三阶行列式)

把六条线上元素乘积按"主对角线方向取正、反对角线方向取负"加起来,得到

\[ \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix} = \begin{aligned} & a_{11} a_{22} a_{33} + a_{12} a_{23} a_{31} + a_{13} a_{21} a_{32} \\ & {} - a_{13} a_{22} a_{31} - a_{11} a_{23} a_{32} - a_{12} a_{21} a_{33} \end{aligned} \]

为一个三阶行列式。

展开式共 \(6\) 项:\(3\) 项取正号,来自主对角线以及两条与主对角线平行的线;\(3\) 项取负号,来自反对角线以及两条与反对角线平行的线。这就是通常说的对角线法则(也叫 Sarrus 法则)。

例题 2(用对角线法则计算)

计算 \(\begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10 \end{vmatrix}\)。

解

\[ \begin{aligned} \begin{vmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10 \end{vmatrix} &= 1 \cdot 5 \cdot 10 + 2 \cdot 6 \cdot 7 + 3 \cdot 4 \cdot 8 \\ &\quad - 3 \cdot 5 \cdot 7 - 1 \cdot 6 \cdot 8 - 2 \cdot 4 \cdot 10 \\ &= 50 + 84 + 96 - 105 - 48 - 80 = -3 . \end{aligned} \]

三元情形也有同样的形式

定义了 \(D\)、\(D_1\)、\(D_2\)、\(D_3\) 之后,若 \(D \ne 0\),则三元一次方程组有唯一解

\[ x_1 = \frac{D_1}{D}, \qquad x_2 = \frac{D_2}{D}, \qquad x_3 = \frac{D_3}{D} . \]

这个结论留给大家自己验证——把上面 \(x_1, x_2, x_3\) 的行列式表达式代回原方程组检验一遍,既验证了结论,也顺便把三阶行列式的计算练熟了。

目标:\(n\) 元一次方程组

到这里,方向已经很清楚了。设

\[ \begin{cases} a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n} x_n = b_1, \\ a_{21} x_1 + a_{22} x_2 + \cdots + a_{2n} x_n = b_2, \\ \qquad \vdots \\ a_{n1} x_1 + a_{n2} x_2 + \cdots + a_{nn} x_n = b_n, \end{cases} \]

我们想要的是:当它有唯一解时,把解写成

\[ x_j = \frac{D_j}{D} \qquad (j = 1, 2, \dots, n), \]

其中 \(D\) 是"系数数表所决定的 \(n\) 阶行列式",\(D_j\) 是把 \(D\) 的第 \(j\) 列换成常数项所得的行列式。

目标为什么要定得这么远

用消元法硬算 \(10\) 元一次方程组不是不能做,但写出来的式子会长到没法看,更不可能从中看出结构。行列式的作用就是给出一套统一、可计算的写法。课堂上的一句话是:"如果不用这种方式,你敢去写 \(10\) 元一次方程组的解吗?"

要达成这个目标,必须先回答三件事:

  1. 有解性:一般的 \(n\) 元一次方程组何时有唯一解?(判据是 \(D \ne 0\),第三章会证明)
  2. 解的表示:有唯一解时,解是否真的能写成 \(\dfrac{D_j}{D}\)?(Cramer 法则,本章后几节)
  3. \(n\) 阶行列式的定义:\(D\) 到底是什么?——这是本节要做的事。

顺带一提:中学的消元法为什么一定正确?这个问题本课程要到讲矩阵的初等变换(第三章)时才回答。特别提醒——"老师说是对的"不是理由,学数学要问为什么。

四阶行列式的困难

现在来看推广的第一次失败。四阶行列式面对的是一张 \(4 \times 4\) 的数表:

\[ \begin{vmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ a_{41} & a_{42} & a_{43} & a_{44} \end{vmatrix}. \]

如果照搬对角线法则,把与主对角线平行的线和与反对角线平行的线都用上:\(4 \times 4\) 时这样的线共有 \(4 + 4 = 8\) 条,每条 \(4\) 个元素,于是只能写出 \(8\) 项。

但"每行取一个、每列取一个"的取法有多少种?第一行有 \(4\) 种选法,选定后第二行剩 \(3\) 种,第三行剩 \(2\) 种,第四行剩 \(1\) 种,共

\[ 4 \times 3 \times 2 \times 1 = 4! = 24 \]

种。\(8\) 项远远不够。

关键结论

当 \(n \ge 4\) 时,对角线法则不再适用。它在 \(n = 2\) 时给出 \(2 = 2!\) 项、在 \(n = 3\) 时给出 \(6 = 3!\) 项,恰好够用;到 \(n = 4\) 时只给出 \(8\) 项,缺了 \(16\) 项。所谓"反对角线上的项取负号"在四阶时也不再成立——四阶的对角线法则不可能自洽。

课堂上把这一现象说得很直接:四阶以后再没有"主对角线、反对角线"的说法了。

这也是为什么必须回到排列。第 \(n\) 阶行列式的每一项,本质上是"在每一行、每一列各取一个元素相乘",取法的总数是 \(n!\);而"取哪 \(n\) 个位置"恰好由一个 \(n\) 阶排列描述。至于每项前面的正负号,则由该排列的奇偶性决定(见 1.2 对换与奇偶排列)。

行列式的本质

把一阶、二阶、三阶的展开式放在一起看,共同点浮出来:

观察(行列式的本质)

一阶、二阶、三阶行列式的展开式,每一项都是"不同行不同列"的 \(n\) 个元素的乘积,且每项前面配一个正负号。

例如二阶的两项 \(a_{11} a_{22}\) 与 \(a_{12} a_{21}\)、三阶的六项 \(a_{11}a_{22}a_{33}\)、\(a_{12}a_{23}a_{31}\)、\(a_{13}a_{21}a_{32}\)、\(a_{13}a_{22}a_{31}\)、\(a_{11}a_{23}a_{32}\)、\(a_{12}a_{21}a_{33}\),都是"不同行不同列"。

另外,行列式是定义在这些元素上的一个运算式,算出来的结果仍是同一个数域里的一个元素——它把 \(n^2\) 个元素映成一个元素。

这条观察就是下一节 n 阶行列式的定义 的全部起点:先把"不同行不同列元素的乘积的一般形状"写出来,再数清一共有多少项。

易错点

三个常见的错

  1. 把一阶行列式当成绝对值。 \(\begin{vmatrix} -3 \end{vmatrix} = -3\),而 \(\lvert -3 \rvert = 3\)。
  2. 把对角线法则用到四阶及以上。 对角线法则只对 \(n = 2, 3\) 成立,其成立的真正原因是 \(2! = 2 + 0\)、\(3! = 3 + 3\),是个巧合。
  3. 忘了 \(D \ne 0\) 这个前提。 \(\dfrac{D_j}{D}\) 只有在 \(D \ne 0\) 时才有意义;\(D = 0\) 时方程组可能无解,也可能有无穷多解,需要另外讨论。

参见