课程/M05/逆、Cramer 法则与伴随矩阵
M05 · 行列式核心约 30 分钟

5.3 逆、Cramer 法则与伴随矩阵

本节位置:模块 5 · 行列式 | 前置:3.4 逆矩阵、5.2 | 预计:30 分钟

一句话:把余子式转置拼成伴随矩阵,再除以行列式,就得到逆;Cramer 法则只是这个公式逐分量写开。

0. 场景引入

周三下午,一家期权做市商要接下某银行一笔 5 000 万美元的结构化票据。票据在 3 个月后的三个利率情景下各有一笔应付现金流(占名义的百分比):

交易台只能用三样工具对冲:现金(三个情景都付 )、看涨期权(付 )、看跌期权(付 )。把三样工具的现金流按列排成 矩阵 ,问题变成:是否存在仓位 使 ?

,解唯一。Cramer 法则给出 :每 1 美元名义:现金腿借入 2 分钱()、买 7 毛看涨、7 毛看跌。

决策:按这个精确复制方案报价,还是因为三条腿的交易成本(每条 5 bp,合计 15 bp,约 7.5 万美元)拒单?

代价:不先算 就硬做,碰到两个工具现金流几乎成比例的退化情形( 掉到 ),同样的目标现金流要求仓位从 0.70 放大到 900 多,杠杆和滑点会吃掉全部报价;真正 时根本没有唯一复制方案,报价单上的比率只是拍脑袋,剩下的 3% 名义敞口在极端行情里就是 150 万美元。

读完本节,你应该能回答三件事:

  1. 为什么 才能保证「唯一复制」, 时缺的是什么?
  2. 伴随矩阵为什么能拼出逆,Cramer 法则和它是什么关系?
  3. 交易台每天报上千笔价,为什么不用 Cramer 而用 LU?

1. 直觉

逆矩阵(inverse matrix)是「撤销变换」。在 5.1 里, 把体积放大 倍;那么 就该把它缩回去,所以分母出现 并不意外。

伴随矩阵(adjugate) 可以理解为「余子式的转置」:每个元素记录「删掉某行某列后,剩下的变换把体积放大几倍」。把 除以 ,体积因子正好抵消。

Cramer 法则(Cramer’s rule)则是逐分量的版本:要求 ,就把 的第 列换成 ,算一个行列式,再除以 。

💡 一句话直觉:逆 = 伴随 / 行列式;Cramer = 用「替换一列后的体积」读出每个坐标。

类比边界:这个直觉只在 可逆时成立; 时体积已经被压成 0,没有「缩回去」的操作。

1.1 它在现实世界里对应什么

交易台上,逆矩阵是一张复制表:给我任意一个目标现金流,我告诉你要买多少现金、多少看涨、多少看跌。

数学对象交易台上的对应物
列一个工具在三个情景下的现金流
三个工具张成的「情景空间」体积;为 0 说明有工具是多余的
每种工具对每个情景的边际复制权重
从目标现金流反推仓位
很小工具几乎共线,仓位对报价极度敏感

量级:三条腿的 矩阵,。把看涨的现金流从 改成 ——两个工具只差 1 个基点—— 掉到 ,小了 1 333 倍;复制同一笔现金流,仓位从 0.70 变成 933.8。同一个交易台,1 bp 的输入差别换来 1 300 倍的杠杆。

这个对应在哪里失效:它假设情景有限、工具现金流固定、可以无限分割且没有摩擦。真实对冲是连续时间的,有 gamma、vega、流动性与保证金; 只说明线性化之后局部有没有唯一解,不说明这笔对冲在真实市场里扛不扛得住。

2. 定义

2.1 余子式与代数余子式

删掉 所在的行、列,得到 的余子式(minor) ;带符号的 叫代数余子式(cofactor)。按行展开:。

2.2 伴随矩阵

伴随矩阵(adjugate) 定义为代数余子式矩阵的转置:。注意下标是 不是 :第 行第 列的元素,来自「删掉第 行第 列」的余子式。

2.3 逆矩阵公式

若 ,则 。

2.4 Cramer 法则

设 , 可逆。把 的第 列换成 ,记作 ,则 ()。

2.5 可逆判据

对 矩阵 ,下列条件等价:; 可逆;(列、行线性无关);零空间只有 ( 对任意 有唯一解); 不是 的特征值。

3. 为什么这样定义

3.1

看第 行与 第 列的内积:,最后一步正是沿第 行的余子式展开。

再看第 行与第 列()的内积:。这等于把 的第 行换成第 行后的行列式;此时两行相同,值为 0。于是

同理 。两边除以 即得逆矩阵公式。

3.2 Cramer 法则从哪来

由 ,第 个分量为 。右边分子正好是 沿第 列的展开: 的第 列是 ,其余列与 相同。这就是 Cramer 法则。

3.3 反事实:伴随矩阵不转置会坏在哪

取 ,,代数余子式矩阵

正确的伴随矩阵是 ,。如果把逆定义成 (不转置),这个「逆」乘以 得到

拿它当 去解 ,得到 。代回原方程,第一行 :目标现金流是 5,复制出来的只有 3.25,约 35% 的敞口没被覆盖。

一个「逆」乘回去得不到单位阵,解出的仓位连自己写下的现金流都对不上。交易台上这叫复制表算错了,风控一验算就发现。

Cramer 法则同理: 的分子是「把第 列换成 后的行列式」,这个「换列」正是转置的来源。少了转置,分子里的余子式对不上被替换的那一列,比值就不再是原方程的解。

4. 性质与推导

4.1 常用恒等式

  • ;
  • ;
  • ();
  • 对 :。

4.2 复杂度与数值稳定性

Cramer 法则要算 个行列式。每个若按 Leibniz 是 ;即使每个都用消元,也是 ,而 LU 解方程只要 。

数值上更糟:行列式可能极大或极小,计算中有大量相消;解的相对误差大致被条件数(condition number) 放大。实际软件用带主元的 LU(或 QR、SVD),Cramer 只作为理论工具和 、 的闭式公式。

4.3 为什么理论上有价值

Cramer 明确显示:每个 都是 的线性函数,系数是 。做灵敏度分析、证明解的唯一性、推导伴随矩阵性质时,这种显式表达很方便。

5. 例子

5.1 手算: 的逆与 Cramer

验算 :第一行乘第一列 ,第一行乘第二列 ,其余同理。

解 。Cramer:,所以 ;,所以 。与消元结果一致。

5.2 手算: 的伴随与逆

九个代数余子式排成

于是 。验算 :例如第一行乘第一列 ,第一行乘第二列 。

5.3 手算: 的 Cramer

仍用上面的 ,取 。把 换到第 1 列:

换到第 2 列得 ,换到第 3 列得 。因此

代回验证:第一行 ;第二行 ;第三行 。

5.4 场景闭环:100 个情景、100 个工具、每天 1 000 笔报价

输入:真实做市台不会只有 3 个情景。假设一笔奇异期权按 100 个市场情景(利率 × 波动率网格)分解,可交易工具也是 100 个,现金流矩阵 ,双精度占 KB。每个情景的目标现金流是一列 。

计算:三条路线。

方法运算量1 GFLOP/s 下
Cramer(101 个行列式,每个用 LU)67 ms
一次 LU + 100 次回代2.7 ms
显式求逆再乘(误差更大)2 ms

按每天 1 000 笔报价算:Cramer 要 67 秒,LU 只要 2.7 秒。Cramer 的 在这里第一次变成「报价来不及」的实际问题。

输出:仓位向量 ,外加两个风控数字——残差 与条件数 。若 ,交易台拒单或加价。

成本:2.7 ms 与 80 KB;67 ms 的版本在 1 000 笔/天时还能忍,但报价窗口是每批 200 ms,Cramer 一次就吃掉三分之一。

失败条件:

  • 近奇异:两个工具现金流差 1 bp, 从 0.0200 掉到 ,仓位放大 1 333 倍,保证金与滑点吃掉全部价差。兜底:看 或最小奇异值,不只看 。
  • 条件数大: 正常但 很大(例如 的 、),解对输入扰动敏感。兜底:带主元的 LU 加残差检验。
  • 量纲或符号:现金流用百分比还是小数、卖空是否记为负——错一次,仓位差 100 倍。兜底:入参统一量纲,并断言 。

6. 常见误区

  1. 误区: 就是代数余子式矩阵 。 纠正:还要转置,。用 检查:,转置后才得到 。

  2. 误区: 很小就说明 接近奇异、逆很大。 纠正: 的 ,但逆是 ,条件数为 1。尺度会改变 ,不改变条件数。

  3. 误区:Cramer 法则对任何线性方程组都能用。 纠正:只适用于方阵且 。超定、欠定或奇异系统要用最小二乘、伪逆或消元。

  4. 误区:逆矩阵的元素就是余子式除以 。 纠正:位置是转置的。写错转置是 手算最常见的错误;用 验算最稳。

7. 概念网络

8. 通往大模型:高斯密度与流模型里的「逆」

出现位置:多元高斯(multivariate Gaussian)的对数密度、归一化流的似然、以及任何要「解一个线性系统」的层。

形状:协方差 , 可能是 512 或 4096;精度矩阵 同样大小。

公式:

为什么不用 Cramer: 时,Cramer 要 4097 个 行列式,复杂度 ,且数值极不稳定。实际用 Cholesky 分解 :,解 后算 ,全程 且不用显式求逆。

可检验结论:取 ,,在均值处的密度是 。若把 换成 , 缩小 ,密度放大 ——这正是「 依赖尺度」的直观版本。

算错时下游看到什么:若拿 当可逆性判据,、元素量级为 1 的协方差矩阵在 float64 里可能下溢成 0,Cholesky 分解直接失败;若 算错一个常数,密度整体被缩放,似然比较与采样权重全部失真。工程上表现为训练 loss 变 NaN,或采样点全部挤在均值附近。

9. 练习

  1. 概念:为什么 要转置?用 的 与 说明。
  2. 计算:。求 、,并解 。
  3. 计算:。求 、、,并验证 。
  4. 计算:用 Cramer 法则解 ( 同上)。
  5. 开放:既然 Cramer 法则有闭式解,为什么数值库不实现它?从复杂度、稳定性、适用范围三个角度回答。
参考答案
  1. 因为逆矩阵第 行第 列要用「删掉第 行第 列」的余子式,索引自然转置。 中 ,而 ;不转置的话 ,而 才成立。
  2. ;;。验证 。
  3. ;;;。
  4. ,,,所以 。验证:。
  5. 复杂度: 个行列式,每个 ,共 ,而 LU 是 。稳定性:行列式容易上溢/下溢且相消严重,误差被 放大。适用范围:只对方阵且 有效;超定/欠定要用最小二乘或伪逆。它适合教学与 、 闭式推导。

10. 一页速记

  • ;,下标是 。
  • 物理意义 / 现实对应:逆矩阵是复制表——体积因子 把目标空间的一单位体积换回源空间;Cramer 用「替换一列后的体积」读出每个坐标。
  • ,且 。
  • Cramer:, 把第 列换成 。
  • 可逆 满秩 零空间为 。
  • Cramer 是 且数值不稳;实际用 LU/QR/SVD。

11. 参考文献与致谢

这一页的知识不是凭空来的。下面列出本页直接借用的原始工作与权威整理;正文中的人名、定理名已链接到对应条目。链接优先指向 DOI、arXiv 或可长期访问的原文存档。

  • Horn & Johnson(Roger A. Horn & Charles R. Johnson, 2012):Matrix Analysis(2nd ed.)。把伴随矩阵、 与 作为行列式的标准推论给出,本页第 2、3 节沿这条路线推导。Cambridge University Press
  • Golub & Van Loan(Gene H. Golub & Charles F. Van Loan, 2012):Matrix Computations(4th ed.)。带主元的 LU 解 只要 ,并给出前向/后向误差与条件数的关系——本页第 4.2 节「Cramer 只作理论工具」的工程依据。Johns Hopkins University Press
  • Higham(Nicholas J. Higham, 2002):Accuracy and Stability of Numerical Algorithms(2nd ed.)。系统分析了线性系统求解中的相消、上溢下溢与条件数放大,是第 4.2 节「误差被 放大」的定量版本。SIAM

下一篇 → 5.4 行列式与 Jacobian

返回 M05 导览去练习场

随堂测 · 4 题

数值难度 2第 1 / 4 题
,。用 Cramer 法则解 ,求第二个分量 。

源文件:05-行列式/03-逆与Cramer法则.md

输入关键词开始搜索