小象实战讲义 · 人工智能数学基础
行列式是线性代数中一个核心且强大的工具,它不仅是判断矩阵可逆性的标尺,更在求解线性方程组、计算特征值、理解线性变换的伸缩率等方面扮演着关键角色。本节我们将系统学习行列式的八大基本性质。掌握这些性质,不仅能让你深刻理解行列式的本质,更能让你在计算复杂行列式时,从“硬算”的苦海中解脱出来,灵活运用技巧,化繁为简。
💡 核心导读
本节你将掌握:
- 对称性:行列式转置,其值不变,这确立了行与列的平等地位。
- 线性性:行列式对单一行(列)具有可加性和齐次性。
- 变换不变性:三种初等行(列)变换如何影响行列式的值,特别是倍加变换不改变行列式。
- 关键判定:两行(列)相同或成比例,行列式为零。
- 拉普拉斯展开的推广:一行元素与另一行对应代数余子式乘积之和为零。
性质一:转置不变性
行列式最重要的性质之一是:一个方阵的行列式与其转置矩阵的行列式相等。
设 A=(aij) 为 n 阶方阵,其转置记为 AT=(aji),则有: det(A)=det(AT)
证明思路(数学归纳法):
- 奠基:当 n=1 时,A=(a11),显然 AT=A,结论成立。
- 归纳假设:假设对于所有 n−1 阶方阵,结论成立。
- 归纳步骤:对于 n 阶方阵 A,将其分别按第一行和第一列展开:
- 按第一行展开:det(A)=∑j=1na1jA1j,其中 A1j 是元素 a1j 的代数余子式。
- 按第一列展开:det(AT)=∑j=1naj1Aj1T,其中 Aj1T 是 AT 中元素 aj1 的代数余子式。 注意到 Aj1T 恰好是 A 中元素 a1j 的余子式(可能相差符号,但代数余子式的定义已包含符号 (−1)i+j,需仔细验证符号一致)。根据归纳假设,n−1 阶余子式矩阵的行列式满足转置不变性,因此 A1j 与 Aj1T 相等。从而 det(A)=det(AT)。
这个性质的意义极其深远:它宣告了在行列式中,行和列的地位是完全平等的。因此,所有对“行”成立的性质,对“列”也必然成立。例如,拉普拉斯展开不仅可以按行进行,也可以按列进行: det(A)=j=1∑naijAij(按第 i 行展开) det(A)=i=1∑naijAij(按第 j 列展开)
行列式的核心性质
基于转置不变性,我们只需列出对“行”的描述,其对“列”的版本自然成立。
性质二:行的齐次性(提取公因子)
行列式中,某一行的所有元素若有公因子 k,则可以将 k 提到行列式符号外面。 a11⋮kai1⋮an1a12⋮kai2⋮an2⋯⋯⋯a1n⋮kain⋮ann=k⋅a11⋮ai1⋮an1a12⋮ai2⋮an2⋯⋯⋯a1n⋮ain⋮ann
注意:这与矩阵数乘不同。若矩阵 A 的每个元素都乘以常数 c,即 cA,其行列式为: det(cA)=cndet(A) 因为相当于每一行都提取了一个因子 c,总共提取 n 次。
性质三:行的可加性(单行拆分)
如果行列式的某一行元素都是两数之和,则该行列式可以拆分为两个行列式之和,这两个行列式的该行分别为被加数,其余行保持不变。 a11⋮b1+c1⋮an1a12⋮b2+c2⋮an2⋯⋯⋯a1n⋮bn+cn⋮ann=a11⋮b1⋮an1a12⋮b2⋮an2⋯⋯⋯a1n⋮bn⋮ann+a11⋮c1⋮an1a12⋮c2⋮an2⋯⋯⋯a1n⋮cn⋮ann
重要提醒:此性质仅适用于单行的拆分。如果多行同时都是和的形式,不能直接逐行拆分成多个行列式之和,因为拆分后的项需要按乘法原理组合,结果将是 2k(k 为拆分行数)个行列式之和。
性质四:互换两行(列),行列式反号
交换行列式的任意两行(或两列),行列式的值变为原来的相反数。 ⋮第 i 行⋮第 j 行⋮=−⋮第 j 行⋮第 i 行⋮
此性质是行列式定义(排列的奇偶性)的直接推论。一个直观的理解是:行列式可以看作各行向量张成的平行多面体的有向体积,交换两个向量(行)的顺序,会改变手性(从右手系变为左手系),从而导致体积符号反转。
性质五:两行(列)相同,行列式为零
如果行列式中有两行(或两列)完全相同,则该行列式的值为 0。
证明:设行列式 D 的第 i 行与第 j 行相同。交换这两行,根据性质四,新行列式 D′=−D。但由于两行相同,交换后矩阵没有任何变化,所以 D′=D。于是有 D=−D,解得 D=0。
性质六:两行(列)成比例,行列式为零
如果行列式中有两行(或两列)的元素对应成比例,则该行列式的值为 0。
证明:设第 i 行是第 j 行的 k 倍。由性质二,可以将比例系数 k 从第 i 行提出,得到 k 乘以一个具有两行相同的行列式。再由性质五,该行列式为 0,故原行列式也为 0。
推论:若行列式有一行(列)元素全为零,则行列式值为 0(可视作该行是另一行的 0 倍)。
性质七:倍加行变换不改变行列式
把行列式的某一行的 k 倍加到另一行上,行列式的值不变。 ⋮第 i 行⋮第 j 行⋮=⋮第 i 行⋮第 j 行+k⋅(第 i 行)⋮
证明:设原行列式为 D。将第 i 行的 k 倍加到第 j 行后,得到新行列式 D′。由性质三(可加性),D′ 可以拆分为 D 加上 k 倍的另一个行列式 D′′,而 D′′ 的第 i 行和第 j 行成比例(第 j 行是 k 倍的第 i 行)。根据性质六,D′′=0。因此 D′=D。
这是计算行列式最常用的技巧,因为它不改变行列式的值,却可以创造出更多的零元素,从而简化计算。
性质八:异行(列)代数余子式展开为零
行列式某一行(列)的各元素与另一行(列)对应元素的代数余子式乘积之和等于零。 k=1∑naikAjk=0(i=j) k=1∑nakiAkj=0(i=j)
证明思路:构造一个新行列式 D′,其第 j 行元素用第 i 行元素替换,其余行与 A 相同。一方面,因为 D′ 的第 i 行与第 j 行相同,由性质五知 D′=0。另一方面,将 D′ 按第 j 行展开,其代数余子式 Ajk′ 与原矩阵 A 中元素 ajk 的代数余子式 Ajk 完全相同(因为划去的是相同的行和列)。因此: 0=D′=k=1∑naikAjk′=k=1∑naikAjk
这个性质与拉普拉斯展开定理结合,可以简洁地写成: A⋅adj(A)=adj(A)⋅A=det(A)I 其中 adj(A) 是 A 的伴随矩阵,其第 i 行第 j 列元素是 Aji(注意下标顺序)。
性质的应用与计算实例
掌握了性质,关键在于灵活运用。下面通过几个典型例题展示如何化繁为简。
例1:计算行列式 D=213−32−27−14
解:利用性质四(互换变号)与性质七(倍加变换)创造零元素。
- 互换第一、二行,把首主元换为 1,便于后续消元(性质四,行列式变号): D=−1232−3−2−174
- 将第一行的 (−2) 倍加到第二行,第一行的 (−3) 倍加到第三行(性质七): D=−1002−7−8−197
- 第一列仅剩一个非零元,按第一列展开(拉普拉斯展开定理): D=−1×−7−897=−(−49+72)=−23
例2:计算 n 阶行列式(行变换法) Dn=a1a1a1⋮a1a2a2−ba2⋮a2a3a3a3−b⋮a3⋯⋯⋯⋱⋯ananan⋮an−b
解:观察结构:第一行元素为 a1,a2,⋯,an,第 i 行(i≥2)仅在第 i 列上比第一行少 b。将第一行的 (−1) 倍加到第 2 至第 n 行(性质七):
- 第 i 行(i≥2)的第 i 列元素变为 (ai−b)−ai=−b;
- 第 i 行的其余列元素变为 aj−aj=0。
于是行列式化为上三角形式: Dn=a100⋮0a2−b0⋮0a30−b⋮0⋯⋯⋯⋱⋯an00⋮−b=a1⋅(−b)n−1
验证:取 n=3,a1=1,a2=2,a3=3,b=4,公式给出 D3=1×(−4)2=16;将原行列式直接按第一行展开同样可得 D3=16,两者一致。
例3:范德蒙德(Vandermonde)行列式 这是一个极其重要的行列式,形式如下: Vn=1x1x12⋮x1n−11x2x22⋮x2n−11x3x32⋮x3n−1⋯⋯⋯⋱⋯1xnxn2⋮xnn−1 其值为: Vn=1≤i<j≤n∏(xj−xi) 即所有满足 i<j 的 (xj−xi) 的乘积。
证明(数学归纳法):
- 当 n=2 时,V2=x2−x1,成立。
- 假设对 n−1 阶成立。对于 n 阶行列式 Vn,从最后一行开始,依次将前一行的 (−x1) 倍加到后一行(性质七)。
- 操作后,第一列变为 (1,0,0,⋯,0)T。
- 第 j 列(j≥2)的第 i 行(i≥2)元素变为 xji−1−x1⋅xji−2=xji−2(xj−x1)。
- 按第一列展开,得到: Vn=1⋅x2−x1x2(x2−x1)⋮x2n−2(x2−x1)x3−x1x3(x3−x1)⋮x3n−2(x3−x1)⋯⋯⋱⋯xn−x1xn(xn−x1)⋮xnn−2(xn−x1)
- 从每一列中提出公因子 (xj−x1): Vn=(x2−x1)(x3−x1)⋯(xn−x1)⋅1x2⋮x2n−21x3⋮x3n−2⋯⋯⋱⋯1xn⋮xnn−2
- 右边的行列式是一个 n−1 阶的范德蒙德行列式 Vn−1(x2,⋯,xn)。由归纳假设: Vn−1(x2,⋯,xn)=2≤i<j≤n∏(xj−xi)
- 因此: Vn=j=2∏n(xj−x1)⋅2≤i<j≤n∏(xj−xi)=1≤i<j≤n∏(xj−xi)
重要推论:范德蒙德行列式 Vn=0 的充要条件是 x1,x2,⋯,xn 中至少有两个数相等。反之,若这些数两两不等,则 Vn=0。这个结论在多项式插值、线性方程组解的存在唯一性判断中至关重要。
📝 动手练一练
计算行列式: D=1234234134124123 提示:尝试将后三行都加到第一行,看看有什么发现。
👉 点击查看参考答案
参考答案: 将第2、3、4行都加到第1行,则第1行元素全变为 1+2+3+4=10。提出公因子10后,再将新的第1行的 (−1) 倍依次加到第2、3、4行,可以简化计算。最终结果为 D=160。
证明题:设 A 是 n 阶方阵,且 A 是反对称矩阵(即 AT=−A)。证明:当 n 为奇数时,det(A)=0。 提示:利用行列式的转置不变性和齐次性。
参考答案: 由 AT=−A,两边取行列式: det(AT)=det(−A) 根据性质一,det(AT)=det(A)。根据性质二的推广,det(−A)=(−1)ndet(A)。 因此有 det(A)=(−1)ndet(A)。当 n 为奇数时,(−1)n=−1,上式变为 det(A)=−det(A),故 2det(A)=0,即 det(A)=0。
本章小结
本节我们系统学习了行列式的八大核心性质,它们是行列式理论的基石,也是高效计算的利器。
要点回顾:
- 转置不变:det(A)=det(AT),确立了行与列的对称地位。
- 线性性质:单行(列)可提取公因子、可拆分为和。
- 变换影响:互换两行(列)反号;倍加变换值不变。
- 零值判定:两行(列)相同或成比例,行列式为零。
- 展开定理补充:一行元素与另一行代数余子式乘积之和为零。
📋 行动清单
- 理解而非死记:尝试用自己的话解释每个性质的含义,特别是性质四、七、八的证明思路。
- 动手验证:使用下面提供的Python代码,随机生成矩阵,验证行列式的转置不变性、倍加变换不变性等性质。
- 练习计算:找3-5道包含不同技巧(倍加消元、拆分、递推、范德蒙德)的行列式计算题,独立完成,并总结每种方法的适用场景。
import numpy as np
# 验证行列式性质
np.random.seed(42) # 固定随机种子,使结果可复现
n = 4
A = np.random.randint(-5, 6, size=(n, n)).astype(float) # 生成一个4x4随机整数矩阵
print("原始矩阵 A:")
print(A)
print(f"det(A) = {np.linalg.det(A):.4f}\n")
# 性质一验证:转置不变性
A_T = A.T
print("A 的转置 A^T:")
print(A_T)
print(f"det(A^T) = {np.linalg.det(A_T):.4f}")
print(f"det(A) == det(A^T)? {np.isclose(np.linalg.det(A), np.linalg.det(A_T))}\n")
# 性质二验证:提取一行公因子
k = 2.0
B = A.copy()
B[1, :] = k * B[1, :] # 将第二行乘以k
print("矩阵 B (A的第二行乘以k):")
print(B)
print(f"det(B) = {np.linalg.det(B):.4f}")
print(f"k * det(A) = {k * np.linalg.det(A):.4f}")
print(f"det(B) == k * det(A)? {np.isclose(np.linalg.det(B), k * np.linalg.det(A))}\n")
# 性质七验证:倍加行变换不变性
C = A.copy()
C[2, :] = C[2, :] + 3 * C[0, :] # 将第一行的3倍加到第三行
print("矩阵 C (将A的第一行的3倍加到第三行):")
print(C)
print(f"det(C) = {np.linalg.det(C):.4f}")
print(f"det(A) = {np.linalg.det(A):.4f}")
print(f"det(C) == det(A)? {np.isclose(np.linalg.det(C), np.linalg.det(A))}\n")
# 性质五验证:两行相同,行列式为0
D = A.copy()
D[3, :] = D[2, :] # 令第四行与第三行相同
print("矩阵 D (A的第四行改为与第三行相同):")
print(D)
print(f"det(D) = {np.linalg.det(D):.4f}")
print(f"det(D) 接近 0 吗? {np.isclose(np.linalg.det(D), 0, atol=1e-10)}")
—— 小象教研组