行列式展开的定义(拉普拉斯展开定理)
行列式的展开,正式称为拉普拉斯展开(Laplace expansion)或余子式展开(cofactor expansion),是计算n阶行列式的一种递归方法。它允许我们将高阶行列式转化为若干低阶行列式的加权和,非常实用,尤其在手算时。
核心定义
对于一个n阶方阵,其行列式 det(A) 可以按任意一行或任意一列展开。
- 按第i行展开:
其中 是余子式(cofactor),
是子式(minor),即删除第i行和第j列后得到的(n-1)阶子矩阵的行列式。
- 按第k列展开(类似):
关键是符号项,它决定正负号。可以记忆为“棋盘格局”(从左上角开始交替正负):
简单例子:2×2行列式(基础)
2阶行列式本身就是最简单的展开形式:
按第一行展开:
这正是定义本身。
详细例子:3×3行列式
取一个具体矩阵:
我们按第一行展开(i=1):
现在计算每个2阶子行列式:
- 第一项:
→ 贡献:
- 第二项:
→ 贡献:
- 第三项:
→ 贡献:
总和:−3+12−9=0
(这个矩阵的行列式确实为0,因为第三行 = 第一行×3 - 第二行×2,行相关。)
如果你按其他行或列展开,会得到相同结果(行列式性质保证)。
图中展示了一个4×4 矩阵的行列式,使用拉普拉斯展开(Laplace expansion),选择按第二行展开,最终将 4 阶行列式转化为三个 3 阶行列式的加权和(其中一项因元素为 0 而省略)。
原矩阵
为什么选择按第二行展开?
- 第二行元素:0.25, x₂, 0, 0.3,只有两个非零元素(第三项为 0,可直接忽略),展开后只有三项需要计算(实际两项非零系数 + 一项 0)。
- 这比按其他行/列展开更简洁(例如第一行有三个非零元素,第四行四个全非零)。
- 展开后得到的 3×3 子矩阵结构较好,便于进一步计算(图中标注 “LU-decomposition applicable”),可能适合 LU 分解来快速求行列式。
拉普拉斯展开公式(按第 i=2 行)
其中是删除第 2 行、第 j 列后的3×3 子式(minor)的行列式。
逐项计算符号和贡献:
- j=1:元素
,符号
贡献:
- j=2:元素
,符号
贡献:
- j=3:元素
,贡献直接为 0(图中省略)
- j=4:元素
,符号
贡献:
于是:
这正是图中所示的展开式。
每个子矩阵是如何得到的?(删除过程可视化)
- 第一项(删除第2行、第1列)保留列 2,3,4:
- 第二项(删除第2行、第2列)保留列 1,3,4: 第一列全为 0(除最后一行),结构较“稀疏”。
- 第四项(删除第2行、第4列)保留列 1,2,3: 第一列同样几乎为 0。
为什么标注 “LU-decomposition applicable”?
观察三个 3×3 子矩阵:
- 第二、第三个子矩阵的第一列几乎全为 0(只有最后一行非零),这使得它们非常适合LU 分解(无需或仅需少量行交换)。
- LU 分解后,行列式 = L 和 U 对角元素乘积,计算极快(尤其是手工计算时)。
- 第一个子矩阵虽不那么稀疏,但整体结构也利于消元。
通过对这三个 3×3 矩阵分别进行 LU 分解或进一步展开,最终可得到关于 的线性表达式(图中最下方所示的部分):
+(其他常数项)
(图中标注 “a part of Expression”,说明这只是完整表达式中的线性部分。)
图中子矩阵的LU分解过程讲解
在图中,通过拉普拉斯展开得到的三个3×3子矩阵具有明显的稀疏结构(许多零元素,第一列往往只有底部非零),这使得它们特别适合使用LU分解(或带行交换的PLU分解)来高效计算行列式。
LU分解的基本原理与计算行列式的优势
LU分解将矩阵A分解为A = LU(或PA = LU,P为置换矩阵):
- L:单位下三角矩阵(对角线为1,下三角存放消元乘数)
- U:上三角矩阵
计算行列式的关键:
- 无行交换时:
- 有s次行交换时:
过程本质是高斯消元:
- 从左到右、从上到下处理每一列k。
- 若当前主元(pivot)
,交换行使主元非零(记录交换次数)。
- 对下方的每一行i (>k):
- 计算乘数
- 第i行
第k行
- 计算乘数
- 最终得到U,L由乘数填充。
优势:在图中子矩阵中,零元素多,交换后往往只需1~2步消元,计算量极小,非常适合手算。
示例1:x₂对应的子矩阵(最典型,结构最稀疏)
矩阵B:
步骤1:检查第一主元a₁₁ = 0 → 需要行交换。交换第1行和第3行(一次交换,符号因子-1):
交换后:
步骤2:k=1,消元第一列下方两行第一列已为0,无需任何操作(l₂₁=0, l₃₁=0)。
步骤3:k=2,消元第二列
主元a₂₂ = 0.3 ≠0
l₃₂ = 0.5 / 0.3 = 5/3
第3行 -= (5/3) × 第2行:
第三行新值:
- 第2列:0.5 - (5/3)×0.3 = 0.5 - 0.5 = 0
- 第3列:0 - (5/3)×0.5 = -5/6
得到U:
计算行列式:
对角积 = 0.15 × 0.3 × (-5/6) = -0.0375
一次交换 → det(B) = (-1) × (-0.0375) =0.0375
贡献项:+x₂ × 0.0375(图中0.0375x₂正是由此而来)
示例2:0.3对应的子矩阵(结构类似,含1-x₁)
矩阵C:
步骤1:第一主元0→ 交换第1行和第3行(一次交换):
交换后:
步骤2:k=1→ 下方已为0,无消元。
步骤3:k=2主元0.2 l₃₂ = (1-x₁)/0.2 = 5(1-x₁) 第3行 -= 5(1-x₁) × 第2行:
- 第2列:1-x₁ - 5(1-x₁)×0.2 = 1-x₁ - (1-x₁) = 0(完美抵消!)
- 第3列:0.5 - 5(1-x₁)×0.3 = 0.5 - 1.5(1-x₁) = 1.5x₁ - 1
得到U对角:0.15, 0.2, 1.5x₁ - 1
对角积 = 0.03(1.5x₁ - 1) = 0.045x₁ - 0.03
det(C) = (-1) × (0.045x₁ - 0.03) = -0.045x₁ + 0.03
贡献项:0.3 × det(C) =-0.0135x₁ + 0.009
示例3:-0.25对应的子矩阵(含1-x₁,无需交换)
矩阵D:
步骤1:第一主元1-x₁(假设≠0)→ 无需交换。
步骤2~3:正常消元两列(计算稍多,但仍可手算)。消元后U的对角会包含(1-x₁)因子和常数项,最终det(D)会产生另一部分x₁线性项。
贡献项:-0.25 × det(D)(提供剩余的x₁系数和常数项)。
为什么图中特别标注“LU-decomposition applicable”?
- 第二、第三个子矩阵只需一次行交换 + 一到两次消元,且常出现完美抵消(如第二列直接变0)。
- 第一子矩阵虽稍复杂,但整体计算量远低于直接用定义或Sarrus法则展开3阶行列式。
- 合并三项后,自然得到关于x₁、x₂的简单线性表达式(图中最下方所示部分)。
这种结构优化是典型的手算技巧:稀疏+零元素 → 少量运算即可得精确(或高精度)系数。
为什么有用?
- 递归性:高阶行列式总能降到低阶。
- 实际计算:如果某行/列有很多0,选择含0最多的行/列展开,能大幅简化(很多项直接为0)。
- 理论证明:这是行列式公理化定义的等价形式之一。
总结
- 图中巧妙利用第二行只有两个有效非零元素进行拉普拉斯展开,将 4 阶问题降为三个 3 阶问题。
- 子矩阵结构稀疏,便于后续 LU 分解或手工计算。
- 这种展开策略是典型的手算优化技巧:总是优先选择含 0 最多或变量最少的行/列展开。