行列式:体积与可逆性
第一章留下三笔账: 的行列式只有面积直觉,没法算更大的矩阵;"可逆 "只在 上验证过;转置、乘积这些运算和行列式的关系还没说. 这一章一次结清.
核心只有一句话:行列式是体积的膨胀率,带符号.
高中那点工具,够用到哪里
行列式这个名字高中不讲,但它的算式你早就用过两次:
- 必修二 6.3.4 数乘运算的坐标表示:判断两个向量 、 共线,用的是"十字相乘相减":
这就是二阶行列式等于零.
- 必修二 6.4.1 平面几何中的向量方法:求三角形面积时出现过同一个式子——以原点为一个顶点、另两个顶点为 、 的三角形,面积是 .
两个""是同一件事:共线是面积为零的特例. 这一章把这一个数推广到 维:它测量平行体体积,体积为零就是退化(共线、共面、……). 高中见过的 版本,是它在二维的剪影.
从面积到体积
第一章说过: 矩阵 把单位正方形映成平行四边形, 是这个平行四边形的有向面积——绝对值是面积,符号编码定向.
维同理:
定义(几何版行列式) 是 把单位立方体 映成的平行体(parallelepiped)的有向体积;定向由 个列向量共同决定,发生"镜像"(交换两列)时变号.
几何直觉(先算三个数).
- :单位正方形被映成面积 的平行四边形; 表示定向保持(逆时针还是逆时针).
- 对角阵 (主对角线上依次是 ,其余位置全是 ):单位立方体被拉成体积 的长方体——三个方向分别拉伸 、、 倍,体积就是乘积.
- 若某矩阵的 :面积仍是 ,但平面被翻了一面(比如两列交换过次序).
问题是:这个体积怎么算? 维平行体的体积不是画出来就能读的. 出路是换一个角度——不先算,先把"体积应该满足什么性质"列出来.
例题(教材风格). (1) 判断 、、 三点是否共线;(2) 求三角形(顶点 、、)的面积.
解(高中). (1) ,,用坐标判断共线:,三点共线. (2) .
线代读法. 两问用的是同一个数:,即二阶行列式. 共线 这个数为零 两个向量张成的"平行四边形面积"为零;三角形面积则是它的一半. 高中用它判断共线、算面积,这一章用它测量 维体积——名称从"十字相乘相减"升级为"行列式".
三条公理,唯一确定行列式
把行列式看成一个函数 :喂进 个列向量,吐出一个数.
定义(公理版行列式) 满足以下三条的函数 叫行列式: (i) 多重线性:对每一列都线性,例如
(ii) 交错性:交换任意两列, 变号; (iii) 归一化:.
三条都有几何含义,正好对应体积的常识:
- (i) 一列伸长 倍,平行体的体积也伸 倍;一列拆成两个向量之和,体积分成两块——这就是"对每一列线性".
- (ii) 交换两列相当于做一次镜像,体积大小不变、定向翻转,所以变号.
- (iii) 标准立方体(列是 )体积为 1.
三条公理可以推出全部实用性质,推导都是一两行.
两列相同则 . 交换这两列,计算对象没变(矩阵还是那个矩阵),但交错性要求变号:,所以 .
有一列是零则 . 取 用多重线性:.
一列是其他列的线性组合则 . 比如第三列 ,由多重线性拆成 ;两项都有两列相同,都是零.
倍加列不变. 把第一列换成 :
"往一列上叠加另一列,体积不变"——这正是消元法里"一行加另一行的倍数不改变解"的几何版本.
上三角矩阵的 对角线之积. 用倍加把上方元素逐个消成零(体积不变),再用多重线性把每列的对角元提出来,剩下单位矩阵.
把这几条反过来读,就是初等变换对行列式的作用表:
| 操作 | 对 det 的影响 |
|---|---|
| 交换两列 | 变号 |
| 某列乘 | 乘 |
| 某列加另一列的倍数 | 不变 |
存在性与唯一性(选读)
唯一性. 设 满足三条公理. 把每一列用标准基展开:. 由多重线性, 等于 项之和,每项形如 . 由交错性,只要下标 有两个相同,;剩下的项对应排列 ,且 (把 拆成对换,每次变号),最后由归一化定值为 . 于是
唯一性清空:任何满足公理的 都被迫等于这个和.
存在性. 上式(Leibniz 公式)定义的函数确实满足三条:每一项在每列里恰出现一个因子,所以多重线性;交换两列时每个排列的符号翻转,所以交错;单位矩阵只有恒等排列一项 ,所以归一化.
(Leibniz 公式是定义,不是算法—— 项没法手算. 具体怎么算,是下一节的事.)
怎么算行列式:Sarrus、展开与消元
Leibniz 公式回答了"行列式是什么",没回答"怎么算". 实际计算有三条路,按矩阵的形状与大小选.
Sarrus 法则(只限于三阶)
的六项正好可以摆成"三条斜线之和减三条斜线之和":
(后三项来自三条副方向斜线,逐项带减号.)
操作办法:把前两列抄到矩阵右边,三条左上到右下的斜线相加,三条右上到左下的斜线逐项相减. 拿习题里的矩阵走一遍:
主方向三条相加:; 副方向三条逐项相减:. 合起来 .
Sarrus 只对 成立,不能外推. 的 Leibniz 和是 24 项、 是 120 项,斜线画法失效;用三条对角线硬凑 一定会错. 更大的矩阵请用下面两条路.
展开法(Laplace 展开,适合零多的矩阵)
定义(余子式与代数余子式) 划掉第 行与第 列,剩下的小矩阵的行列式叫 余子式,记 ;乘上符号后得到代数余子式
定理(按行/列展开) 固定任意一行 ,
把行换成列同样成立.
人话:沿一行(或一列)把 阶行列式拆成 个 阶行列式. 那一行里的零越多,要算的项越少.
按第一行展开,和 Sarrus 是同一批数的不同分组:
的例子:第二行只有一个非零元 ,展开一次就降成三阶,
(第二次沿第三行展开,第三次直接用 公式.)
展开定理的证明思路
把第 行写成 ( 表示第 个位置为 1 的行向量),用多重线性把行列式拆成 项. 每一项提出系数 后,剩下的是"第 行只有第 个位置是 1"的行列式:把第 行交换到第一行( 次交换)、第 列交换到第一列( 次交换),合计给出符号 ,剩下的就是余子式 .
消元法(推荐,任意大小都能用)
这是机器和手算都通用的方法,靠的是初等变换表.
算法(高斯消元算行列式)
- 用倍加操作(某行加另一行的倍数)把矩阵消成上三角;当前列的对角位置为零时,与下面某一行交换(交换要记一次变号),使那个位置非零;
- 一旦出现全零行,立刻停手:;
- 化成上三角后, 对角线之积.
还是那个 :
全程没有交换,,与 Sarrus、展开两种算法一致.
几何直觉. 消元法能算体积,靠的正是三条公理的几何内容:倍加是"把平行体推斜"(剪切,体积不变),交换是"翻面"(体积不变、符号翻转),把一个方向拉伸若干倍则体积按同倍数缩放. 消元全程只是在记账,体积的绝对值不会被改掉.
两条路的成本. 展开法每降一阶要算 个 阶行列式,总量按 增长;消元法是 : 时前者已经没救,后者机器瞬间完成. 数值软件用的是 LU 分解——它是消元法的矩阵写法 ( 下三角、对角元为 1),于是 上三角对角线之积,细节留到矩阵分析.
乘积与转置
命题(乘法性) .
证明
固定 ,把 的列记作 ,考察函数 .
- 的列是 ,每个都在 里线性出现,所以 多重线性;
- 交换 的两列, 的两列也交换, 变号;
- 时 .
也就是说: 满足公理 (i)(ii),而满足 (i)(ii) 的函数与行列式只差一个常数倍(唯一性证明里"归一化"只决定这个倍数),这个倍数由 的值 定出,故 .
命题(转置不变) .
证明. 看 Leibniz 公式:(把 的元素用 写出来),这正是 的求和式,只是项的排列顺序不同.
几何解释:列向量张成的平行体与行向量张成的平行体体积相同——转置不改变"膨胀率".
可逆等价于行列式不为零
两边的证明现在都是几行.
() 若 可逆,则 ,两边取行列式:由乘法性
所以 ,而且 .
() 设 . 要证 可逆,也就是"无论右端 是什么, 都能唯一地解出来".
先看消元之后的样子. 用倍加操作把 化成行阶梯形 (倍加不改变行列式,交换至多变号),于是 . 行阶梯形的行列式是对角线之积,所以 的对角元全不为零、没有零行.
三角形系统总能倒着解. 解 时从最后一行往上回代. 拿本章的 例子,消元后
从下往上逐行读出来就是
每一步除的都是非零对角元,所以随便给一个 ,都能老老实实从下往上算出唯一的 ——这就是" 可逆".
回到 . 消元用到的每一步(倍加、交换)都能原样撤销:加了多少减回去,换过再换回来. 于是 等于"一串可逆操作"乘 ;可逆乘可逆仍可逆,所以 可逆就推出 可逆.
反过来,若 :由公理推出的性质, 的列向量线性相关,它们张不成整个 ,映射不可能是双射,不可逆.
至此,"可逆 "在任意 上都证完了,第一章的欠账结清.
几何总结. 可逆性现在有了一个体积读数: 等价于"没有任何方向被压扁". 压扁意味着不同的输入落进同一个输出(体积为零,信息丢失,倒不回去);不压扁则体积倍率非零,可以按 的比例把输出倒推回唯一的输入. "被压扁的方向"与"能到达的方向"是下一章的主角——它们会被分别收进两个子空间.
实验:把三条公理拖出来
实验里两列 可以拖,平行四边形实时重画:绿色表示逆时针(正定向),红色表示顺时针(负定向),共线时面积为零.
- 点「c₁ ← c₁ + c₂」:剪切,面积不变——公理 (i) 的直接体现.
- 点「交换两列」:面积不变、符号翻转、颜色从绿变红——公理 (ii).
- 点「c₁ ← 2c₁」:面积翻倍、det 翻倍——多重线性.
- 点「共线」:面积塌成零,"不可逆"三个字在几何上就是"压扁".
实验 07
行列式的三条公理
det2.00
面积2.00
定向逆时针
状态可逆
操作
绿色 = 逆时针(正定向), det 的绝对值是面积,符号是定向.
三个操作对应三条公理:每一列伸缩会把 det 同倍伸缩(多重线性);交换两列让 det 变号(交错性); 单位矩阵的 det 是 1(归一化). 拖动 c₁、c₂ 可以任意改这两列.
习题
- 计算:,用 Sarrus 法则.
- 用公理证明:上三角矩阵的行列式等于对角线之积.
- 判断并给反例: 恒成立吗?
- 设 、,且都是 矩阵. 求 、、、.
- 矩阵 把单位正方形映成什么图形?面积多大?若某个矩阵的 ,几何上发生了什么?
- 用公理证明:若两列相同,则 ;再说明"某列是其他列的线性组合"为什么也让 .
- 判断: 的矩阵一定有一行是另一行的倍数吗?用 的反例说明.
- (经典梗题)存在"三行四列的行列式"吗?为什么?那 行 列以外的一切矩阵,体积该怎么谈?
- 用消元法计算 ,指出"交换"与"全零行"分别出现在哪一步.
参考答案
1. .
2. 设上三角阵 ,对角线元 . 若某个对角元为零,用倍加把该列上方的元素消成零后,这一列全是零, 对角线之积;若都不为零,用倍加把它化成对角矩阵(倍加不变行列式),再用多重线性从每列提出 ,剩下单位矩阵的 ,故 .
3. 不恒成立. 反例:、,,但 ,. 行列式对每一列线性,但矩阵相加会同时动所有列,不是单列操作.
4. ;(每一列都乘 2,共提三次);;.
5. 映成平行四边形,面积 . 表示面积仍是 5,但定向翻转了(平面被镜像,比如两列交换了次序).
6. 见正文:交换两列不变对象、变号, 故 ;线性组合情形用多重线性拆开后,每一项都有两列相同.
7. 不一定. 反例:三行分别是 、、,没有任何一行是另一行的倍数,但第三行是前两行之和,行向量线性相关,.
8. 不存在. 行列式只对方阵定义,这不是约定,是几何与公理逼出来的:
- 几何上: 矩阵把 送到 . 单位 维立方体在 下的像是一个 维的东西被塞进 维空间——必然"塌掉";而 的 个列向量在 里必然线性相关(第二章的定理),张成的体积本来就是零. 想谈"膨胀率",得让定义域与到达空间维数相同.
- 公理上:行列式的归一化要求 ,需要 个列对应 个标准基向量; 时凑不出这个"单位",存在性与唯一性都无从建立.
所以看到"三行四列的行列式"可以直接判死刑. 非方阵也有常被拿来类比的量:列向量张成的体积等于 ——但那是对 的 取行列式,不是对 本身.
9. 第一步交换 (出现交换,记一次变号):
第三步 之后出现全零行,停手:. 交换次数不用再管——零行直接判 0,矩阵不可逆.
交叉
- 矩阵分析:行列式是特征值之积(下一章证明),也是相似不变量的来源;QR 分解把 写成对角元之积.
- 机器学习:概率密度换变量时要乘 Jacobian 的行列式;扩散模型的前向过程用 一类的量描述高斯体积.
- 数值计算: 的大小反映矩阵的病态程度,条件数与奇异值联系起来看更准确.
延伸
下一章《四个基本子空间》会把这一章的结果组织成一张图:列空间、零空间、行空间、左零空间,并在那里定义主元与秩、证明秩-零化度定理. 到那时,"可逆"、""与"四个子空间之间的关系"会合成同一句话.