小象实战讲义 · 人工智能数学基础
行列式是线性代数中刻画方阵性质的核心工具。我们已经掌握了按一行(或一列)展开计算行列式的递归方法。本节将这一强大工具进行推广,学习按k行(或k列)展开的拉普拉斯定理。这不仅是理论上的深化,更是处理分块矩阵行列式的利器,能极大地简化复杂矩阵的行列式计算,为后续学习矩阵分解等高级主题奠定基础。
💡 核心导读
本节你将掌握:
- k阶子式与代数余子式:理解如何从n阶行列式中选取k行k列构成子式,并定义其对应的代数余子式。
- 拉普拉斯定理:掌握行列式按任意k行展开的公式,理解其作为单行展开的推广本质。
- 分块三角矩阵的行列式:应用拉普拉斯定理,推导并证明分块上(下)三角矩阵的行列式等于其对角块行列式的乘积。
- 定理的应用:通过具体例题,掌握利用分块技巧和拉普拉斯定理简化行列式计算的方法。
1. k阶子式与代数余子式
在n阶行列式 D=det(A) 中,我们任意取定k行(行标为 i1<i2<⋯<ik)和k列(列标为 j1<j2<⋯<jk)。
定义 1.1 (k阶子式) 位于这k行k列交叉处的 k2 个元素,按照它们在原行列式 D 中的相对位置次序所构成的k阶行列式,称为 D 的一个 k阶子式,记作: M=D(i1,i2,…,ikj1,j2,…,jk)
定义 1.2 (余子式) 在 D 中划去选定的这k行k列后,剩下的元素按照原有次序构成的 n−k 阶行列式,称为该k阶子式 M 的 余子式,记作 Mc。
定义 1.3 (代数余子式) k阶子式 M 的 代数余子式 A 定义为它的余子式 Mc 乘上一个由行标和列标决定的符号因子: A=(−1)(i1+i2+⋯+ik)+(j1+j2+⋯+jk)⋅Mc
理解:当 k=1 时,即取定第 i 行第 j 列,得到的1阶子式就是元素 aij,其代数余子式正是我们熟悉的 (−1)i+jMij。因此,按k行展开是经典按一行展开的自然推广。
示例:考虑一个5阶行列式 D=det(aij)。取定第1、2行和第4、5列,得到的二阶子式为: M=D(1,24,5)=a14a24a15a25 划去第1、2行和第4、5列后,余子式为剩下的第3、4、5行与第1、2、3列构成的3阶行列式: Mc=a31a41a51a32a42a52a33a43a53 其代数余子式为: A=(−1)(1+2)+(4+5)⋅Mc=(−1)12⋅Mc=Mc
2. 拉普拉斯定理(按k行展开)
定理 2.1 (拉普拉斯定理) 在n阶行列式 D 中,任意取定k行(1≤k≤n−1),则 D 等于位于这k行中的所有可能的k阶子式与其对应的代数余子式的乘积之和。
用数学语言精确表述:取定行标 i1<i2<⋯<ik,则 D=1≤j1<j2<⋯<jk≤n∑D(i1,i2,…,ikj1,j2,…,jk)⋅(−1)(i1+⋯+ik)+(j1+⋯+jk)⋅M(j1,…,jk)c 其中,求和遍历所有可能的k列组合 j1<j2<⋯<jk,M(j1,…,jk)c 是对应子式的余子式。
说明:
- 项数:从n列中选取k列的组合数为 Cnk,因此展开式共有 Cnk 项。
- 对称性:定理对列同样成立,即可以按k列展开。
- 应用场景:当选取的k行(或列)中含有较多零元素时,许多子式为零,展开式将大大简化。分块三角矩阵正是这种情形的典型代表。
3. 分块三角矩阵的行列式
分块矩阵是处理大规模矩阵的有力工具。拉普拉斯定理使得计算其行列式变得异常简洁。
定理 3.1 (分块下三角矩阵的行列式) 设方阵 A 具有如下分块下三角形式: A=(A1COA2) 其中 A1 是 k 阶方阵,A2 是 r 阶方阵 (k+r=n),C 是 r×k 矩阵,O 是 k×r 零矩阵。则 det(A)=det(A1)⋅det(A2)
证明: 对行列式 det(A) 按前 k 行应用拉普拉斯定理。
- 考虑前 k 行的任意一个 k 阶子式。由于前 k 行的后 r 列(对应分块 O)全为零,因此,只有选取前 k 列构成的子式可能非零。选取其他任何列(即包含后 r 列中的至少一列),由于该子式中至少有一列元素全来自零块 O,根据行列式性质,该子式的值必为零。
- 唯一非零的k阶子式就是由前 k 行、前 k 列构成的 det(A1)。
- 该子式对应的余子式,正是划去前 k 行、前 k 列后剩下的矩阵 A2 的行列式 det(A2)。
- 计算符号因子:行标和为 1+2+⋯+k,列标和也为 1+2+⋯+k,总和为 2(1+2+⋯+k),是一个偶数。故 (−1)偶数=1。
- 根据拉普拉斯定理,det(A) 就等于这一项:det(A1)⋅1⋅det(A2)。
证毕。
推论 3.2 (分块上三角矩阵的行列式) 设方阵 A 具有分块上三角形式: A=(A1OCA2) 则同样有 det(A)=det(A1)⋅det(A2)。
证明思路:矩阵转置后变为分块下三角形式,而行列式转置不变,即 det(A)=det(AT)=det(A1T)⋅det(A2T)=det(A1)⋅det(A2)。
推广:此结论可推广到更多分块的情形。若方阵 A 为分块上(或下)三角矩阵,其主对角线上的子块均为方阵,则 A 的行列式等于主对角线上各子块行列式的乘积。 detA11O∗A22⋯⋯⋱∗∗⋮Amm=det(A11)det(A22)⋯det(Amm)
4. 定理应用与计算示例
拉普拉斯定理和分块三角矩阵的行列式公式,能将复杂的高阶行列式计算分解为简单的低阶行列式计算。
示例 4.1:计算以下行列式 D=2−130342500100023
解:观察矩阵,可以发现一个明显的分块结构。通过划分: D=2−134302500001023=A1COA2 其中, A1=(2−134), A2=(1023). 这是一个分块下三角矩阵。根据定理3.1: D=det(A1)⋅det(A2)=2−134⋅1023=(2×4−3×(−1))⋅(1×3−2×0)=(8+3)⋅3=11×3=33
示例 4.2 (视频例题):计算行列式 2−100034000001300024000005 通过适当分块,可视为分块对角矩阵(一种特殊的分块上/下三角矩阵),其行列式等于各对角块行列式之积:2−134⋅1324⋅∣5∣=11⋅(−2)⋅5=−110。
📝 动手练一练
练习1:利用拉普拉斯定理,按第一、二行展开计算以下行列式,并验证结果。 D1=10310−12021013012
👉 点击查看参考答案
参考答案: 按第一、二行展开,共有 C42=6 个二阶子式。行标和为 1+2=3,每个子式的代数余子式符号为 (−1)3+(j1+j2)。逐一计算(贡献 = 子式 × 余子式 × 符号):
- 列 (1,2):子式 100−1=−1,余子式 0112=−1,符号 (−1)3+3=+,贡献 (−1)×(−1)=1;
- 列 (1,3):子式 1021=1,余子式 2012=4,符号 (−1)3+4=−,贡献 −4;
- 列 (1,4):子式 1030=0,为零子式,贡献 0;
- 列 (2,3):子式 0−121=2,余子式 3112=5,符号 (−1)3+5=+,贡献 10;
- 列 (2,4):子式 0−130=3,余子式 3101=3,符号 (−1)3+6=−,贡献 −9;
- 列 (3,4):子式 2130=−3,余子式 3120=−2,符号 (−1)3+7=+,贡献 (−3)×(−2)=6。
求和:D1=1+(−4)+0+10+(−9)+6=4。 交叉验证:按第一行直接展开,D1=1×(−3)+2×5+3×(−1)=4,两种方法结果一致。
练习2:观察矩阵结构,使用分块法计算行列式。 D2=2000003000004007911518101262 参考答案: 该矩阵是分块上三角矩阵: A=(A1OCA2),其中 A1=diag(2,3,4), A2=(5162)。 因此,D2=det(A1)det(A2)=(2×3×4)×(5×2−6×1)=24×4=96。
import numpy as np
# 练习1的验证计算
D1_matrix = np.array([[1, 0, 2, 3],
[0, -1, 1, 0],
[3, 2, 0, 1],
[1, 0, 1, 2]], dtype=float)
det_D1_np = np.linalg.det(D1_matrix)
print(f"练习1行列式值 (numpy计算): {det_D1_np:.0f}")
# 练习2的验证计算
D2_matrix = np.array([[2, 0, 0, 7, 8],
[0, 3, 0, 9, 10],
[0, 0, 4, 11, 12],
[0, 0, 0, 5, 6],
[0, 0, 0, 1, 2]], dtype=float)
det_D2_np = np.linalg.det(D2_matrix)
print(f"练习2行列式值 (numpy计算): {det_D2_np:.0f}")
# 演示分块计算过程
A1 = np.diag([2, 3, 4])
A2 = np.array([[5, 6], [1, 2]])
det_by_blocks = np.linalg.det(A1) * np.linalg.det(A2)
print(f"练习2分块计算值: {det_by_blocks:.0f}")
print(f"两种方法结果一致: {np.isclose(det_D2_np, det_by_blocks)}")
本章小结
本节我们深入探讨了行列式计算的高级工具——拉普拉斯定理,并展示了其在分块矩阵中的卓越应用。
要点回顾:
- 推广的展开:拉普拉斯定理将按一行展开推广到按任意k行(列)展开,其核心是k阶子式与其代数余子式的乘积和。
- 分块矩阵的福音:定理最重要的应用之一是推导出分块(上/下)三角矩阵的行列式等于其主对角块行列式的乘积。这为计算高阶、具有特殊结构的行列式提供了“降维打击”的方法。
- 计算策略:面对一个行列式,应首先观察其结构。若存在明显的零块,尝试进行分块,判断是否为分块三角形式,从而化繁为简。
📋 行动清单
- 识别训练:从教材或习题中找出3个高阶行列式,练习识别其是否可通过分块转化为三角形式。
- 代码验证:使用Python的NumPy库(
np.linalg.det)计算一个分块矩阵的行列式,并手动进行分块计算,验证结果是否一致。 - 定理复述:尝试不看书本,向自己或同学复述拉普拉斯定理的内容以及分块下三角矩阵行列式公式的证明思路。
—— 小象教研组