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

特殊矩阵

约 22 分钟

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

特殊矩阵

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

在矩阵运算中,某些具有特定结构的矩阵扮演着极其重要的角色。它们不仅是理论推导中的关键工具,更在算法实现中带来显著的效率提升。本节将系统介绍几种核心的特殊矩阵,包括对角矩阵、三角矩阵、基本矩阵、初等矩阵以及对称与反对称矩阵,并深入探讨它们与矩阵乘法结合时所代表的线性变换意义。掌握这些矩阵,是理解后续矩阵分解、特征值计算等高级主题的基础。

💡 核心导读

本节将带你认识几种在人工智能数学中至关重要的特殊矩阵:

  1. 对角矩阵:理解其简洁记法,并掌握左乘与右乘对角矩阵分别对原矩阵行和列的缩放作用。
  2. 三角矩阵:了解上三角矩阵的定义,并知道两个上三角矩阵的乘积仍是上三角矩阵这一重要性质。
  3. 基本矩阵:认识这种“只有一个元素为1”的矩阵,并理解其左乘或右乘一个矩阵时,所实现的“搬运”行或列的操作。
  4. 初等矩阵:建立初等矩阵与初等行(列)变换的对应关系,理解用矩阵乘法表示矩阵变换的思想。
  5. 对称与反对称矩阵:掌握它们的定义、性质及矩阵元素的对称关系,理解其与函数奇偶性的类比。

对角矩阵 (Diagonal Matrix)

对角矩阵是一种形式非常简洁的方阵,其定义如下:

定义:若一个 n×nn \times n 方阵 DD 中,除了主对角线上的元素外,其余元素全为零,则称 DD对角矩阵。即: >D=[>d100>0d20>>00dn>]>> D = \begin{bmatrix} > d_1 & 0 & \cdots & 0 \ > 0 & d_2 & \cdots & 0 \ > \vdots & \vdots & \ddots & \vdots \ > 0 & 0 & \cdots & d_n > \end{bmatrix} > 通常简记为 D=diag(d1,d2,,dn)D = \text{diag}(d_1, d_2, \dots, d_n)

对角矩阵在矩阵乘法中扮演着“缩放因子”的角色。设有一个 s×ns \times n 的矩阵 AA,其行向量组记为 γ1,γ2,,γs\boldsymbol{\gamma}_1, \boldsymbol{\gamma}_2, \dots, \boldsymbol{\gamma}_s,列向量组记为 α1,α2,,αn\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \dots, \boldsymbol{\alpha}_n

  • 左乘对角矩阵:用一个 s×ss \times s 的对角矩阵 Ds=diag(d1,d2,,ds)D_s = \text{diag}(d_1, d_2, \dots, d_s) 左乘 AA,相当于用 did_i 去缩放 AA 的第 ii 行。 DsA=[d1000d2000ds][γ1γ2γs]=[d1γ1d2γ2dsγs]D_s A = \begin{bmatrix} d_1 & 0 & \cdots & 0 \ 0 & d_2 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & d_s \end{bmatrix} \begin{bmatrix} \boldsymbol{\gamma}_1 \ \boldsymbol{\gamma}_2 \ \vdots \ \boldsymbol{\gamma}_s \end{bmatrix}

    \begin{bmatrix} d_1 \boldsymbol{\gamma}_1 \ d_2 \boldsymbol{\gamma}_2 \ \vdots \ d_s \boldsymbol{\gamma}_s \end{bmatrix}

  • 右乘对角矩阵:用一个 n×nn \times n 的对角矩阵 Dn=diag(d1,d2,,dn)D_n = \text{diag}(d_1, d_2, \dots, d_n) 右乘 AA,相当于用 djd_j 去缩放 AA 的第 jj 列。 ADn=[α1α2αn][d1000d2000dn]=[d1α1d2α2dnαn]A D_n = \begin{bmatrix} \boldsymbol{\alpha}_1 & \boldsymbol{\alpha}_2 & \cdots & \boldsymbol{\alpha}_n \end{bmatrix} \begin{bmatrix} d_1 & 0 & \cdots & 0 \ 0 & d_2 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & d_n \end{bmatrix}

    \begin{bmatrix} d_1 \boldsymbol{\alpha}_1 & d_2 \boldsymbol{\alpha}_2 & \cdots & d_n \boldsymbol{\alpha}_n \end{bmatrix}

结论:在矩阵运算中,若需要对一个矩阵的行或列分别进行缩放,可以通过左乘或右乘一个相应的对角矩阵来实现。

import numpy as np

# 创建一个3x4的矩阵A
A = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12]])
print("原始矩阵 A:")
print(A)

# 创建一个3x3的对角矩阵D_left,用于缩放行
D_left = np.diag([2, 0.5, -1])
print("\n左乘对角矩阵 D_left (缩放行):")
print(D_left)

# 左乘:第0行乘以2,第1行乘以0.5,第2行乘以-1
result_left = D_left @ A
print("\nD_left @ A (对行进行缩放):")
print(result_left)

# 创建一个4x4的对角矩阵D_right,用于缩放列
D_right = np.diag([1, -2, 0, 0.5])
print("\n右乘对角矩阵 D_right (缩放列):")
print(D_right)

# 右乘:第1列乘以-2,第2列乘以0,第3列乘以0.5
result_right = A @ D_right
print("\nA @ D_right (对列进行缩放):")
print(result_right)

三角矩阵与基本矩阵

上三角矩阵 (Upper Triangular Matrix)

定义:若一个 n×nn \times n 方阵 UU 中,主对角线以下的所有元素全为零,则称 UU上三角矩阵。即对于 i>ji > j,有 uij=0u_{ij} = 0

上三角矩阵的一个重要性质是:两个上三角矩阵的乘积仍然是上三角矩阵。以 2×22 \times 2 矩阵为例: [a11a120a22][b11b120b22]=[a11b11a11b12+a12b220a22b22]\begin{aligned} \begin{bmatrix} a_{11} & a_{12} \ 0 & a_{22} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \ 0 & b_{22} \end{bmatrix} &= \begin{bmatrix} a_{11}b_{11} & a_{11}b_{12} + a_{12}b_{22} \ 0 & a_{22}b_{22} \end{bmatrix} \end{aligned} 结果矩阵的主对角线以下元素仍为0。此性质可以通过数学归纳法推广到 n×nn \times n 的情形。并且,乘积矩阵主对角线上的元素,恰好是原两个矩阵主对角线上对应元素的乘积。

基本矩阵 (Elementary Unit Matrix)

定义:若一个矩阵中,只有一个元素为 11,其余元素全为 00,则称该矩阵为基本矩阵。记 Eij(m×n)E_{ij}^{(m \times n)} 表示一个 m×nm \times n 的基本矩阵,其第 ii 行第 jj 列的元素为 11

例如,一个 3×23 \times 2 的基本矩阵 E12(3×2)E_{12}^{(3 \times 2)} 为: E12(3×2)=[010000]E_{12}^{(3 \times 2)} = \begin{bmatrix} 0 & 1 \ 0 & 0 \ 0 & 0 \end{bmatrix}

基本矩阵与任意矩阵 AA 相乘,效果非常直观,即“搬运”行或列:

  • 左乘Eij(r×s)As×nE_{ij}^{(r \times s)} A_{s \times n} 的结果是一个 r×nr \times n 的矩阵,其第 ii 行等于 AA 的第 jj 行,其余行全为 00。这相当于把 AA 的第 jj 行“搬运”到结果矩阵的第 ii 行。
  • 右乘As×nEij(n×t)A_{s \times n} E_{ij}^{(n \times t)} 的结果是一个 s×ts \times t 的矩阵,其第 jj 列等于 AA 的第 ii 列,其余列全为 00。这相当于把 AA 的第 ii 列“搬运”到结果矩阵的第 jj 列。

核心思想:用矩阵乘法来表示对矩阵的行或列进行的特定操作。

初等矩阵 (Elementary Matrix)

初等矩阵与我们在解线性方程组时使用的初等行变换密切相关。

定义:单位矩阵 II 经过一次初等行变换(或列变换)后所得的矩阵,称为初等矩阵

初等行变换有三种,对应三种初等矩阵:

  1. 倍乘:将单位矩阵的第 ii 行乘以非零常数 cc,记为 Pi(c)P_i(c)。用 Pi(c)P_i(c) 左乘矩阵 AA,等价于将 AA 的第 ii 行乘以 cc
  2. 互换:将单位矩阵的第 ii 行与第 jj 行互换,记为 PijP_{ij}。用 PijP_{ij} 左乘矩阵 AA,等价于互换 AA 的第 ii 行与第 jj 行。
  3. 倍加:将单位矩阵的第 ii 行的 kk 倍加到第 jj 行,记为 Pji(k)P_{ji}(k)。用 Pji(k)P_{ji}(k) 左乘矩阵 AA,等价于将 AA 的第 ii 行的 kk 倍加到第 jj 行上。

重要规律

  • 左乘初等矩阵,等价于对矩阵 AA 施行一次相应的初等行变换
  • 右乘初等矩阵,等价于对矩阵 AA 施行一次相应的初等列变换
import numpy as np

# 创建一个3x3的矩阵A
A = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
print("原始矩阵 A:")
print(A)

# 1. 构造倍乘初等矩阵 P_1(2):将第0行乘以2
I = np.eye(3)
P_mul = I.copy()
P_mul[0, 0] = 2
print("\n倍乘初等矩阵 P_1(2):")
print(P_mul)
print("P_1(2) @ A (等价于将A的第0行乘以2):")
print(P_mul @ A)

# 2. 构造互换初等矩阵 P_12:交换第0行和第1行
P_swap = I.copy()
P_swap[[0, 1]] = P_swap[[1, 0]]
print("\n互换初等矩阵 P_12:")
print(P_swap)
print("P_12 @ A (等价于交换A的第0行和第1行):")
print(P_swap @ A)

# 3. 构造倍加初等矩阵 P_20(3):将第0行的3倍加到第2行
P_add = I.copy()
P_add[2, 0] = 3
print("\n倍加初等矩阵 P_20(3):")
print(P_add)
print("P_20(3) @ A (等价于将A的第0行3倍加到第2行):")
print(P_add @ A)

对称矩阵与反对称矩阵

这两种矩阵描述了矩阵元素关于主对角线的特殊对称关系。

对称矩阵 (Symmetric Matrix)

定义:若一个方阵 AA 满足 A=ATA = A^T,则称 AA对称矩阵

A=(aij)n×nA = (a_{ij}){n \times n},由 A=ATA = A^T 可得 aij=ajia{ij} = a_{ji} 对所有 i,ji, j 成立。这意味着矩阵元素关于主对角线对称相等。例如一个 3×33 \times 3 对称矩阵的形式为: A=[a11a12a13a12a22a23a13a23a33]A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \ a_{12} & a_{22} & a_{23} \ a_{13} & a_{23} & a_{33} \end{bmatrix}

反对称矩阵 (Skew-symmetric Matrix)

定义:若一个方阵 AA 满足 AT=AA^T = -A,则称 AA反对称矩阵

A=(aij)n×nA = (a_{ij}){n \times n},由 AT=AA^T = -A 可得 aij=ajia{ij} = -a_{ji} 对所有 i,ji, j 成立。由此可推出两个重要性质:

  1. i=ji = j 时,有 aii=aiia_{ii} = -a_{ii},故 aii=0a_{ii} = 0。即反对称矩阵的主对角线元素全为零
  2. iji \neq j 时,关于主对角线对称的元素互为相反数。

例如一个 3×33 \times 3 反对称矩阵的形式为: A=[0a12a13a120a23a13a230]A = \begin{bmatrix} 0 & a_{12} & a_{13} \ -a_{12} & 0 & a_{23} \ -a_{13} & -a_{23} & 0 \end{bmatrix}

类比:对称矩阵与反对称矩阵的关系,类似于偶函数与奇函数的关系。对称矩阵要求 f(x,y)=f(y,x)f(x, y) = f(y, x)(值相等),而反对称矩阵要求 f(x,y)=f(y,x)f(x, y) = -f(y, x)(值相反)。

📝 动手练一练

  1. 对角矩阵的运算:已知矩阵 A=[1234]A = \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix},对角矩阵 D1=[2003]D_1 = \begin{bmatrix} 2 & 0 \ 0 & 3 \end{bmatrix}D2=[1002]D_2 = \begin{bmatrix} -1 & 0 \ 0 & 2 \end{bmatrix}。请计算 D1AD_1 AAD2A D_2,并解释计算结果分别对 AA 的行和列做了什么操作。

  2. 对称与反对称矩阵的构造: a) 若矩阵 B=[1b124b212b234b323]B = \begin{bmatrix} 1 & b_{12} & 4 \ b_{21} & -2 & b_{23} \ 4 & b_{32} & 3 \end{bmatrix} 是对称矩阵,求 b12,b21,b23,b32b_{12}, b_{21}, b_{23}, b_{32} 的值。 b) 若矩阵 C=[0c125c210c23c31c320]C = \begin{bmatrix} 0 & c_{12} & 5 \ c_{21} & 0 & c_{23} \ c_{31} & c_{32} & 0 \end{bmatrix} 是反对称矩阵,求 c12,c21,c23,c31,c32c_{12}, c_{21}, c_{23}, c_{31}, c_{32} 的值。

参考答案:

  1. D1A=[24912]D_1 A = \begin{bmatrix} 2 & 4 \ 9 & 12 \end{bmatrix},此操作将 AA 的第0行乘以2,第1行乘以3。 AD2=[1438]A D_2 = \begin{bmatrix} -1 & 4 \ -3 & 8 \end{bmatrix},此操作将 AA 的第0列乘以-1,第1列乘以2。
  2. a) 由对称性 bij=bjib_{ij}=b_{ji},得:b12=b21b_{12}=b_{21}b23=b32b_{23}=b_{32}。但题目未给出具体相等关系,仅能确定 b12=b21b_{12}=b_{21}b23=b32b_{23}=b_{32}。若假设矩阵书写完整,则应有 b21=b12=?b_{21}=b_{12}=?(原题可能缺条件,通常对称矩阵直接给出上三角或下三角部分)。一个完整的对称矩阵例子是:b12=b21=xb_{12}=b_{21}=x, b23=b32=yb_{23}=b_{32}=y,其中x,yx, y为任意实数。 b) 由反对称性 cij=cjic_{ij}=-c_{ji},且对角线为0,得:c21=c12c_{21} = -c_{12}, c31=5c_{31} = -5, c32=c23c_{32} = -c_{23}。因此,C=[0c125c120c235c230]C = \begin{bmatrix} 0 & c_{12} & 5 \ -c_{12} & 0 & c_{23} \ -5 & -c_{23} & 0 \end{bmatrix},其中 c12,c23c_{12}, c_{23} 为任意实数。

本章小结

本节深入探讨了线性代数中几类关键的特殊矩阵,它们是构建更复杂矩阵理论和算法的基础模块。

要点回顾:

  • 对角矩阵 diag(d1,,dn)\text{diag}(d_1, \dots, d_n):左乘缩放行,右乘缩放列。
  • 上三角矩阵:主对角线下方全为零;两个上三角矩阵的乘积仍是上三角矩阵。
  • 基本矩阵 EijE_{ij}:仅一个元素为1;左乘“搬运”行,右乘“搬运”列。
  • 初等矩阵:由单位矩阵经一次初等变换得到;左乘对应行变换,右乘对应列变换。这建立了矩阵乘法与矩阵变换之间的桥梁。
  • 对称矩阵:满足 A=ATA = A^T,元素关于主对角线对称相等。
  • 反对称矩阵:满足 AT=AA^T = -A,主对角元为零,对称位置元素互为相反数。

行动清单:

  1. 动手验证:使用 Python 的 NumPy 库,亲自创建本节介绍的各类特殊矩阵,并验证其乘法性质(如两个上三角矩阵相乘、初等矩阵左乘实现行变换)。
  2. 联系对比:将对称矩阵、反对称矩阵的定义与函数的偶函数(f(x)=f(x)f(x)=f(-x))、奇函数(f(x)=f(x)f(x)=-f(-x))性质进行类比,加深对“对称”与“反对称”直观含义的理解。
  3. 思考应用:试想在对图像像素矩阵进行处理时,左乘一个对角矩阵可能实现什么效果?(例如:调整RGB颜色通道的亮度)。这有助于将抽象的矩阵运算与实际问题联系起来。

— 小象教研组

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

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

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

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