← 返回《人工智能数学基础》
📑 查看全课大纲(第 75 / 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.对偶问题(二)

矩阵的逆

约 38 分钟

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

可逆矩阵

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

在矩阵运算中,我们经常需要求解矩阵方程 AX=BAX = B。当 AA 是方阵时,一个自然的想法是能否“除以”矩阵 AA,即找到 AA 的“倒数”,从而得到 X=A1BX = A^{-1}B。本节将系统介绍矩阵理论中的核心概念——可逆矩阵。我们将学习如何判断一个矩阵是否可逆,探讨可逆矩阵的一系列重要性质,并掌握两种求解逆矩阵的实用方法。掌握这些知识是理解线性方程组、矩阵分解以及后续机器学习算法中参数求解的基础。

💡 核心导读

本节将围绕可逆矩阵展开,你将学到:

  1. 可逆矩阵的定义:类比实数的倒数,理解矩阵“可逆”的数学含义。
  2. 可逆的判定准则:掌握通过行列式、秩和向量组线性相关性来判断矩阵可逆性的多种等价条件。
  3. 可逆矩阵的性质:了解逆矩阵的运算规律,如 (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1},以及可逆矩阵与初等矩阵的深刻联系。
  4. 逆矩阵的求法:学习利用伴随矩阵和初等行变换两种经典方法求解逆矩阵。
  5. 应用与计算:运用Python代码验证理论,并求解矩阵方程。

1. 可逆矩阵的定义与判定

1.1 从倒数到逆矩阵

在实数域中,对于非零数 aa,存在唯一的数 bb(即 1/a1/a),使得 a×b=b×a=1a \times b = b \times a = 1。这里,11 是实数乘法的单位元。

我们将这一概念推广到矩阵。对于 nn 阶方阵 AA,如果存在一个 nn 阶方阵 BB,使得: AB=BA=InAB = BA = I_n 其中 InI_nnn 阶单位矩阵(矩阵乘法的单位元),则称矩阵 AA 可逆,并称 BBAA逆矩阵,记作 A1A^{-1}

并非所有矩阵都可逆。正如 00 没有倒数一样,也存在不可逆的矩阵(称为奇异矩阵)。

1.2 可逆的充要条件:行列式视角

判断一个 nn 阶矩阵 AA 是否可逆,最直接的条件是: A 可逆det(A)0A \text{ 可逆} \quad \Longleftrightarrow \quad \det(A) \neq 0

证明

  • 必要性:若 AA 可逆,则 AA1=IAA^{-1} = I。两边取行列式: det(AA1)=det(I)det(A)det(A1)=1\det(AA^{-1}) = \det(I) \quad \Rightarrow \quad \det(A)\det(A^{-1}) = 1 因此 det(A)0\det(A) \neq 0
  • 充分性:若 det(A)0\det(A) \neq 0,我们可以构造出 AA 的逆矩阵。为此,先引入伴随矩阵的概念。

A=(aij)n×nA = (a_{ij}){n \times n}AijA{ij} 为元素 aija_{ij}代数余子式。则 AA 的伴随矩阵 AA^ 定义为: A=(A11A21An1A12A22An2A1nA2nAnn)A^= \begin{pmatrix} A_{11} & A_{21} & \cdots & A_{n1} \ A_{12} & A_{22} & \cdots & A_{n2} \ \vdots & \vdots & \ddots & \vdots \ A_{1n} & A_{2n} & \cdots & A_{nn} \end{pmatrix} 注意,伴随矩阵中代数余子式的下标是转置排列的。

根据行列式按行(列)展开的性质,有: AA=AA=det(A)IAA^* = A^A = \det(A) Idet(A)0\det(A) \neq 0 时,我们可以得到: A(1det(A)A)=(1det(A)A)A=IA \left( \frac{1}{\det(A)} A^\right) = \left( \frac{1}{\det(A)} A^* \right) A = I 因此,AA 可逆,且其逆矩阵为: A1=1det(A)AA^{-1} = \frac{1}{\det(A)} A^* 这也提供了一种求逆矩阵的方法(伴随矩阵法)。

1.3 可逆的等价条件:秩与线性无关

行列式非零这一条件可以衍生出多个等价的判定准则,它们从不同角度刻画了可逆矩阵的本质。

  1. 满秩nn 阶矩阵 AA 可逆 \Longleftrightarrow rank(A)=n\operatorname{rank}(A) = n

    • 理解AA 可逆等价于齐次线性方程组 Ax=0A\mathbf{x} = \mathbf{0} 只有零解。解空间的维数为 nrank(A)n - \operatorname{rank}(A),只有零解意味着该维数为 00,故 rank(A)=n\operatorname{rank}(A) = n
  2. 行(列)向量组线性无关AA 可逆 \Longleftrightarrow AA 的行向量组线性无关 \Longleftrightarrow AA 的列向量组线性无关。

    • 理解:矩阵的秩等于其行(列)向量组的极大无关组所含向量的个数。满秩即 nnnn 维行(列)向量线性无关。
  3. 作为一组基AA 可逆 \Longleftrightarrow AA 的行向量组构成 Kn\mathbb{K}^n 的一组基 \Longleftrightarrow AA 的列向量组构成 Kn\mathbb{K}^n 的一组基。

import numpy as np

# 示例:判断矩阵可逆性
A = np.array([[1, 2, 3],
              [0, 1, 4],
              [5, 6, 0]], dtype=float)

# 方法1: 计算行列式
det_A = np.linalg.det(A)
print(f"矩阵 A 的行列式 det(A) = {det_A:.2f}")
print(f"行列式非零? {not np.isclose(det_A, 0)}")

# 方法2: 计算秩
rank_A = np.linalg.matrix_rank(A)
n = A.shape[0]
print(f"\n矩阵 A 的秩 rank(A) = {rank_A}")
print(f"是否为满秩矩阵 (rank == n)? {rank_A == n}")

# 方法3: 尝试计算逆矩阵 (若不可逆会抛出异常)
try:
    A_inv = np.linalg.inv(A)
    print(f"\n矩阵 A 可逆,其逆矩阵为:\n{A_inv}")
    # 验证 A * A_inv 是否接近单位阵
    I_check = np.dot(A, A_inv)
    print(f"\n验证 A * A_inv 是否接近单位阵 (误差范数): {np.linalg.norm(I_check - np.eye(n)):.2e}")
except np.linalg.LinAlgError:
    print("\n矩阵 A 不可逆 (奇异)。")

2. 可逆矩阵的性质

可逆矩阵具有一系列优美的运算性质,这些性质在矩阵推导和计算中至关重要。

2.1 基本性质

  1. 单位矩阵可逆I1=II^{-1} = I
  2. 逆的逆:若 AA 可逆,则 (A1)1=A(A^{-1})^{-1} = A
  3. 乘积的逆:若 A,BA, B 均可逆,则 ABAB 也可逆,且 (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}
    • 注意:顺序颠倒。这类似于转置运算:(AB)T=BTAT(AB)^T = B^T A^T
    • 证明(AB)(B1A1)=A(BB1)A1=AIA1=AA1=I(AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1} = AIA^{-1} = AA^{-1} = I,同理可证另一顺序。
  4. 转置的逆:若 AA 可逆,则 ATA^T 也可逆,且 (AT)1=(A1)T(A^T)^{-1} = (A^{-1})^T
    • 含义:求逆和转置运算可交换次序。

2.2 可逆矩阵与初等矩阵

初等矩阵 是单位矩阵经过一次初等行(列)变换得到的矩阵。它们有三类,分别对应三种初等变换:

  • PijP_{ij}:交换第 i,ji, j 行(列)。
  • Pi(c)P_i(c) (c0c \neq 0):第 ii 行(列)乘以非零常数 cc
  • Pij(k)P_{ij}(k):第 jj 行加上第 ii 行的 kk 倍(或对应列变换)。

性质

  1. 初等矩阵都是可逆的。
  2. 初等矩阵的逆矩阵仍是同类型的初等矩阵:
    • Pij1=PijP_{ij}^{-1} = P_{ij} (交换两次恢复原状)
    • Pi(c)1=Pi(1/c)P_i(c)^{-1} = P_i(1/c) (乘以 cc 的逆是乘以 1/c1/c
    • Pij(k)1=Pij(k)P_{ij}(k)^{-1} = P_{ij}(-k) (加上 kk 倍的逆是加上 k-k 倍)

核心定理nn 阶矩阵 AA 可逆的充要条件是,AA 可以表示为若干初等矩阵的乘积。

  • 证明思路(充分性):若 AA 可逆,则 det(A)0\det(A) \neq 0。通过初等行变换可将 AA 化为简化行阶梯形(即单位矩阵 II)。这意味着存在初等矩阵 E1,E2,,EkE_1, E_2, \dots, E_k,使得 EkE2E1A=IE_k \cdots E_2 E_1 A = I。因此 A=E11E21Ek1A = E_1^{-1} E_2^{-1} \cdots E_k^{-1},而初等矩阵的逆仍是初等矩阵。
  • 重要性:该定理揭示了可逆矩阵的结构本质。同时,它解释了为什么用可逆矩阵左乘或右乘一个矩阵 BB 不会改变 BB 的秩,因为这相当于对 BB 进行了一系列初等变换。

3. 逆矩阵的求法与应用

3.1 初等行变换法(高斯-若尔当法)

这是计算逆矩阵最实用、最稳定的数值方法。其原理基于上一节的定理。

方法:将 nn 阶可逆矩阵 AAnn 阶单位矩阵 II 并排组成一个 n×2nn \times 2n 的增广矩阵 (AI)(A | I)。然后对该增广矩阵进行初等行变换,目标是将其左半部分化为单位矩阵 II。当左半部分化为 II 时,右半部分就变成了 A1A^{-1}。即: (AI)初等行变换(IA1)(A | I) \quad \xrightarrow{\text{初等行变换}} \quad (I | A^{-1})

原理:设对 (AI)(A | I) 进行的初等行变换对应的初等矩阵乘积为 PP,则有 P(AI)=(PAPI)P(A | I) = (PA | PI)。我们的目标是使 PA=IPA = I,这意味着 P=A1P = A^{-1}。因此,变换后的右半部分 PI=A1I=A1PI = A^{-1}I = A^{-1}

示例:求 A=(412321532)A = \begin{pmatrix} 4 & 1 & 2 \ 3 & 2 & 1 \ 5 & -3 & 2 \end{pmatrix} 的逆矩阵。 过程略(详见视频讲解),最终通过初等行变换得到: A1=(71181131111121121119111711511)A^{-1} = \begin{pmatrix} -\frac{7}{11} & \frac{8}{11} & \frac{3}{11} \[2pt] \frac{1}{11} & \frac{2}{11} & -\frac{2}{11} \[2pt] \frac{19}{11} & -\frac{17}{11} & -\frac{5}{11} \end{pmatrix}

3.2 求解矩阵方程

初等行变换法可直接推广来求解形如 AX=BAX = B 的矩阵方程,其中 AA 可逆。

方法:构造增广矩阵 (AB)(A | B),然后对其进行初等行变换,将左半部分 AA 化为单位矩阵 II。此时右半部分即为解 X=A1BX = A^{-1}B(AB)初等行变换(IA1B)(A | B) \quad \xrightarrow{\text{初等行变换}} \quad (I | A^{-1}B)

这比先求 A1A^{-1} 再乘 BB 更高效,因为它将两个步骤合并于一套行变换中。

import numpy as np

# 示例1:使用初等行变换思想验证逆矩阵 (通过numpy求解)
A = np.array([[4, 1, 2],
              [3, 2, 1],
              [5, -3, 2]], dtype=float)
A_inv_np = np.linalg.inv(A)
print("使用 np.linalg.inv 计算的逆矩阵 A_inv:")
print(A_inv_np)

# 示例2:求解矩阵方程 AX = B
B = np.array([[1, 3],
              [2, 1],
              [-2, 4]], dtype=float)
print(f"\n已知矩阵 A 和 B:")
print("A = \n", A)
print("B = \n", B)

# 方法:直接计算 X = A^{-1} B
X_solution = np.linalg.solve(A, B)  # solve函数专门用于解AX=B
print(f"\n矩阵方程 AX = B 的解 X = A^(-1)B 为:")
print(X_solution)

# 验证:计算 A * X,看是否等于 B
print(f"\n验证 A * X 是否等于 B (误差范数): {np.linalg.norm(np.dot(A, X_solution) - B):.2e}")

📝 动手练一练

  1. 判断可逆性:判断矩阵 C=(123246110)C = \begin{pmatrix} 1 & 2 & 3 \ 2 & 4 & 6 \ 1 & 1 & 0 \end{pmatrix} 是否可逆,并说明理由(至少两种)。
  2. 求解逆矩阵:已知矩阵 D=(102111021)D = \begin{pmatrix} 1 & 0 & 2 \ -1 & 1 & 1 \ 0 & 2 & 1 \end{pmatrix},请使用初等行变换法或编程计算其逆矩阵 D1D^{-1}

参考答案

  1. 矩阵 CC 不可逆
    • 理由1(行列式):观察发现第二行是第一行的2倍,故行向量线性相关,行列式 det(C)=0\det(C)=0
    • 理由2(秩):行最简形只有两个非零行,秩为 2<32 < 3,不满秩。
  2. D1=(1/54/52/51/51/53/52/52/51/5)D^{-1} = \begin{pmatrix} 1/5 & -4/5 & 2/5 \ -1/5 & -1/5 & 3/5 \ 2/5 & 2/5 & -1/5 \end{pmatrix}。可通过 np.linalg.inv(D) 验证。

本章小结

本节深入探讨了线性代数的核心概念——可逆矩阵。

要点回顾

  • 定义:存在矩阵 BB 使 AB=BA=IAB=BA=I,则 AA 可逆,B=A1B=A^{-1}
  • 判定AA 可逆     \iff det(A)0\det(A) \neq 0     \iff rank(A)=n\operatorname{rank}(A)=n     \iff AA 的行(列)向量组线性无关。
  • 性质:逆运算满足 (AB)1=B1A1(AB)^{-1}=B^{-1}A^{-1}(AT)1=(A1)T(A^T)^{-1}=(A^{-1})^T;可逆矩阵可分解为初等矩阵的乘积。
  • 求法:伴随矩阵法(理论推导)和初等行变换法(实际计算)。
  • 应用:求解矩阵方程 AX=BAX=B 的解 X=A1BX=A^{-1}B

行动清单

  1. 判定练习:遇到方阵时,养成先判断其是否可逆的习惯,尝试从行列式、秩、向量相关性多个角度思考。
  2. 计算验证:使用 Python 的 numpy.linalg.invnumpy.linalg.solve 函数验证本节的手动计算结果,并理解其背后的数值算法原理。
  3. 联系前后:思考矩阵可逆性与之前学习的线性方程组解的存在唯一性、向量空间基的选取有何内在联系,为后续学习特征值、矩阵分解等内容打下坚实基础。

— 小象教研组

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

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

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

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