M05 · 行列式
一句话:行列式是线性变换对「有向体积」的缩放倍率;它用一个数回答「体积变几倍、有没有压扁、有没有翻面」。
这个模块解决什么
大模型里很少直接调用 det,但「变量替换」和「体积缩放」无处不在:概率密度换元要乘 Jacobian 行列式,归一化流的训练目标里有一项 ,多元高斯的密度里有 。
本模块从几何出发,回答四个问题:
- 到底在量什么?为什么有正负?(5.1)
- 为什么交换两行要变号?怎么算得动 的行列式?(5.2)
- 行列式如何判定可逆?伴随矩阵和 Cramer 法则是什么?(5.3)
- 非线性换元时,体积元怎么变?极坐标的 从哪来?(5.4)
本模块的现实问题
- 美术把角色镜像导出,为什么物理引擎拿到负质量后直接发散?(5.1)
- 三条晶格矢量给出的晶胞,体积到底是多少?(5.2)
- 三个利率情景的现金流,用现金和两个期权怎么精确复制?复制成本是多少?(5.3)
- Web Mercator 地图上的「面积」,为什么不能直接按格子数加?(5.4)
概念地图
flowchart LR
A[5.1 体积的缩放因子] --> B[5.2 性质与计算]
B --> C[5.3 逆与 Cramer]
A --> D[5.4 Jacobian 与换元]
C --> D
学习顺序
| 顺序 | 文档 | 时间 | 读完你应该能…… |
|---|---|---|---|
| 1 | 5.1 行列式:体积的缩放因子 | 30 min | 用面积/体积解释 ,说出负号的几何含义 |
| 2 | 5.2 行列式的性质与计算 | 40 min | 用行变换和按行展开算 ,解释交换变号 |
| 3 | 5.3 逆、Cramer 法则与伴随矩阵 | 30 min | 用伴随矩阵求逆,写出 Cramer 公式并说明其局限 |
| 4 | 5.4 行列式与 Jacobian | 35 min | 推导极坐标的 ,写出密度变换与 flow 的 log-det |
核心公式速览
| 场景 | 公式 |
|---|---|
| 按行展开 | |
| 消元 | |
| 逆 | |
| Cramer | |
| 换元 | |
| 极坐标 | |
| 流模型 |
本模块的大模型钩子
- 概率密度变换:线性层 改变体积,密度要除以 (5.1、5.4)
- 归一化流:训练目标含 ;coupling 层用三角 Jacobian 把它降到 (5.4)
- 多元高斯: 含 ,用 Cholesky 算(5.3)
- 数值可逆性: 小不等于病态,判断要看条件数/最小奇异值(5.1、5.2)
- 高维下溢: 在 float64 中是 0,必须用
slogdet或 (5.2) - Cramer 的定位:理论优雅、 且不稳定,实际用 LU/QR/SVD(5.3)
自测(读完再做)
- 的 是多少?单位正方形经 变换后面积是多少?定向翻转了吗?
- 说出「」的至少三个等价说法,并给出几何解释。
- 为什么交换矩阵的两行,行列式要变号?用「有向面积」解释,不要只背规则。
- 用按行展开计算 。
- 用伴随矩阵求 的逆,并解 。
- 极坐标变换的 Jacobian 行列式为什么是 ?它如何解释 ?
自测答案
- ;面积变为 5 倍;,定向不变。
- 列线性相关;;存在非零 使 ;不可逆; 维体积被压成 0(降维)。
- 两行是有向面积的两条边;交换它们只改变「从第一条边转到第二条边」的方向,面积大小不变、符号相反,所以 变号。
- 沿第一行:。
- ,;。
- ,;半径 处角宽度 对应弧长 ,所以面积元多出因子 。
习题与实验
uv run --with numpy python labs/lab05_行列式.py
学完之后
- 想继续:6.1 特征值与特征向量,看 如何定义特征多项式。
- 想补基础:回到 1.3 点积 复习面积推导中用到的内积。
- 想动手:把 lab05 的随机矩阵换成 ,观察
det与slogdet的差别。
下一篇 → 5.1 行列式:体积的缩放因子