行列式 #
这讲讲什么 :给方阵(更准确地说,给算子)配一个数。这个数必须对每一列线性、两列相同就归零、把恒等算子映成 1——三条要求合起来只剩唯一 一个函数,那就是行列式;而它同时又是体积的缩放倍数。前置 :36 讲(交错多重线性型、排列与逆序数)、19 讲(上三角矩阵)、10 讲(可逆性与同构)、29 讲(奇异值,仅供理解几何那一节)、34 讲(迹,可对照「和 vs 积」)一句话 :行列式不是一堆符号游戏,它是被三条公理逼出来的唯一一个「交错 n n n 重线性型」 ,所以它既是可逆性的开关,也是体积的倍率。
一、为什么需要它 #
1.1 三个场合在等同一个数 #
你已经不止一次遇到过「某个数决定了一切」的场面:
解线性方程组。 n n n 个方程 n n n 个未知数,什么时候有唯一解?把这个问题的答案压成一个数:这个数非零就有唯一解,为零就没有唯一解。这个数必须能用一个公式算出来,不能靠"试"。
判断可逆。 10 讲判定可逆用的是「零空间只有 0 0 0 」或「矩阵的列线性无关」。这两种判定都要做一次完整的高斯消元。有没有一个数 ,看它是不是 0 0 0 就能下结论?有的话,检查可逆性就从"做一遍消元"降级成"算一个数"。
求特征值。 17 讲的特征值定义是「存在 v ≠ 0 v\ne0 v = 0 使 T v = λ v Tv=\lambda v T v = λ v 」,也就是「T − λ I T-\lambda I T − λ I 不可逆」。如果可逆性有一个数值判据,那特征值方程就变成一个多项式方程 :
λ 是 T 的特征值 ⟺ det ( λ I − T ) = 0 \lambda \text{ 是 } T \text{ 的特征值}\iff \det(\lambda I-T)=0 λ 是 T 的特征值 ⟺ det ( λ I − T ) = 0
这一步的意义超出它本身:它把「算子有没有不变方向」这个几何问题,翻译成了「一个多项式有没有根」这个代数问题。后面的特征多项式、代数重数、Cayley–Hamilton 定理,全部从这里出发。
换元积分。 多元微积分里做变量替换 x ↦ T x x\mapsto Tx x ↦ T x ,积分要乘一个因子,那个因子是 ∣ det T ∣ |\det T| ∣ det T ∣ 。它不是修正项,它是"体积被拉了几倍"的记账。
1.2 尴尬之处:候选太多了 #
想造一个「方阵 ↦ \mapsto ↦ 数」的函数,你随手能写出一堆:
∑ j , k A j , k , ∏ j A j , j , max j , k A j , k , ∑ j A j , j 2 \sum_{j,k}A_{j,k},\qquad \prod_{j}A_{j,j},\qquad \max_{j,k}A_{j,k},\qquad \sum_j A_{j,j}^2 j , k ∑ A j , k , j ∏ A j , j , j , k max A j , k , j ∑ A j , j 2
这些都是"方阵映成数"的合格函数。为什么偏偏要用那个带正负号、项数为 n ! n! n ! 的怪东西?
因为它们都不是线性的 。第一个对列线性(是的,它是),但两列相同时不归零;第二个对每一列都线性、两列相同也归零,可惜它是连乘不是求和——你把第二列乘 2 2 2 ,∏ A j , j \prod A_{j,j} ∏ A j , j 未必跟着乘 2 2 2 (只有 n = 1 n=1 n = 1 时才是)。
换句话说:我们要的不是"某个函数",而是满足一组性质的那个函数 。这组性质必须强到只留下一根独苗。
1.3 出路:36 讲已经给出了唯一性 #
36 讲证明了一个关键事实:n n n 维空间上全体交错 n n n 重线性型 构成的空间,维数恰好是 1 1 1 。
一个 n n n 重线性型,就是"对每个自变量都线性"的函数。 「交错」是说:两个位置放同一个向量,值就是 0 0 0 。
维数是 1 1 1 ,这句话的意思非常具体:这类函数全体就是"某一个函数"的所有标量倍数 。所以只要指定它在某一组基上的值,整个函数就被钉死了;而如果规定它在标准基上取 1 1 1 ,那全世界就只剩一个这样的函数。
这就是行列式的公理化定义,也是本讲的主干:行列式 = 那个唯一满足「交错 + n n n 重线性 + 归一」的函数。 三种讲法(排列公式 / 公理化 / 体积)里,只有这一种能一句话说清"为什么是它,不是别的"。
读完这一讲,你应该能回答:
三条公理里去掉哪一条,行列式就不再唯一?
为什么 det ( 2 A ) = 2 n det A \det(2A)=2^n\det A det ( 2 A ) = 2 n det A ,而不是 2 det A 2\det A 2 det A ?
一个 3 × 3 3\times3 3 × 3 行列式,为什么可以用"按一行展开"和"高斯消元"两种完全不同的路线算,且必然对得上?
「∣ det T ∣ |\det T| ∣ det T ∣ 是体积倍率」这条,为什么能推出 det T ≠ 0 ⟺ T \det T\ne0\iff T det T = 0 ⟺ T 可逆?
二、定义与最小例子 #
2.1 先定义算子的行列式 #
从算子出发,而不是从矩阵出发。理由很实在:矩阵依赖基的选取,而我们想要的是 T T T 自己的属性。如果先定义矩阵行列式,就得额外花力气证明它换基不变——那是一笔可以省掉的账。
定义(算子的行列式) 设 T ∈ L ( V ) T\in\mathcal{L}(V) T ∈ L ( V ) ,dim V = n \dim V=n dim V = n 。对 α ∈ V a l t ( n ) \alpha\in V^{(n)}_{\mathrm{alt}} α ∈ V alt ( n ) ,定义 α T \alpha T α T 为
α T ( v 1 , … , v n ) = α ( T v 1 , … , T v n ) \alpha T(v_1,\dots,v_n)=\alpha(Tv_1,\dots,Tv_n) α T ( v 1 , … , v n ) = α ( T v 1 , … , T v n )
也就是说:先用 T T T 把每个输入推过去,再交给 α \alpha α 去读。
α T \alpha T α T 是不是也属于 V a l t ( n ) V^{(n)}_{\mathrm{alt}} V alt ( n ) ?逐个查:
n n n 重线性 :每个 T v k Tv_k T v k 对 v k v_k v k 线性,α \alpha α 对它线性,复合起来仍线性。
交错 :若 v j = v k v_j=v_k v j = v k ,则 T v j = T v k Tv_j=Tv_k T v j = T v k ,于是 α ( … , T v j , … , T v k , … ) = 0 \alpha(\dots,Tv_j,\dots,Tv_k,\dots)=0 α ( … , T v j , … , T v k , … ) = 0 。
所以 α T ∈ V a l t ( n ) \alpha T\in V^{(n)}_{\mathrm{alt}} α T ∈ V alt ( n ) 。于是「α ↦ α T \alpha\mapsto\alpha T α ↦ α T 」是一个从 V a l t ( n ) V^{(n)}_{\mathrm{alt}} V alt ( n ) 到它自身的线性映射。
而 36 讲说过,这个空间是一维 的。一维空间到自身的线性映射,只能是把每个向量乘上某个固定的标量。那个标量,就定义作 det T \det T det T :
α T = ( det T ) α 对一切 α ∈ V a l t ( n ) (37.1) \alpha T=(\det T)\,\alpha\qquad\text{对一切 } \alpha\in V^{(n)}_{\mathrm{alt}} \tag{37.1} α T = ( det T ) α 对一切 α ∈ V alt ( n ) ( 37.1 )
它没有用到任何一组基,没有用到任何公式,只用了「交错 n n n 重线性型空间是一维」这一条。 而且它顺手就送出了 det \det det 是这个空间上的"特征值"这个视角——det T \det T det T 就是线性映射 α ↦ α T \alpha\mapsto\alpha T α ↦ α T 的特征值。 你可以把 det \det det 理解成:T T T 作用在"体积测量尺"上时,那把尺被拉伸了多少倍。
2.2 四个立刻能读出的事实 #
从 (37.1) 出发,不用算任何东西就能得到四条。这也是公理化定义的价值——性质是"读"出来的,不是"算"出来的。
① det I = 1 \det I=1 det I = 1 。 α I = α \alpha I=\alpha α I = α ,所以乘的标量是 1 1 1 。
② det ( λ I ) = λ n \det(\lambda I)=\lambda^n det ( λ I ) = λ n 。 α ( λ I ) \alpha(\lambda I) α ( λ I ) 把每个输入都乘了 λ \lambda λ ,而 α \alpha α 是 n n n 重线性的,n n n 个自变量各提一个 λ \lambda λ 出来,共 λ n \lambda^n λ n 。
③ det ( λ T ) = λ n det T \det(\lambda T)=\lambda^n\det T det ( λ T ) = λ n det T 。 同一个道理:n n n 个位置,每个提一个 λ \lambda λ 。这一个式子就能挡掉"det ( 2 A ) = 2 det A \det(2A)=2\det A det ( 2 A ) = 2 det A "这个最常见的错。n = 3 n=3 n = 3 时,det ( 2 A ) = 8 det A \det(2A)=8\det A det ( 2 A ) = 8 det A ——边长都乘 2 2 2 ,体积当然乘 8 8 8 。
④ 若有由特征向量构成的基,则 det T = λ 1 ⋯ λ n \det T=\lambda_1\cdots\lambda_n det T = λ 1 ⋯ λ n 。 设 e 1 , … , e n e_1,\dots,e_n e 1 , … , e n 是 T T T 的特征向量,T e k = λ k e k Te_k=\lambda_k e_k T e k = λ k e k 。取 α ∈ V a l t ( n ) \alpha\in V^{(n)}_{\mathrm{alt}} α ∈ V alt ( n ) 且 α ≠ 0 \alpha\ne0 α = 0 ,由交错性知 α ( e 1 , … , e n ) ≠ 0 \alpha(e_1,\dots,e_n)\ne0 α ( e 1 , … , e n ) = 0 (这组是基,线性无关),于是
α T ( e 1 , … , e n ) = α ( λ 1 e 1 , … , λ n e n ) = ( λ 1 ⋯ λ n ) α ( e 1 , … , e n ) \alpha T(e_1,\dots,e_n)=\alpha(\lambda_1e_1,\dots,\lambda_ne_n)=(\lambda_1\cdots\lambda_n)\,\alpha(e_1,\dots,e_n) α T ( e 1 , … , e n ) = α ( λ 1 e 1 , … , λ n e n ) = ( λ 1 ⋯ λ n ) α ( e 1 , … , e n )
两边的 α ( e 1 , … , e n ) \alpha(e_1,\dots,e_n) α ( e 1 , … , e n ) 都不是 0 0 0 ,消掉即得 det T = λ 1 ⋯ λ n \det T=\lambda_1\cdots\lambda_n det T = λ 1 ⋯ λ n 。
这条是整个理论的枢纽。它说:行列式在"能被特征向量张满"的情形下,就是特征值之积。 后面 19 讲的「上三角化」会告诉你,换成复空间或加上基的条件,几乎总能做到这一点;于是"det = \det= det = 特征值之积"从特例升级成通例。
2.3 矩阵的行列式 #
定义 :设 A A A 是 n × n n\times n n × n 方阵,令 T ∈ L ( F n ) T\in\mathcal{L}(\mathbb{F}^n) T ∈ L ( F n ) 是关于标准基的矩阵等于 A A A 的那个算子,定义
det A = det T \det A=\det T det A = det T
也就是说:矩阵的行列式,就是"它所代表的那个算子"的行列式。这个定义暂时看着有点绕——它取决于"矩阵对应的算子"这一中间物。但很快(3.6 节之后)会看到,它其实可以直接用矩阵元素写出来。
例(对角矩阵) :A = diag ( λ 1 , … , λ n ) A=\operatorname{diag}(\lambda_1,\dots,\lambda_n) A = diag ( λ 1 , … , λ n ) 。标准基就是特征向量基,于是
det A = λ 1 λ 2 ⋯ λ n (37.2) \det A=\lambda_1\lambda_2\cdots\lambda_n \tag{37.2} det A = λ 1 λ 2 ⋯ λ n ( 37.2 )
例(上三角) :对角元是 λ 1 , … , λ n \lambda_1,\dots,\lambda_n λ 1 , … , λ n 的上三角矩阵,也有 det A = λ 1 ⋯ λ n \det A=\lambda_1\cdots\lambda_n det A = λ 1 ⋯ λ n (3.3 节证)。注意这里已经不只是对角矩阵了——右上角那一堆非零元素都不影响结果。
2.4 从公理推出 2 × 2 2\times2 2 × 2 的公式 #
不要背 a d − b c ad-bc a d − b c ,把它推 出来。这一步是整讲的模板:后面 3 × 3 3\times3 3 × 3 、n × n n\times n n × n 的公式,全是同一套动作。
设 A = ( a b c d ) A=\begin{pmatrix}a&b\\ c&d\end{pmatrix} A = ( a c b d ) ,两列是 v 1 = ( a c ) v_1=\binom{a}{c} v 1 = ( c a ) 、v 2 = ( b d ) v_2=\binom{b}{d} v 2 = ( d b ) 。把每列按标准基 e 1 , e 2 e_1,e_2 e 1 , e 2 拆开:
v 1 = a e 1 + c e 2 , v 2 = b e 1 + d e 2 v_1=ae_1+ce_2,\qquad v_2=be_1+de_2 v 1 = a e 1 + c e 2 , v 2 = b e 1 + d e 2
现在让 det \det det 上场。由多重线性 ,可以逐列展开(先展第一列,再展第二列):
det ( v 1 , v 2 ) = det ( a e 1 + c e 2 , b e 1 + d e 2 ) = a b det ( e 1 , e 1 ) + a d det ( e 1 , e 2 ) + c b det ( e 2 , e 1 ) + c d det ( e 2 , e 2 ) \begin{aligned}\det(v_1,v_2)&=\det(ae_1+ce_2,\ be_1+de_2)\\ &=ab\det(e_1,e_1)+ad\det(e_1,e_2)+cb\det(e_2,e_1)+cd\det(e_2,e_2)\end{aligned} det ( v 1 , v 2 ) = det ( a e 1 + c e 2 , b e 1 + d e 2 ) = ab det ( e 1 , e 1 ) + a d det ( e 1 , e 2 ) + c b det ( e 2 , e 1 ) + c d det ( e 2 , e 2 )
四项分别处理:
det ( e 1 , e 1 ) = 0 \det(e_1,e_1)=0 det ( e 1 , e 1 ) = 0 :交错 ,两个位置放同一个向量。
det ( e 2 , e 2 ) = 0 \det(e_2,e_2)=0 det ( e 2 , e 2 ) = 0 :同上。
det ( e 1 , e 2 ) = 1 \det(e_1,e_2)=1 det ( e 1 , e 2 ) = 1 :归一 。
det ( e 2 , e 1 ) = − 1 \det(e_2,e_1)=-1 det ( e 2 , e 1 ) = − 1 :交换两个位置,符号翻转(这条是从交错 + 多重线性推出来的,见 3.1 节)。
代回去:
det ( a b c d ) = a d − b c (37.3) \det\begin{pmatrix}a&b\\ c&d\end{pmatrix}=ad-bc \tag{37.3} det ( a c b d ) = a d − b c ( 37.3 )
它只用了三条公理,却一步不跳地得到教科书上那个公式。 你以后看到任何"行列式公式",都可以用同一招重建:把每列拆成基向量的线性组合,用多重线性炸开成 n n n^n n n 项,再用交错性砍掉重复的,最后只剩排列项。
2.5 3 × 3 3\times3 3 × 3 的六项式 #
同样的流程走 n = 3 n=3 n = 3 ,得到
det ( a b c d e f g h i ) = a e i + b f g + c d h − c e g − b d i − a f h (37.4) \det\begin{pmatrix}a&b&c\\ d&e&f\\ g&h&i\end{pmatrix}=aei+bfg+cdh-ceg-bdi-afh \tag{37.4} det a d g b e h c f i = a e i + b f g + c d h − ce g − b d i − a f h ( 37.4 )
六项,三项带 + + + 、三项带 − - − 。看图记:从左上往右下的三条"主方向"对角线取正,从右上往左下的三条取负 (这就是中学的"对角线法则")。
n = 4 n=4 n = 4 时项数是 4 ! = 24 4!=24 4 ! = 24 ,其中 12 12 12 正 12 12 12 负,而"对角线"只画出 8 8 8 条。 再往上更不可能靠图记。n ≥ 4 n\ge4 n ≥ 4 请老老实实用 3.3 的排列公式,或者用消元(3.7 节)。
三、几个必须自己算一遍的结论 #
3.1 行列式是交错 n n n 重线性型 #
这是全部性质的源头。结论:把 F n \mathbb{F}^n F n 中 n n n 个向量 v 1 , … , v n v_1,\dots,v_n v 1 , … , v n 映成 det ( v 1 ⋯ v n ) \det\begin{pmatrix}v_1&\cdots&v_n\end{pmatrix} det ( v 1 ⋯ v n ) 的那个函数,是 F n \mathbb{F}^n F n 上的交错 n n n 重线性型。
证明 (短,但要看清每一行的出处)。设 T T T 是满足 T e k = v k Te_k=v_k T e k = v k 的算子——它的矩阵正是 ( v 1 ⋯ v n ) (v_1\ \cdots\ v_n) ( v 1 ⋯ v n ) 。取 α \alpha α 是任一交错 n n n 重线性型且 α ( e 1 , … , e n ) = 1 \alpha(e_1,\dots,e_n)=1 α ( e 1 , … , e n ) = 1 。那么
det ( v 1 ⋯ v n ) = det T = ( det T ) α ( e 1 , … , e n ) = α ( T e 1 , … , T e n ) = α ( v 1 , … , v n ) \begin{aligned}\det(v_1\ \cdots\ v_n)&=\det T\\ &=(\det T)\,\alpha(e_1,\dots,e_n)\\ &=\alpha(Te_1,\dots,Te_n)\\ &=\alpha(v_1,\dots,v_n)\end{aligned} det ( v 1 ⋯ v n ) = det T = ( det T ) α ( e 1 , … , e n ) = α ( T e 1 , … , T e n ) = α ( v 1 , … , v n )
第二行用归一,第三行用 det T \det T det T 的定义 (37.1),第四行用 T e k = v k Te_k=v_k T e k = v k 。
于是"取行列式"这个函数就是 α \alpha α ,当然交错、当然 n n n 重线性。■ \blacksquare ■
由它立刻掉出一条:
两列相同 ⇒ \Rightarrow ⇒ 行列式为 0 0 0 。 交错性的定义就是这么写的。
更一般地,两列成比例也归零 :det ( c v , v ) = c det ( v , v ) = 0 \det(cv,v)=c\det(v,v)=0 det ( c v , v ) = c det ( v , v ) = 0 。这条马上要在"可逆性"和"体积"两处各用一次。
3.2 排列公式:把行列式写成 n ! n! n ! 项之和 #
把 2.4 的推导推到一般 n n n 。设 A A A 的列是 v 1 , … , v n v_1,\dots,v_n v 1 , … , v n ,写成 v k = ∑ j b j , k e j v_k=\sum_{j}b_{j,k}e_j v k = ∑ j b j , k e j 。代进去,用 n n n 重线性炸开:
det A = ∑ j 1 = 1 n ⋯ ∑ j n = 1 n b j 1 , 1 ⋯ b j n , n α ( e j 1 , … , e j n ) \det A=\sum_{j_1=1}^{n}\cdots\sum_{j_n=1}^{n}b_{j_1,1}\cdots b_{j_n,n}\,\alpha(e_{j_1},\dots,e_{j_n}) det A = j 1 = 1 ∑ n ⋯ j n = 1 ∑ n b j 1 , 1 ⋯ b j n , n α ( e j 1 , … , e j n )
n n n^n n n 项。但由交错性,只要某个下标重复,α ( e j 1 , … , e j n ) = 0 \alpha(e_{j_1},\dots,e_{j_n})=0 α ( e j 1 , … , e j n ) = 0 。所以只有 ( j 1 , … , j n ) (j_1,\dots,j_n) ( j 1 , … , j n ) 互不相同——也就是 1 , … , n 1,\dots,n 1 , … , n 的一个排列——才有贡献。剩下的项用"交换一次变号"归一:
det A = ∑ ( j 1 , … , j n ) ∈ perm n sign ( j 1 , … , j n ) A j 1 , 1 A j 2 , 2 ⋯ A j n , n (37.5) \det A=\sum_{(j_1,\dots,j_n)\in\operatorname{perm}_n}\operatorname{sign}(j_1,\dots,j_n)\,A_{j_1,1}A_{j_2,2}\cdots A_{j_n,n} \tag{37.5} det A = ( j 1 , … , j n ) ∈ perm n ∑ sign ( j 1 , … , j n ) A j 1 , 1 A j 2 , 2 ⋯ A j n , n ( 37.5 )
其中 perm n \operatorname{perm}_n perm n 是 1 , … , n 1,\dots,n 1 , … , n 的全部排列,sign \operatorname{sign} sign 是排列的符号:
sign ( j 1 , … , j n ) = ( − 1 ) N , N = # { ( k , ℓ ) : k < ℓ 但 k 排在 ℓ 之后 } (37.6) \operatorname{sign}(j_1,\dots,j_n)=(-1)^{N},\quad N=\#\{(k,\ell):k<\ell\ \text{但}\ k\ \text{排在}\ \ell\ \text{之后}\} \tag{37.6} sign ( j 1 , … , j n ) = ( − 1 ) N , N = # {( k , ℓ ) : k < ℓ 但 k 排在 ℓ 之后 } ( 37.6 )
N N N 叫逆序数 。一句话记:数一数"大数跑到了小数前面"的次数,偶数次为正,奇数次为负。
把一个排列还原成 ( 1 , … , n ) (1,\dots,n) ( 1 , … , n ) 所需交换次数的奇偶性 是固定的(不管你怎么换),它恰好等于逆序数的奇偶性。 所以 sign \operatorname{sign} sign 是一个定义完善的函数,不是"看你走哪条路"。
用 (37.5) 核对 3 × 3 3\times3 3 × 3 :六个排列的符号是 + , − , − , + , + , − +,-,-,+,+,- + , − , − , + , + , − ,展开正好是 (37.4)。你也应当自己手推一次 2 × 2 2\times2 2 × 2 的四个排列,确认只有 ( 1 , 2 ) (1,2) ( 1 , 2 ) 和 ( 2 , 1 ) (2,1) ( 2 , 1 ) 两项。
(37.5) 的代价 :n ! n! n ! 项。n = 10 n=10 n = 10 时超过三百万项,n = 100 n=100 n = 100 时是 10 158 10^{158} 1 0 158 量级——比宇宙原子数还多。所以这个公式是用来推导性质的,不是用来算数的 。真正算数请走 3.7 节。
3.3 上三角矩阵:乘积只剩一项 #
设 A A A 上三角,对角元 λ 1 , … , λ n \lambda_1,\dots,\lambda_n λ 1 , … , λ n 。在 (37.5) 里看:若某个排列 ( j 1 , … , j n ) ≠ ( 1 , … , n ) (j_1,\dots,j_n)\ne(1,\dots,n) ( j 1 , … , j n ) = ( 1 , … , n ) ,必存在某个 k k k 使得 j k > k j_k>k j k > k ——因为它不能一直"j k ≤ k j_k\le k j k ≤ k "(那样每个位置都被前 k k k 个下标占满,只能是恒等排列)。而 j k > k j_k>k j k > k 意味着 A j k , k A_{j_k,k} A j k , k 位于对角线下方 ,上三角矩阵在那里的元素是 0 0 0 。
于是整项为 0 0 0 。只剩 ( 1 , … , n ) (1,\dots,n) ( 1 , … , n ) 这一项,符号 + 1 +1 + 1 ,值是 λ 1 ⋯ λ n \lambda_1\cdots\lambda_n λ 1 ⋯ λ n :
det A = λ 1 λ 2 ⋯ λ n ( A 上三角 ) (37.7) \det A=\lambda_1\lambda_2\cdots\lambda_n\qquad(A\ \text{上三角}) \tag{37.7} det A = λ 1 λ 2 ⋯ λ n ( A 上三角 ) ( 37.7 )
这条看起来平淡,其实是计算行列式的主力 :整个 3.7 节就是在讲"怎么把矩阵变成上三角而把账记清"。
3.4 可乘性:det ( S T ) = det S det T \det(ST)=\det S\det T det ( S T ) = det S det T #
证明只有三行 ,因为定义里那个"α ↦ α T \alpha\mapsto\alpha T α ↦ α T "是复合:
α ( S T ) ( v 1 , … , v n ) = α ( S T v 1 , … , S T v n ) = ( det S ) α ( T v 1 , … , T v n ) = ( det S ) ( det T ) α ( v 1 , … , v n ) \begin{aligned}\alpha(ST)(v_1,\dots,v_n)&=\alpha(STv_1,\dots,STv_n)\\ &=(\det S)\,\alpha(Tv_1,\dots,Tv_n)\\ &=(\det S)(\det T)\,\alpha(v_1,\dots,v_n)\end{aligned} α ( S T ) ( v 1 , … , v n ) = α ( S T v 1 , … , S T v n ) = ( det S ) α ( T v 1 , … , T v n ) = ( det S ) ( det T ) α ( v 1 , … , v n )
对一切 α \alpha α 成立,故 det ( S T ) = det S det T \det(ST)=\det S\det T det ( S T ) = det S det T 。■ \blacksquare ■
矩阵版随之而来:取 S , T S,T S , T 使矩阵为 A , B A,B A , B ,则 S T ST S T 的矩阵是 A B AB A B ,于是
det ( A B ) = det A det B (37.8) \det(AB)=\det A\det B \tag{37.8} det ( A B ) = det A det B ( 37.8 )
tr ( S + T ) = tr S + tr T \operatorname{tr}(S+T)=\operatorname{tr}S+\operatorname{tr}T tr ( S + T ) = tr S + tr T ,但 tr ( S T ) ≠ tr S tr T \operatorname{tr}(ST)\ne\operatorname{tr}S\operatorname{tr}T tr ( S T ) = tr S tr T 。det ( S T ) = det S det T \det(ST)=\det S\det T det ( S T ) = det S det T ,但 det ( S + T ) ≠ det S + det T \det(S+T)\ne\det S+\det T det ( S + T ) = det S + det T 。两个数各自守着一条运算 :迹管加法,行列式管乘法。这就是为什么"可逆性"归行列式,"期望与求和"归迹。
3.5 可逆 ⟺ \iff ⟺ 行列式非零 #
先证 ⇒ \Rightarrow ⇒ 。 设 T T T 可逆,则 T T − 1 = I TT^{-1}=I T T − 1 = I 。由可乘性:
1 = det I = det ( T ) det ( T − 1 ) 1=\det I=\det(T)\det(T^{-1}) 1 = det I = det ( T ) det ( T − 1 )
所以 det T ≠ 0 \det T\ne0 det T = 0 ,而且 det ( T − 1 ) = 1 det T \det(T^{-1})=\dfrac{1}{\det T} det ( T − 1 ) = det T 1 。
再证 ⇐ \Leftarrow ⇐ 。 设 det T ≠ 0 \det T\ne0 det T = 0 ,要证 T T T 可逆,即证零空间只有 0 0 0 。取 v ≠ 0 v\ne0 v = 0 ,把它扩充成一组基 v , e 2 , … , e n v,e_2,\dots,e_n v , e 2 , … , e n ,取非零的 α ∈ V a l t ( n ) \alpha\in V^{(n)}_{\mathrm{alt}} α ∈ V alt ( n ) 。因为这组是基,α ( v , e 2 , … , e n ) ≠ 0 \alpha(v,e_2,\dots,e_n)\ne0 α ( v , e 2 , … , e n ) = 0 (3.1 节的交错性 + 线性无关)。于是
α ( T v , T e 2 , … , T e n ) = ( det T ) α ( v , e 2 , … , e n ) ≠ 0 \alpha(Tv,Te_2,\dots,Te_n)=(\det T)\,\alpha(v,e_2,\dots,e_n)\ne0 α ( T v , T e 2 , … , T e n ) = ( det T ) α ( v , e 2 , … , e n ) = 0
右边非零(两个因子都非零),所以左边非零,故 T v ≠ 0 Tv\ne0 T v = 0 ——不然整组里有重复向量,值就是 0 0 0 了。v ≠ 0 v\ne0 v = 0 时必有 T v ≠ 0 Tv\ne0 T v = 0 ,即零空间是 { 0 } \{0\} { 0 } ,T T T 可逆。■ \blacksquare ■
于是得到一个只看一个数 的判据:
T 可逆 ⟺ det T ≠ 0 , A 可逆 ⟺ det A ≠ 0 (37.9) T\ \text{可逆}\iff \det T\ne0,\qquad A\ \text{可逆}\iff\det A\ne0 \tag{37.9} T 可逆 ⟺ det T = 0 , A 可逆 ⟺ det A = 0 ( 37.9 )
结合 2.2 的第四条,还有一句极好记的话:行列式为 0 0 0 ⟺ \iff ⟺ 有特征值 0 0 0 (在复空间上;实空间上等价于"某个特征值为 0 0 0 或存在复的零特征值")。用几何语言说:T T T 把整个空间压扁了至少一维。
3.6 转置不变:det A T = det A \det A^{\mathsf{T}}=\det A det A T = det A #
这条的价值在于它允许你"行话"与"列话"随意切换 。证明的骨架是把 (37.5) 里的求和重排一次。
思路:定义 α ( v 1 , … , v n ) = det ( ( v 1 ⋯ v n ) T ) \alpha(v_1,\dots,v_n)=\det\left((v_1\ \cdots\ v_n)^{\mathsf{T}}\right) α ( v 1 , … , v n ) = det ( ( v 1 ⋯ v n ) T ) 。由转置矩阵的行列式公式可知 α \alpha α 是 n n n 重线性的;若 v j = v k v_j=v_k v j = v k ,则 ( v 1 ⋯ v n ) T (v_1\ \cdots\ v_n)^{\mathsf{T}} ( v 1 ⋯ v n ) T 的第 j , k j,k j , k 行相同,矩阵不可逆,α = 0 \alpha=0 α = 0 ,故 α \alpha α 交错。又 α ( e 1 , … , e n ) = det I = 1 \alpha(e_1,\dots,e_n)=\det I=1 α ( e 1 , … , e n ) = det I = 1 。由"交错 n n n 重线性型空间一维",α \alpha α 只能是行列式本身。■ \blacksquare ■
它意味着「转置」这个看似只是把矩阵翻过来的操作,不改变任何本质。 后面所有关于"列"的性质,都能免费翻译成关于"行"的性质;"按列展开"和"按行展开"是同一件事。 也正因为如此,行秩 = 列秩这件事才不奇怪。
3.7 行/列操作的记账表:这才是真算法 #
由 3.1 + 3.6,行列式对行 和列 都满足同样的三条。这张表要背下来,因为它是所有手算的地基。
操作
对 det \det det 的影响
依据
交换两行(或两列)
变为原来的 − 1 -1 − 1 倍
交错性
某一行(列)乘 c c c
变为原来的 c c c 倍
多重线性
某行的 c c c 倍加到另一行
不变
多重线性 + 交错性
两行(列)相同或成比例
等于 0 0 0
交错性
第三条要单独推一下,它是消元法的合法性来源:
det ( v 1 + c v 2 , v 2 , … ) = det ( v 1 , v 2 , … ) + c det ( v 2 , v 2 , … ) = det ( v 1 , v 2 , … ) + 0 \det(v_1+cv_2,\ v_2,\dots)=\det(v_1,v_2,\dots)+c\det(v_2,v_2,\dots)=\det(v_1,v_2,\dots)+0 det ( v 1 + c v 2 , v 2 , … ) = det ( v 1 , v 2 , … ) + c det ( v 2 , v 2 , … ) = det ( v 1 , v 2 , … ) + 0
第一项拆开用多重线性,第二项归零用交错性。一行加上另一行的倍数,行列式一动不动。
于是有了完整算法:
用"倍加"把矩阵消成上三角(这一步不记任何账);
遇到需要交换两行时,交换并记一个负号;
遇到某行乘了非零常数 c c c ,记下 c c c ;
上三角后对角元相乘(3.3 节),再按记账的符号与因子还原。
单一交换一次的代价是乘 − 1 -1 − 1 ,所以交换次数是奇是偶很重要 ——这就是为什么"逆序数"那套东西会在消元法里再次出现。
化简时"顺手把某行除以 3 3 3 "图好看——这一步让行列式除以了 3 3 3 ,最后必须乘回来。 更安全的做法:只用倍加 ,把主元"造"成 1 1 1 而不是"除"成 1 1 1 。
3.8 一个 3 × 3 3\times3 3 × 3 的完整手算(两条路线对照) #
取
A = ( 2 − 1 3 1 2 − 1 4 0 5 ) A=\begin{pmatrix}2&-1&3\\ 1&2&-1\\ 4&0&5\end{pmatrix} A = 2 1 4 − 1 2 0 3 − 1 5
路线一:按第一行展开(余子式)
det A = 2 ⋅ det ( 2 − 1 0 5 ) − ( − 1 ) ⋅ det ( 1 − 1 4 5 ) + 3 ⋅ det ( 1 2 4 0 ) \det A=2\cdot\det\begin{pmatrix}2&-1\\ 0&5\end{pmatrix}-(-1)\cdot\det\begin{pmatrix}1&-1\\ 4&5\end{pmatrix}+3\cdot\det\begin{pmatrix}1&2\\ 4&0\end{pmatrix} det A = 2 ⋅ det ( 2 0 − 1 5 ) − ( − 1 ) ⋅ det ( 1 4 − 1 5 ) + 3 ⋅ det ( 1 4 2 0 )
逐个算三个 2 × 2 2\times2 2 × 2 :
det ( 2 − 1 0 5 ) = 2 ⋅ 5 − ( − 1 ) ⋅ 0 = 10 \det\begin{pmatrix}2&-1\\ 0&5\end{pmatrix}=2\cdot5-(-1)\cdot0=10 det ( 2 0 − 1 5 ) = 2 ⋅ 5 − ( − 1 ) ⋅ 0 = 10
det ( 1 − 1 4 5 ) = 1 ⋅ 5 − ( − 1 ) ⋅ 4 = 5 + 4 = 9 \det\begin{pmatrix}1&-1\\ 4&5\end{pmatrix}=1\cdot5-(-1)\cdot4=5+4=9 det ( 1 4 − 1 5 ) = 1 ⋅ 5 − ( − 1 ) ⋅ 4 = 5 + 4 = 9
det ( 1 2 4 0 ) = 1 ⋅ 0 − 2 ⋅ 4 = − 8 \det\begin{pmatrix}1&2\\ 4&0\end{pmatrix}=1\cdot0-2\cdot4=-8 det ( 1 4 2 0 ) = 1 ⋅ 0 − 2 ⋅ 4 = − 8
代回,注意中间的符号是 − - − 而 A 1 , 2 = − 1 A_{1,2}=-1 A 1 , 2 = − 1 ,两个负号相乘得 + + + :
det A = 2 ⋅ 10 + 1 ⋅ 9 + 3 ⋅ ( − 8 ) = 20 + 9 − 24 = 5 \det A=2\cdot10+1\cdot9+3\cdot(-8)=20+9-24=5 det A = 2 ⋅ 10 + 1 ⋅ 9 + 3 ⋅ ( − 8 ) = 20 + 9 − 24 = 5
路线二:行变换化上三角
第一行首元是 2 2 2 ,不方便;交换第 1、2 行(代价:整体变号):
det A = − det ( 1 2 − 1 2 − 1 3 4 0 5 ) ≡ − D 1 \det A=-\det\begin{pmatrix}1&2&-1\\ 2&-1&3\\ 4&0&5\end{pmatrix}\equiv -D_1 det A = − det 1 2 4 2 − 1 0 − 1 3 5 ≡ − D 1
现在做倍加(不改值):R 2 ← R 2 − 2 R 1 R_2\leftarrow R_2-2R_1 R 2 ← R 2 − 2 R 1 、R 3 ← R 3 − 4 R 1 R_3\leftarrow R_3-4R_1 R 3 ← R 3 − 4 R 1 :
D 1 = det ( 1 2 − 1 0 − 5 5 0 − 8 9 ) D_1=\det\begin{pmatrix}1&2&-1\\ 0&-5&5\\ 0&-8&9\end{pmatrix} D 1 = det 1 0 0 2 − 5 − 8 − 1 5 9
再做 R 3 ← R 3 − 8 5 R 2 R_3\leftarrow R_3-\dfrac{8}{5}R_2 R 3 ← R 3 − 5 8 R 2 ,得 ( 0 0 9 − 8 ) = ( 0 0 1 ) \begin{pmatrix}0&0&9-8\end{pmatrix}=\begin{pmatrix}0&0&1\end{pmatrix} ( 0 0 9 − 8 ) = ( 0 0 1 ) :
D 1 = det ( 1 2 − 1 0 − 5 5 0 0 1 ) = 1 ⋅ ( − 5 ) ⋅ 1 = − 5 D_1=\det\begin{pmatrix}1&2&-1\\ 0&-5&5\\ 0&0&1\end{pmatrix}=1\cdot(-5)\cdot1=-5 D 1 = det 1 0 0 2 − 5 0 − 1 5 1 = 1 ⋅ ( − 5 ) ⋅ 1 = − 5
所以 det A = − D 1 = − ( − 5 ) = 5 \det A=-D_1=-(-5)=5 det A = − D 1 = − ( − 5 ) = 5 。
两条路线对上,都是 5 5 5 。
① 路线一只用了九个乘法,路线二用了更多步但每步都是整数/简单分数——n n n 大了以后路线二压倒性更快(O ( n 3 ) O(n^3) O ( n 3 ) 对 O ( n ! ) O(n!) O ( n !) )。② 路线二的每一笔账都记在明面上:交换 1 1 1 次记 − 1 -1 − 1 。若忘了这个负号,会得到 − 5 -5 − 5 ,错得很有欺骗性 (数值合理、符号反了)。③ 两条路线互不影响,正好互为验算。考试时算完一个 3 × 3 3\times3 3 × 3 ,用另一种方法抽验一遍,比重做可靠得多。
3.9 按一行(或一列)展开:Laplace 展开 #
路线一不是巧合,它是一条定理。先定义两个东西。
余子式 M i , j M_{i,j} M i , j :划掉第 i i i 行与第 j j j 列后剩下 ( n − 1 ) × ( n − 1 ) (n-1)\times(n-1) ( n − 1 ) × ( n − 1 ) 矩阵的行列式。代数余子式 C i , j = ( − 1 ) i + j M i , j C_{i,j}=(-1)^{i+j}M_{i,j} C i , j = ( − 1 ) i + j M i , j 。
定理(按第 i i i 行展开)
det A = ∑ j = 1 n A i , j C i , j = ∑ j = 1 n ( − 1 ) i + j A i , j M i , j (37.10) \det A=\sum_{j=1}^{n}A_{i,j}C_{i,j}=\sum_{j=1}^{n}(-1)^{i+j}A_{i,j}M_{i,j} \tag{37.10} det A = j = 1 ∑ n A i , j C i , j = j = 1 ∑ n ( − 1 ) i + j A i , j M i , j ( 37.10 )
为什么成立 (用 3.7 的"交换两列变号"来做,比数逆序数干净得多):
固定 i , j i,j i , j 。把第 i i i 行向上移到第 1 1 1 行,需要 i − 1 i-1 i − 1 次相邻交换;把第 j j j 列向左移到第 1 1 1 列,需要 j − 1 j-1 j − 1 次。因每次交换变号,总共乘上 ( − 1 ) ( i − 1 ) + ( j − 1 ) = ( − 1 ) i + j (-1)^{(i-1)+(j-1)}=(-1)^{i+j} ( − 1 ) ( i − 1 ) + ( j − 1 ) = ( − 1 ) i + j 。移完之后矩阵长这样:
( A i , j 0 ⋯ 0 ∗ M i , j ) \begin{pmatrix}A_{i,j} & 0\ \cdots\ 0\\ \ast & M_{i,j}\end{pmatrix} ( A i , j ∗ 0 ⋯ 0 M i , j )
(右下角那一块就是原来的 M i , j M_{i,j} M i , j ,尺寸 ( n − 1 ) × ( n − 1 ) (n-1)\times(n-1) ( n − 1 ) × ( n − 1 ) 。)第一行只有首元非零,按第一行展开(或者直接由"上三角"的思路)得 det = A i , j ⋅ det M i , j \det=A_{i,j}\cdot\det M_{i,j} det = A i , j ⋅ det M i , j 。所以贡献是 ( − 1 ) i + j A i , j M i , j (-1)^{i+j}A_{i,j}M_{i,j} ( − 1 ) i + j A i , j M i , j 。
把所有 j j j 加起来就是 (37.10)——为什么可以"所有 j j j 加起来" :det \det det 对第 i i i 行是线性的,把这一行拆成 n n n 个"只有一个位置非零"的行之和,逐项用上式即可。■ \blacksquare ■
展开本身是 O ( n ! ) O(n!) O ( n !) 的,不适合大矩阵。它真正的用处有两个:① 某一行(列)里有很多 0 0 0 时,直接砍掉一大片。比如第一行是 ( 1 , 0 , 0 , … , 0 ) (1,0,0,\dots,0) ( 1 , 0 , 0 , … , 0 ) ,那就 det A = ( − 1 ) 1 + 1 ⋅ 1 ⋅ M 1 , 1 \det A=(-1)^{1+1}\cdot1\cdot M_{1,1} det A = ( − 1 ) 1 + 1 ⋅ 1 ⋅ M 1 , 1 ,一次降维。② 处理含文字 的矩阵——比如特征多项式 det ( λ I − A ) \det(\lambda I-A) det ( λ I − A ) 。这类矩阵里出现 λ \lambda λ ,高斯消元要判断"某量是否为零",很麻烦;按一行展开则一路平坦(这就是 34 讲里特征多项式两条系数公式的来历)。
四、几何直观 / 记忆钩子 #
4.1 二维:单位正方形怎么变成平行四边形 #
∣ det A ∣ |\det A| ∣ det A ∣ " loading="lazy" decoding="async" />左:单位正方形,面积 1;右:T 作用后成为平行四边形,面积等于 ∣ det A ∣ |\det A| ∣ det A ∣
这是本讲最该盯着看的一张图。左图是标准基 e 1 , e 2 e_1,e_2 e 1 , e 2 张成的单位正方形;右图是 T T T 把它的每一点都送过去之后的像。
看图的关键是:右图的边界,就是 T e 1 Te_1 T e 1 与 T e 2 Te_2 T e 2 这两条向量 。因为正方形是 { s e 1 + t e 2 : 0 ≤ s , t ≤ 1 } \{se_1+te_2:0\le s,t\le 1\} { s e 1 + t e 2 : 0 ≤ s , t ≤ 1 } ,T T T 是线性的,像就是 { s ( T e 1 ) + t ( T e 2 ) } \{s(Te_1)+t(Te_2)\} { s ( T e 1 ) + t ( T e 2 )} ——正好是那两条边张成的平行四边形。
于是"行列式"这件事就非常具体了:
像的面积 = ∣ det T ∣ ⋅ 原来的面积 = ∣ det T ∣ ⋅ 1 = ∣ det T ∣ (37.11) \text{像的面积}=|\det T|\cdot\text{原来的面积}=|\det T|\cdot 1=|\det T| \tag{37.11} 像的面积 = ∣ det T ∣ ⋅ 原来的面积 = ∣ det T ∣ ⋅ 1 = ∣ det T ∣ ( 37.11 )
图中那个平行四边形的面积,就是单位正方形面积的 ∣ det A ∣ |\det A| ∣ det A ∣ 倍——具体倍数取决于这张图所用的矩阵,你可以自己从图上读出两条边的坐标,用 a d − b c ad-bc a d − b c 验一遍 。更有用的是反过来读:底边是 T e 1 Te_1 T e 1 ,高是 T e 2 Te_2 T e 2 在垂直于 T e 1 Te_1 T e 1 方向上的投影,"底 × 高"算出来的正是 ∣ a d − b c ∣ |ad-bc| ∣ a d − b c ∣ 。
为什么二维的 ∣ det ∣ |\det| ∣ det ∣ 恰好是"底 × 高"? 因为 a d − b c ad-bc a d − b c 就是 v 1 = ( a , c ) v_1=(a,c) v 1 = ( a , c ) 与 v 2 = ( b , d ) v_2=(b,d) v 2 = ( b , d ) 的叉积的绝对值。这不是巧合,是所有维数下的同一个事实的低维影子。
4.2 一般维数:体积的缩放因子 #
定理 :设 T ∈ L ( R n ) T\in\mathcal{L}(\mathbb{R}^n) T ∈ L ( R n ) ,Ω ⊆ R n \Omega\subseteq\mathbb{R}^n Ω ⊆ R n 可测,则
volume ( T ( Ω ) ) = ∣ det T ∣ ⋅ volume ( Ω ) (37.12) \operatorname{volume}\big(T(\Omega)\big)=|\det T|\cdot\operatorname{volume}(\Omega) \tag{37.12} volume ( T ( Ω ) ) = ∣ det T ∣ ⋅ volume ( Ω ) ( 37.12 )
也就是说:∣ det T ∣ |\det T| ∣ det T ∣ 就是"每单位体积被放大多少倍" 。理由是 29 讲的那条:∣ det T ∣ |\det T| ∣ det T ∣ 等于 T T T 的奇异值之积
∣ det T ∣ = det ( T ∗ T ) = s 1 s 2 ⋯ s n (37.13) |\det T|=\sqrt{\det(T^{*}T)}=s_1s_2\cdots s_n \tag{37.13} ∣ det T ∣ = det ( T ∗ T ) = s 1 s 2 ⋯ s n ( 37.13 )
而奇异值正是"在各个互相垂直的方向上分别拉伸的倍数"。n n n 个正交方向各拉 s k s_k s k 倍,体积就乘 ∏ s k \prod s_k ∏ s k 。
① 公理化定义:交错 n n n 重线性 + 归一; ② 排列公式:n ! n! n ! 项带符号的和; ③ 体积倍率:∣ det T ∣ |\det T| ∣ det T ∣ 。 三者是同一个数。代数上它测"列向量张成的块有多大",符号则记录"定向有没有翻"。
T T T 作用后成为长方体,其中 e 2 e_2 e 2 方向被拉长到 2 e 2 2e_2 2 e 2 ;体积从 1 变成 ∣ det T ∣ |\det T| ∣ det T ∣ ——这个例子里正好是 2" loading="lazy" decoding="async" />教材插图:单位立方体经 T T T 作用后成为长方体,其中 e 2 e_2 e 2 方向被拉长到 2 e 2 2e_2 2 e 2 ;体积从 1 变成 ∣ det T ∣ |\det T| ∣ det T ∣ ——这个例子里正好是 2
上面这张是教材上的插图(不是本课自绘):单位立方体被送成一个长方体,只有 e 2 e_2 e 2 方向被拉成两倍,于是体积恰好变成 2 2 2 ,与 ∣ det T ∣ = 2 |\det T|=2 ∣ det T ∣ = 2 吻合。"立方体变成一个箱子"是最好记的体积图像 ——它把一个抽象的数变成了一次具体的拉伸。
v 1 , v 2 , v 3 v_1,v_2,v_3 v 1 , v 2 , v 3 张成的平行六面体;它的体积是 ∣ det ( v 1 v 2 v 3 ) ∣ |\det(v_1\ v_2\ v_3)| ∣ det ( v 1 v 2 v 3 ) ∣ " loading="lazy" decoding="async" />教材插图:三条棱 v 1 , v 2 , v 3 v_1,v_2,v_3 v 1 , v 2 , v 3 张成的平行六面体;它的体积是 ∣ det ( v 1 v 2 v 3 ) ∣ |\det(v_1\ v_2\ v_3)| ∣ det ( v 1 v 2 v 3 ) ∣
这张同样是教材插图。它把"列向量 → 平行六面体"这层对应单独拎出来:矩阵的列不必正交、不必等长,它们张成的那块"斜箱子"的体积就是 ∣ det ∣ |\det| ∣ det ∣ 。配合 4.3 的哈达马不等式看会更清楚:在棱长固定的所有斜箱子里,正方体(棱两两正交)体积最大。
4.3 符号的含义:定向 #
∣ det ∣ |\det| ∣ det ∣ 管大小,det \det det 的符号 管"翻没翻个儿"。
det > 0 \det>0 det > 0 :定向保持(右手还是右手)。
det < 0 \det<0 det < 0 :定向反转(右手变左手,像是在镜子里的像)。
det = 0 \det=0 det = 0 :整个空间被压扁到更低维——体积变为 0 0 0 ,这正是 3.5 节"不可逆"的几何版本。
交换两列 ⇒ \Rightarrow ⇒ 变号,几何上就是"把箱子的两条棱换个顺序,箱子从'右手系'变成'左手系'"。同一块体积,定向相反。
「行列式 = 有向体积的倍率」 。 体积给绝对值,有向给正负号。 于是:可逆 ⟺ \iff ⟺ 体积没被压成 0 0 0 ⟺ det ≠ 0 \iff\det\ne0 ⟺ det = 0 。 于是:det ( A B ) = det A det B \det(AB)=\det A\det B det ( A B ) = det A det B ⟺ \iff ⟺ 先拉 a a a 倍再拉 b b b 倍 = 拉 a b ab ab 倍。
4.4 一个必须亲手验的算例 #
取 T T T 把 e 1 ↦ ( 3 , 0 ) e_1\mapsto(3,0) e 1 ↦ ( 3 , 0 ) 、e 2 ↦ ( 1 , 2 ) e_2\mapsto(1,2) e 2 ↦ ( 1 , 2 ) ,矩阵 ( 3 1 0 2 ) \begin{pmatrix}3&1\\ 0&2\end{pmatrix} ( 3 0 1 2 ) ,det = 6 \det=6 det = 6 。单位正方形变成底 3 3 3 、高 2 2 2 的平行四边形,面积 6 6 6 ✓。
再取 S S S 把 e 1 ↦ ( 0 , 1 ) e_1\mapsto(0,1) e 1 ↦ ( 0 , 1 ) 、e 2 ↦ ( 1 , 0 ) e_2\mapsto(1,0) e 2 ↦ ( 1 , 0 ) ,矩阵 ( 0 1 1 0 ) \begin{pmatrix}0&1\\ 1&0\end{pmatrix} ( 0 1 1 0 ) ,det = − 1 \det=-1 det = − 1 。它把正方形翻成同样的正方形,面积 1 1 1 ,符号 − 1 -1 − 1 ——这就是"交换两列变号"的几何解释 。
五、常见误区 #
误区 1:det ( A + B ) = det A + det B \det(A+B)=\det A+\det B det ( A + B ) = det A + det B A = ( 1 0 0 0 ) , B = ( 0 0 0 1 ) , det A = det B = 0 , 但 det ( A + B ) = det I = 1 A=\begin{pmatrix}1&0\\ 0&0\end{pmatrix},\ B=\begin{pmatrix}0&0\\ 0&1\end{pmatrix},\quad \det A=\det B=0,\ \text{但}\ \det(A+B)=\det I=1 A = ( 1 0 0 0 ) , B = ( 0 0 0 1 ) , det A = det B = 0 , 但 det ( A + B ) = det I = 1
行列式对每一列 线性,不对方阵整体线性。这也正是"多重线性"这个怪名字的由来。
误区 2:det ( 2 A ) = 2 det A \det(2A)=2\det A det ( 2 A ) = 2 det A 正确是 det ( c A ) = c n det A \det(cA)=c^{n}\det A det ( c A ) = c n det A ,n n n 是阶数。 理由:把 n n n 列各提一个 c c c 出来。 几何版本:边长都乘 2 2 2 ,3 3 3 维体积乘 8 8 8 而不是 2 2 2 ——这个直觉比公式可靠 。
只有 V → V V\to V V → V (同维、同空间)才有。T : V → W T:V\to W T : V → W 且 dim V ≠ dim W \dim V\ne\dim W dim V = dim W 时,det T \det T det T 无定义——连"算子"都不是。 这不是吹毛求疵:相似不变量的证明里就吃过这个亏。若 S : W → V S:W\to V S : W → V 可逆且 W ≠ V W\ne V W = V ,则 det S \det S det S 无定义,就不能写 det ( S − 1 T S ) = det S − 1 det T det S \det(S^{-1}TS)=\det S^{-1}\det T\det S det ( S − 1 T S ) = det S − 1 det T det S ,得换一条路证(用交错型的拉回)。
误区 4:把"det = 0 \det=0 det = 0 "等同于"矩阵是零矩阵" ( 1 2 2 4 ) \begin{pmatrix}1&2\\ 2&4\end{pmatrix} ( 1 2 2 4 ) 行列式为 0 0 0 ,但它显然不是零矩阵。det = 0 \det=0 det = 0 只说明列线性相关 (存在非平凡线性组合为零),秩降了,别的什么都没说。
余子式的符号是 ( − 1 ) i + j (-1)^{i+j} ( − 1 ) i + j ,是棋盘格 :
( + − + − + − + − + ) \begin{pmatrix}+&-&+\\ -&+&-\\ +&-&+\end{pmatrix} + − + − + − + − +
常见错误:把 A 1 , 2 A_{1,2} A 1 , 2 的项也写成 + + + 。注意 3.8 里 A 1 , 2 = − 1 A_{1,2}=-1 A 1 , 2 = − 1 而符号是 − - − ,两个负号相乘得正——符号与元素的正负是两件事,分别记 。
交换两行不记 − 1 -1 − 1 、某行乘了常数不记回来、把"提取公因子"当成"倍加"——这三类错误会让结果符号或倍数错掉,而数值往往仍然"看着合理",极难自查。对策 :只用倍加;非要除的时候,把除以的常数写在旁边,最后乘回去。
六、拓展(可选,可跳过) #
6.1 特征多项式与 Cayley–Hamilton #
把 λ \lambda λ 当变量,det ( λ I − T ) \det(\lambda I-T) det ( λ I − T ) 是一个关于 λ \lambda λ 的 n n n 次首一多项式,叫特征多项式 。由 3.5 节的等价,它的根恰是特征值。展开后
det ( z I − T ) = z n − ( tr T ) z n − 1 + ⋯ + ( − 1 ) n det T (37.14) \det(zI-T)=z^{n}-(\operatorname{tr}T)z^{n-1}+\cdots+(-1)^{n}\det T \tag{37.14} det ( z I − T ) = z n − ( tr T ) z n − 1 + ⋯ + ( − 1 ) n det T ( 37.14 )
最高次与次高次系数分别锁住了 det \det det 与 tr \operatorname{tr} tr ——这就是 34 讲说的"迹与行列式是特征多项式的两个最低次系数"。把 T T T 代进去还得 0 0 0 ,即 Cayley–Hamilton 定理 。它在实空间上也成立(借助复化),这也是"用一个多项式刻画算子"这条线的终点之一。
6.2 范德蒙德行列式 #
det ( 1 β 1 ⋯ β 1 n − 1 1 β 2 ⋯ β 2 n − 1 ⋮ ⋮ ⋮ 1 β n ⋯ β n n − 1 ) = ∏ 1 ≤ j < k ≤ n ( β k − β j ) (37.15) \det\begin{pmatrix}1&\beta_1&\cdots&\beta_1^{n-1}\\ 1&\beta_2&\cdots&\beta_2^{n-1}\\ \vdots&\vdots&&\vdots\\ 1&\beta_n&\cdots&\beta_n^{n-1}\end{pmatrix}=\prod_{1\le j<k\le n}(\beta_k-\beta_j) \tag{37.15} det 1 1 ⋮ 1 β 1 β 2 ⋮ β n ⋯ ⋯ ⋯ β 1 n − 1 β 2 n − 1 ⋮ β n n − 1 = 1 ≤ j < k ≤ n ∏ ( β k − β j ) ( 37.15 )
这个公式一眼看出:β j \beta_j β j 互不相同时行列式非零 ,于是就插值问题"过 n n n 个不同点的 n − 1 n-1 n − 1 次多项式存在且唯一"有了一个干净的证明。这条在数值分析(插值、求积公式)和信号处理(离散傅里叶)里天天出现。
6.3 哈达马不等式 #
∣ det A ∣ ≤ ∏ k = 1 n ∥ v k ∥ (37.16) \left|\det A\right|\le\prod_{k=1}^{n}\|v_k\| \tag{37.16} ∣ det A ∣ ≤ k = 1 ∏ n ∥ v k ∥ ( 37.16 )
v k v_k v k 是 A A A 的各列。几何读法(由 4.2):棱长固定的平行体中,体积最大的是各棱两两正交的那个。 等号成立当且仅当各列两两正交。
6.4 为什么要有"更快的方法" #
排列公式 n ! n! n ! 项,消元 O ( n 3 ) O(n^3) O ( n 3 ) 。n = 20 n=20 n = 20 时前者约 2.4 × 10 18 2.4\times10^{18} 2.4 × 1 0 18 项,后者约 8000 8000 8000 步。这个差距不是常数因子,是量级——所以行列式在计算上从来不是"按定义算"的。
顺带一句:算特征值也别指望这条路线。det ( λ I − A ) = 0 \det(\lambda I-A)=0 det ( λ I − A ) = 0 对 n ≥ 5 n\ge5 n ≥ 5 一般没有根式解,实际用的是迭代法(QR 算法等),行列式在这里的作用是"理论刻画"而不是"数值算法"。
6.5 关于"三种定义" #
本课用"交错多重线性型"这条线定义行列式。你会在别处见到另外两条:排列公式直接定义(先给公式,再证性质),或几何定义(先定义为体积倍率,再证性质)。三条等价,选哪条当定义只是取舍:公理化那条最容易说清"为什么唯一",排列公式那条最方便算小矩阵,几何那条最有直觉。
七、自测(先做,再看答案) #
1. 设 A A A 是 4 × 4 4\times4 4 × 4 矩阵,det A = 3 \det A=3 det A = 3 。求 det ( 2 A ) \det(2A) det ( 2 A ) 、det ( − A ) \det(-A) det ( − A ) 、det ( A T A ) \det(A^{\mathsf{T}}A) det ( A T A ) 、det ( A − 1 ) \det(A^{-1}) det ( A − 1 ) 。
2. 不展开,直接说出 det ( 1 2 3 2 4 6 7 8 9 ) \det\begin{pmatrix}1&2&3\\ 2&4&6\\ 7&8&9\end{pmatrix} det 1 2 7 2 4 8 3 6 9 的值,并说明理由。
3. 用两种 方法求 det ( 0 1 2 1 0 3 4 5 0 ) \det\begin{pmatrix}0&1&2\\ 1&0&3\\ 4&5&0\end{pmatrix} det 0 1 4 1 0 5 2 3 0 ,验证结果一致。
4. 设 A A A 是 n × n n\times n n × n 矩阵且 A 2 = A A^2=A A 2 = A (幂等)。证明 det A \det A det A 只能是 0 0 0 或 1 1 1 。
5. 设 T ∈ L ( R 3 ) T\in\mathcal{L}(\mathbb{R}^3) T ∈ L ( R 3 ) 把一个体积为 5 5 5 的球映成一个体积为 40 40 40 的椭球。问 ∣ det T ∣ |\det T| ∣ det T ∣ 是多少?det T \det T det T 可能是 − 2 -2 − 2 吗?
答案(点开) 1. det ( 2 A ) = 2 4 det A = 16 ⋅ 3 = 48 \det(2A)=2^4\det A=16\cdot3=48 det ( 2 A ) = 2 4 det A = 16 ⋅ 3 = 48 ;det ( − A ) = ( − 1 ) 4 det A = 3 \det(-A)=(-1)^4\det A=3 det ( − A ) = ( − 1 ) 4 det A = 3 ;det ( A T A ) = det ( A T ) det A = 3 ⋅ 3 = 9 \det(A^{\mathsf{T}}A)=\det(A^{\mathsf{T}})\det A=3\cdot3=9 det ( A T A ) = det ( A T ) det A = 3 ⋅ 3 = 9 ;det ( A − 1 ) = 1 / 3 \det(A^{-1})=1/3 det ( A − 1 ) = 1/3 。 (第 2 问最容易错成 − 3 -3 − 3 :n n n 是偶数时 ( − 1 ) n = 1 (-1)^n=1 ( − 1 ) n = 1 ,负号被吃掉了。)
2. 值是 0 0 0 。因为第 2 行 = 2 × =2\times = 2 × 第 1 行,两行成比例,由交错性归零。 (顺便:det ( 7 8 9 ⋅ ⋅ ⋅ ) \det\begin{pmatrix}7&8&9\\ \cdot&\cdot&\cdot\end{pmatrix} det ( 7 ⋅ 8 ⋅ 9 ⋅ ) 不要真的去算——3 × 3 3\times3 3 × 3 一旦出现成比例的行列,答案必然是 0 0 0 。)
3. 按第一行展开:
det = 0 ⋅ det ( 0 3 5 0 ) − 1 ⋅ det ( 1 3 4 0 ) + 2 ⋅ det ( 1 0 4 5 ) = 0 − ( − 12 ) + 2 ⋅ 5 = 22 \det=0\cdot\det\begin{pmatrix}0&3\\ 5&0\end{pmatrix}-1\cdot\det\begin{pmatrix}1&3\\ 4&0\end{pmatrix}+2\cdot\det\begin{pmatrix}1&0\\ 4&5\end{pmatrix}=0-(-12)+2\cdot5=22 det = 0 ⋅ det ( 0 5 3 0 ) − 1 ⋅ det ( 1 4 3 0 ) + 2 ⋅ det ( 1 4 0 5 ) = 0 − ( − 12 ) + 2 ⋅ 5 = 22
消元:R 1 ↔ R 2 R_1\leftrightarrow R_2 R 1 ↔ R 2 (记 − 1 -1 − 1 ),得 ( 1 0 3 0 1 2 4 5 0 ) \begin{pmatrix}1&0&3\\ 0&1&2\\ 4&5&0\end{pmatrix} 1 0 4 0 1 5 3 2 0 ;R 3 ← R 3 − 4 R 1 R_3\leftarrow R_3-4R_1 R 3 ← R 3 − 4 R 1 得 ( 0 , 5 , − 12 ) (0,5,-12) ( 0 , 5 , − 12 ) ;R 3 ← R 3 − 5 R 2 R_3\leftarrow R_3-5R_2 R 3 ← R 3 − 5 R 2 得 ( 0 , 0 , − 22 ) (0,0,-22) ( 0 , 0 , − 22 ) 。 上三角对角元 1 ⋅ 1 ⋅ ( − 22 ) = − 22 1\cdot1\cdot(-22)=-22 1 ⋅ 1 ⋅ ( − 22 ) = − 22 ,故 det = ( − 1 ) × ( − 22 ) = 22 \det=(-1)\times(-22)=22 det = ( − 1 ) × ( − 22 ) = 22 。两种方法一致 ✓
4. 由 A 2 = A A^2=A A 2 = A 与可乘性:det A = det ( A 2 ) = ( det A ) 2 \det A=\det(A^2)=(\det A)^2 det A = det ( A 2 ) = ( det A ) 2 。于是 det A \det A det A 是方程 x = x 2 x=x^2 x = x 2 的根,只能 0 0 0 或 1 1 1 。 (几何意义:幂等就是投影,特征值只有 0 , 1 0,1 0 , 1 ,乘积自然是 0 0 0 或 1 1 1 ;det = 1 \det=1 det = 1 对应"投影到全空间"即 A = I A=I A = I ,det = 0 \det=0 det = 0 对应真投影。)
5. 由 (37.12),40 = ∣ det T ∣ ⋅ 5 40=|\det T|\cdot5 40 = ∣ det T ∣ ⋅ 5 ,故 ∣ det T ∣ = 8 |\det T|=8 ∣ det T ∣ = 8 。det T = − 2 \det T=-2 det T = − 2 不可能,因为 ∣ det T ∣ |\det T| ∣ det T ∣ 必须等于 8 8 8 ;det T \det T det T 只能是 8 8 8 或 − 8 -8 − 8 (后者表示定向被翻)。
八、复习卡 #
项
内容
公理化定义
交错 n n n 重线性 + 归一 α ( e 1 , … , e n ) = 1 \alpha(e_1,\dots,e_n)=1 α ( e 1 , … , e n ) = 1 ;由 36 讲「维数为 1」保证唯一
算子版定义
α T = ( det T ) α \alpha T=(\det T)\alpha α T = ( det T ) α ,即 det T \det T det T 是 α ↦ α T \alpha\mapsto\alpha T α ↦ α T 那个标量
矩阵版定义
det A = det T \det A=\det T det A = det T ,T T T 是标准基下矩阵为 A A A 的算子
2 × 2 2\times2 2 × 2
det ( a b c d ) = a d − b c \det\begin{pmatrix}a&b\\ c&d\end{pmatrix}=ad-bc det ( a c b d ) = a d − b c
3 × 3 3\times3 3 × 3
a e i + b f g + c d h − c e g − b d i − a f h aei+bfg+cdh-ceg-bdi-afh a e i + b f g + c d h − ce g − b d i − a f h (对角线法则,仅 n ≤ 3 n\le3 n ≤ 3 )
排列公式
det A = ∑ perm sign ( j 1 , … , j n ) A j 1 , 1 ⋯ A j n , n \det A=\sum_{\operatorname{perm}}\operatorname{sign}(j_1,\dots,j_n)A_{j_1,1}\cdots A_{j_n,n} det A = ∑ perm sign ( j 1 , … , j n ) A j 1 , 1 ⋯ A j n , n ,共 n ! n! n ! 项
符号
sign = ( − 1 ) 逆序数 \operatorname{sign}=(-1)^{\text{逆序数}} sign = ( − 1 ) 逆序数 ,逆序数 = 大数排在小数前面的次数
上三角
det = ∏ λ k \det=\prod\lambda_k det = ∏ λ k (对角元之积),对角、上三角、下三角通用
可乘性
det ( S T ) = det S det T \det(ST)=\det S\det T det ( S T ) = det S det T ,det ( A B ) = det A det B \det(AB)=\det A\det B det ( A B ) = det A det B
可逆判据
det T ≠ 0 ⟺ T \det T\ne0\iff T det T = 0 ⟺ T 可逆;det ( T − 1 ) = 1 / det T \det(T^{-1})=1/\det T det ( T − 1 ) = 1/ det T
转置
det A T = det A \det A^{\mathsf{T}}=\det A det A T = det A ;行性质与列性质完全对称
交换两行/列
变号
某行乘 c c c
乘 c c c
倍加
不变(消元法合法性的来源)
成比例
两行/列成比例 ⇒ det = 0 \Rightarrow\det=0 ⇒ det = 0
按一行展开
det A = ∑ j ( − 1 ) i + j A i , j M i , j \det A=\sum_j(-1)^{i+j}A_{i,j}M_{i,j} det A = ∑ j ( − 1 ) i + j A i , j M i , j ,棋盘格符号 ( − 1 ) i + j (-1)^{i+j} ( − 1 ) i + j
体积
∣ det T ∣ = volume ( T ( Ω ) ) / volume ( Ω ) |\det T|=\operatorname{volume}(T(\Omega))/\operatorname{volume}(\Omega) ∣ det T ∣ = volume ( T ( Ω )) / volume ( Ω )
奇异值
∣ det T ∣ = s 1 s 2 ⋯ s n = det ( T ∗ T ) |\det T|=s_1s_2\cdots s_n=\sqrt{\det(T^{*}T)} ∣ det T ∣ = s 1 s 2 ⋯ s n = det ( T ∗ T )
特征值
F = C \mathbb{F}=\mathbb{C} F = C 时 det T = ∏ λ k \det T=\prod\lambda_k det T = ∏ λ k (含重数)
与迹对照
迹管加法,行列式管乘法;两者是特征多项式的两个最低次系数
算法
排列公式 O ( n ! ) O(n!) O ( n !) 只用于推导;实际算用消元 O ( n 3 ) O(n^3) O ( n 3 ) ,并记好交换与倍乘的账
九、出处与延伸(可选,不影响阅读) #
主线出处 :本讲的定义与主要结论系统对应《线性代数应该这样学》(第 4 版,吴俊达、何阳 译)第 9 章 9C 节「行列式」,PDF 页码 p309–322(印刷页码 p296–308)。原文编号:9.40(α T \alpha T α T 的定义)、9.41(算子的行列式)、9.42(det I \det I det I 、det ( λ I ) \det(\lambda I) det ( λ I ) 、det ( λ T ) \det(\lambda T) det ( λ T ) 、特征值之积)、9.43(矩阵的行列式)、9.45(行列式是交错多重线性型)、9.46(排列公式)、9.48(上三角)、9.49(可乘性)、9.50(可逆 ⟺ \iff ⟺ 非零)、9.51(特征值与 det ( λ I − T ) \det(\lambda I-T) det ( λ I − T ) )、9.52(相似不变)、9.53(算子行列式 = 任一基下矩阵的行列式)、9.55(复空间上 = 特征值之积)、9.56(转置/对偶/伴随)、9.57(行列式计算的五条)、9.60(∣ det T ∣ = |\det T|= ∣ det T ∣ = 奇异值之积)、9.61(T T T 把体积变为 ∣ det T ∣ |\det T| ∣ det T ∣ 倍)、9.62–9.63(特征多项式)、9.64(Cayley–Hamilton)、9.65(特征多项式的系数与迹、行列式)、9.66(哈达马不等式)、9.67(范德蒙德行列式)。
公理化定义的前置 :9.36(交错多重线性型的展开公式)、9.37(dim V a l t ( n ) = 1 \dim V^{(n)}_{\mathrm{alt}}=1 dim V alt ( n ) = 1 )、9.39(非零交错 n n n 重线性型与线性无关的等价)——这三条对应本课 36 讲。
本讲的顺序调整 :原文先给算子定义、再给矩阵定义与公式;本讲把"为什么必须是它"(第 1.2–1.3 节)提前,并在第 2.4 节把 2 × 2 2\times2 2 × 2 的公式完整推导一遍,因为它是最便宜的"公理 → 公式"演示。逻辑关系未变。
本讲自行补充、原文未单列的内容 :① 3.9 节的 Laplace 展开。原文只在习题中给出特例(方阵第一列除首元外全为零时 det A = A 1 , 1 det B \det A=A_{1,1}\det B det A = A 1 , 1 det B ),本讲把它推广成一般的按行/按列展开,并用"行列交换移动 + 变号"给出证明,未使用逆序数计数。请以本讲的证明为准,若与别处教材陈述有异,按"移动行列 + 每次变号"的逻辑自查即可。② 4.1 节那张示意图中的平行四边形坐标由绘图者选定,本讲不给出其行列式的具体数值 ,只用它说明"面积 = ∣ det ∣ |\det| ∣ det ∣ "这个关系。
配图说明 :ch37/det-area.png 为本课绘制的示意图;ch37/book-p255.png、ch37/book-p256.png 为教材插图(分别对应平行六面体与单位立方体的像),已在正文注明来源。
与其他讲次的关系 :可逆性见 10 讲;上三角化见 19 讲;特征值与代数重数见 17 讲;奇异值与 ∣ det T ∣ = ∏ s k |\det T|=\prod s_k ∣ det T ∣ = ∏ s k 见 29 讲;迹与特征多项式系数见 34 讲;交错多重线性型与排列符号见 36 讲。
术语别名 :「行列式」= determinant = Determinante(德)= определитель(俄);「余子式」= minor;「代数余子式」= cofactor;「逆序数」= number of inversions;「幺正/酉」= unitary。中文教材有时把"按一行展开"称作"拉普拉斯展开"。
想深挖时可查 :Horn & Johnson《Matrix Analysis》第 0 章关于行列式的公理化处理与哈达马不等式的加强版;《行列式入门》中排列、逆序数与范德蒙德行列式的计算细节;数值线性代数教材中 LU 分解与行列式的关系(det A = ± ∏ U k , k \det A=\pm\prod U_{k,k} det A = ± ∏ U k , k ,符号由行交换次数决定)。
这一讲真正只有一句话:行列式是唯一一个"交错、n n n 重线性、归一"的函数,而它恰好是体积的倍率。 所有让你觉得"公式很多"的地方,都是这两句的展开。 若只记一件,记 det ( A B ) = det A det B \det(AB)=\det A\det B det ( A B ) = det A det B 与 det T ≠ 0 ⟺ T \det T\ne0\iff T det T = 0 ⟺ T 可逆——它们撑起了后面所有"用数判断结构"的论证。