← 返回《人工智能数学基础》
📑 查看全课大纲(第 60 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

行列式的定义与特殊矩阵的行列式

约 29 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

行列式的定义与特殊矩阵的行列式

小象实战讲义 · 人工智能数学基础

行列式是线性代数中一个核心且独特的运算,它仅对方阵有定义,其结果是一个。本节将从二阶行列式的直观定义出发,通过拉普拉斯展开式递归地定义任意阶行列式,并揭示其深刻的几何意义——衡量向量组张成的“体积”。最后,我们将学习如何计算几种特殊矩阵(如上三角矩阵、对角矩阵)的行列式,这些结论是简化复杂计算的关键。

💡 核心导读

  • 算子与数:理解行列式既是一个作用在方阵上的算子,也是一个数值结果
  • 递归定义:掌握由拉普拉斯提出的、按行(列)展开的递归定义方法,这是计算和理解行列式的基础。
  • 几何直观:认识二阶、三阶行列式分别对应平行四边形和平行六面体的有向面积/体积,这是理解其性质的钥匙。
  • 特殊矩阵:掌握上三角矩阵、对角矩阵等特殊矩阵的行列式计算公式,能极大简化计算。

行列式的定义:从二阶到 n 阶

二阶行列式:定义与几何意义

对于一个 2×22 \times 2 的方阵: A=[abcd]A = \begin{bmatrix} a & b \ c & d \end{bmatrix}行列式(determinant)定义为: det(A)=abcd=adbc\det(A) = \begin{vmatrix} a & b \ c & d \end{vmatrix} = ad - bc主对角线元素之积减去反对角线元素之积

行列式具有双重属性:

  1. 算子:它是对一个方阵进行的一种特定运算,类似于求导算子 ddx\frac{d}{dx}
  2. :这个运算的结果是一个标量数值。

几何意义:将矩阵的两行(或两列)视为二维空间中的两个向量 r1=(a,b)\vec{r}_1 = (a, b)r2=(c,d)\vec{r}_2 = (c, d)。那么,行列式的绝对值 det(A)|\det(A)| 等于由这两个向量所张成的平行四边形的面积。行列式本身的符号则指示了这两个向量的相对方向(符合右手系为正,反之为负)。在三维向量运算中,这等价于两个向量的叉积模长。

拉普拉斯展开:n 阶行列式的递归定义

为了定义更高阶的行列式,我们采用由拉普拉斯提出的递归方法。

首先定义两个关键概念:设 AA 是一个 nn 阶方阵,其 (i,j)(i, j) 元为 aija_{ij}

  • 余子式 MijM_{ij}:划去 AA 的第 ii 行和第 jj 列后,剩下的 (n1)(n-1) 阶方阵的行列式。
  • 代数余子式 AijA_{ij}:在余子式前加上由位置决定的符号,即 Aij=(1)i+jMijA_{ij} = (-1)^{i+j} M_{ij}

行列式的拉普拉斯展开定理nn 阶方阵 AA 的行列式,等于它的任一行(或任一列)的各元素与其对应的代数余子式乘积之和。

  • 按第 ii 行展开det(A)=ai1Ai1+ai2Ai2++ainAin=j=1naijAij\det(A) = a_{i1}A_{i1} + a_{i2}A_{i2} + \cdots + a_{in}A_{in} = \sum_{j=1}^{n} a_{ij}A_{ij}
  • 按第 jj 列展开det(A)=a1jA1j+a2jA2j++anjAnj=i=1naijAij\det(A) = a_{1j}A_{1j} + a_{2j}A_{2j} + \cdots + a_{nj}A_{nj} = \sum_{i=1}^{n} a_{ij}A_{ij}

递归本质:这个定义将 nn 阶行列式的计算,归结为 nn(n1)(n-1) 阶行列式的计算,如此递归下去,直至可计算的二阶行列式。

行列式的几何意义推广

基于二阶和三阶的几何直观,我们可以将其推广:

  • 三阶行列式:其绝对值等于三个行向量(或列向量)在三维空间中张成的平行六面体的体积。
  • nn 阶行列式:更一般地,nn 阶方阵 AA 的行列式的绝对值 det(A)|\det(A)|,等于 AAnn 个行向量(或列向量)在 nn 维空间中所张成的“超平行体”的 nn 维体积大小;行列式本身的符号则表征这组向量的定向(符合右手系为正,反之为负)。

行列式的计算与特殊矩阵

一般计算方法与示例

根据拉普拉斯展开,理论上我们可以计算任意阶行列式。实际操作中,选择零元素较多的行或列进行展开可以大大减少计算量。

示例:计算三阶行列式 D=273412932D = \begin{vmatrix} 2 & 7 & 3 \ -4 & 1 & -2 \ 9 & -3 & -2 \end{vmatrix} 我们选择按第二行展开: D=(4)×(1)2+17332+1×(1)2+22392+(2)×(1)2+32793=4×[7×(2)3×(3)]+1×[2×(2)3×9]+2×[2×(3)7×9]=4×(14+9)+1×(427)+2×(663)=4×(5)+(31)+2×(69)=2031138=189\begin{aligned} D &= (-4) \times (-1)^{2+1} \begin{vmatrix} 7 & 3 \ -3 & -2 \end{vmatrix}

  • 1 \times (-1)^{2+2} \begin{vmatrix} 2 & 3 \ 9 & -2 \end{vmatrix}
  • (-2) \times (-1)^{2+3} \begin{vmatrix} 2 & 7 \ 9 & -3 \end{vmatrix} \ &= 4 \times [7 \times (-2) - 3 \times (-3)]
    • 1 \times [2 \times (-2) - 3 \times 9]
    • 2 \times [2 \times (-3) - 7 \times 9] \ &= 4 \times (-14 + 9) + 1 \times (-4 - 27) + 2 \times (-6 - 63) \ &= 4 \times (-5) + (-31) + 2 \times (-69) \ &= -20 - 31 - 138 = -189 \end{aligned} 可见,即便是三阶行列式,手工计算也需格外仔细。更高阶的行列式计算通常借助计算机完成。

特殊矩阵的行列式

某些具有特殊结构的矩阵,其行列式有非常简洁的计算公式。

  1. 上三角矩阵:主对角线以下元素全为 00 的方阵。 A=[a11a12a1n0a22a2n00ann]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \ 0 & a_{22} & \cdots & a_{2n} \ \vdots & \ddots & \ddots & \vdots \ 0 & \cdots & 0 & a_{nn} \end{bmatrix} 性质:上三角矩阵的行列式等于其主对角线上所有元素的乘积。 det(A)=a11a22ann=i=1naii\det(A) = a_{11} \cdot a_{22} \cdot \cdots \cdot a_{nn} = \prod_{i=1}^{n} a_{ii} 推导思路:反复按第一列展开(该列除第一个元素外均为 00),即可递归得到此结论。

  2. 对角矩阵:主对角线以外元素全为 00 的方阵。它显然是上三角矩阵的特例。 Λ=[λ1000λ2000λn]\Lambda = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \ 0 & \lambda_2 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & \lambda_n \end{bmatrix} 性质det(Λ)=λ1λ2λn=i=1nλi\det(\Lambda) = \lambda_1 \cdot \lambda_2 \cdot \cdots \cdot \lambda_n = \prod_{i=1}^{n} \lambda_i 对角矩阵在特征值、矩阵分解等理论中极为重要,此性质务必牢记。

  3. 反对角矩阵:仅反对角线(从右上到左下)有非零元素的方阵。 B=[000b100b200bn100bn000]B = \begin{bmatrix} 0 & 0 & \cdots & 0 & b_1 \ 0 & 0 & \cdots & b_2 & 0 \ \vdots & \vdots & \ddots & \vdots & \vdots \ 0 & b_{n-1} & \cdots & 0 & 0 \ b_n & 0 & \cdots & 0 & 0 \end{bmatrix} 性质:其行列式为 det(B)=(1)n(n1)2b1b2bn\det(B) = (-1)^{\frac{n(n-1)}{2}} b_1 \cdot b_2 \cdot \cdots \cdot b_n 其中 (1)n(n1)2(-1)^{\frac{n(n-1)}{2}} 是符号因子。当 n=4kn=4kn=4k+1n=4k+1 时,符号为正;当 n=4k+2n=4k+2n=4k+3n=4k+3 时,符号为负。

📝 动手练一练

  1. 计算练习:利用拉普拉斯展开,计算以下行列式。尝试选择不同的行或列展开,验证结果是否一致。 D1=120111302D_1 = \begin{vmatrix} 1 & 2 & 0 \ -1 & 1 & 1 \ 3 & 0 & 2 \end{vmatrix} 参考答案: 按第三行展开较为简便: D1=3×(1)3+12011+0×()+2×(1)3+31211=3×(2×10×1)+2×(1×12×(1))=3×2+2×3=6+6=12\begin{aligned} D_1 &= 3 \times (-1)^{3+1} \begin{vmatrix} 2 & 0 \ 1 & 1 \end{vmatrix} + 0 \times (\cdots) + 2 \times (-1)^{3+3} \begin{vmatrix} 1 & 2 \ -1 & 1 \end{vmatrix} \ &= 3 \times (2\times1 - 0\times1) + 2 \times (1\times1 - 2\times(-1)) \ &= 3\times2 + 2\times3 = 6+6=12 \end{aligned}

  2. 推理练习:若一个 nn 阶方阵 AA下三角矩阵(主对角线以上元素全为 00),请类比上三角矩阵的结论,猜想其行列式值,并简要说明理由。 参考答案: 下三角矩阵的行列式也等于其主对角线元素的乘积,即 det(A)=i=1naii\det(A) = \prod_{i=1}^{n} a_{ii}。理由:下三角矩阵的转置是上三角矩阵,而行列式转置不变(det(AT)=det(A)\det(A^T) = \det(A)),因此其行列式等于转置后上三角矩阵的行列式,即主对角线元素之积。

本章小结

本节我们建立了行列式的核心概念体系:

  • 定义:从二阶的直观公式,到通过余子式代数余子式进行拉普拉斯展开的递归定义。
  • 本质:行列式是一个作用于方阵算子,输出一个标量值
  • 几何:行列式的绝对值度量了矩阵行(列)向量张成的多维体积,其符号指示向量的定向
  • 计算:掌握特殊矩阵(上/下三角矩阵对角矩阵)的行列式公式能极大简化计算。

行动清单

  1. 手动推导:任选一个三阶矩阵,分别按第一行和第二列用拉普拉斯展开计算其行列式,验证结果相同,巩固对定义的理解。
  2. 代码验证:使用下面的 Python 代码,验证特殊矩阵的行列式性质,并尝试计算一个四阶一般矩阵的行列式,体会手工与计算机计算的差异。
  3. 几何联想:看到一个二阶或三阶矩阵时,尝试想象其行向量在空间中张成的图形(平行四边形或平行六面体),并思考行列式正负与图形“翻转”的关系。
import numpy as np

# 1. 验证三阶行列式计算
A = np.array([[2, 7, 3],
              [-4, 1, -2],
              [9, -3, -2]])
det_A = np.linalg.det(A)
print(f"矩阵 A 的行列式值: {det_A:.2f}")
# 输出应为 -189.00

# 2. 验证上三角矩阵性质
n = 4
# 生成一个随机的上三角矩阵
np.random.seed(42)
A_tri = np.triu(np.random.randn(n, n) * 2)  # np.triu 保留上三角部分
det_tri_numpy = np.linalg.det(A_tri)
det_tri_diag = np.prod(np.diag(A_tri))  # 主对角线元素乘积
print(f"\n上三角矩阵:\n{A_tri}")
print(f"NumPy 计算的行列式: {det_tri_numpy:.6f}")
print(f"主对角线乘积: {det_tri_diag:.6f}")
print(f"两者是否接近: {np.isclose(det_tri_numpy, det_tri_diag)}")

# 3. 验证对角矩阵性质
diag_vals = [1.5, -2.0, 3.0, 0.5]
A_diag = np.diag(diag_vals)
det_diag_numpy = np.linalg.det(A_diag)
det_diag_prod = np.prod(diag_vals)
print(f"\n对角矩阵(元素为{diag_vals}):\n{A_diag}")
print(f"NumPy 计算的行列式: {det_diag_numpy:.6f}")
print(f"对角线元素乘积: {det_diag_prod:.6f}")
print(f"两者是否接近: {np.isclose(det_diag_numpy, det_diag_prod)}")

# 4. 验证反对角矩阵性质
anti_vals = [2, -1, 3, -4]
n = len(anti_vals)
# 构造反对角矩阵:先构造正对角矩阵,然后进行左右翻转
A_anti = np.diag(anti_vals)  # 先构造正对角矩阵
A_anti = np.fliplr(A_anti)   # 左右翻转得到反对角矩阵
det_anti_numpy = np.linalg.det(A_anti)
# 理论计算:b1*b2*...*bn * (-1)^(n(n-1)/2)
det_anti_theory = np.prod(anti_vals) * ((-1) ** (n * (n-1) // 2))
print(f"\n反对角矩阵(反对角线元素从上到下为{anti_vals}):\n{A_anti}")
print(f"NumPy 计算的行列式: {det_anti_numpy:.6f}")
print(f"理论公式计算结果: {det_anti_theory:.6f}")
print(f"两者是否接近: {np.isclose(det_anti_numpy, det_anti_theory)}")

— 小象教研组

配套学习资源与课件
  • 第10章讲义(含板书):线性代数(PDF · 15.5MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问