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

多元函数的极值

约 11 分钟

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

多元函数的极值

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

在人工智能的许多核心算法中,如神经网络的梯度下降训练、支持向量机的优化问题,其本质都是在寻找某个多元函数(如损失函数、目标函数)的“最优”值点——即极值点。本节我们将系统学习多元函数极值的定义、寻找极值点的必要条件与充分条件,并掌握利用梯度与海塞矩阵进行判断和计算的完整方法。学完本节,你将能够分析并求解一个多元优化问题的潜在极值点。

💡 核心导读

本节我们将沿着以下路径,将一元函数的极值理论推广到多元世界:

  1. 定义推广:理解多元函数极大值与极小值的严格定义,其几何直观与一元情形类似。
  2. 必要条件:掌握“可微函数在极值点处梯度为零”这一核心定理,并认识其逆命题不成立。
  3. 充分条件:学习如何利用海塞矩阵(二阶导数矩阵)的正定性、负定性来判断稳定点是极大值点、极小值点还是鞍点。
  4. 计算流程:通过一个二元函数实例,演练从求稳定点到利用海塞矩阵判定的完整求解步骤。

多元函数极值的定义

nn 元函数 f(x)=f(x1,x2,,xn)f(\mathbf{x}) = f(x_1, x_2, \dots, x_n) 在区域 DRnD \subset \mathbb{R}^n 上有定义,x0=(x10,x20,,xn0)\mathbf{x}_0 = (x_1^0, x_2^0, \dots, x_n^0)DD 的一个内点。

  • 极大值:如果存在点 x0\mathbf{x}_0 的某个邻域 U(x0)DU(\mathbf{x}_0) \subset D,使得对于该邻域内任意一点 x\mathbf{x},都有 f(x)f(x0)f(\mathbf{x}) \le f(\mathbf{x}_0) 则称 f(x0)f(\mathbf{x}_0) 是函数 f(x)f(\mathbf{x}) 的一个极大值x0\mathbf{x}_0 称为极大值点
  • 极小值:如果存在点 x0\mathbf{x}_0 的某个邻域 U(x0)DU(\mathbf{x}_0) \subset D,使得对于该邻域内任意一点 x\mathbf{x},都有 f(x)f(x0)f(\mathbf{x}) \ge f(\mathbf{x}_0) 则称 f(x0)f(\mathbf{x}_0) 是函数 f(x)f(\mathbf{x}) 的一个极小值x0\mathbf{x}_0 称为极小值点

极大值与极小值统称为极值,极大值点与极小值点统称为极值点。

几何直观:以二元函数 z=f(x,y)z = f(x, y) 为例,其图像是一个曲面。极大值点对应曲面上一个“山峰”的峰顶,极小值点则对应一个“山谷”的谷底。例如,函数 z=x2+y2z = x^2 + y^2 的图像是一个旋转抛物面,点 (0,0)(0,0) 就是它的极小值点。

极值的必要条件:梯度为零

在一元函数中,我们熟知费马引理:如果可导函数 f(x)f(x)x0x_0 处取得极值,则 f(x0)=0f’(x_0) = 0。这个结论可以完美地推广到多元可微函数。

定理(极值的必要条件):如果 nn 元函数 f(x)f(\mathbf{x}) 在点 x0\mathbf{x}_0 处可微,且在该点取得极值(极大值或极小值),那么函数在该点的梯度为零向量,即 f(x0)=0.\nabla f(\mathbf{x}_0) = \mathbf{0}. 其中梯度 f(x0)=(fx1(x0),fx2(x0),,fxn(x0))T\nabla f(\mathbf{x}_0) = \left( \frac{\partial f}{\partial x_1}(\mathbf{x}_0), \frac{\partial f}{\partial x_2}(\mathbf{x}_0), \dots, \frac{\partial f}{\partial x_n}(\mathbf{x}_0) \right)^T

证明思路:固定其他变量,只考虑第 ii 个变量 xix_i,构造一元辅助函数 ϕi(t)=f(x10,,xi10,t,xi+10,,xn0)\phi_i(t) = f(x_1^0, \dots, x_{i-1}^0, t, x_{i+1}^0, \dots, x_n^0)。由于 ffx0\mathbf{x}_0 处取得极值,ϕi(t)\phi_i(t) 必然在 t=xi0t = x_i^0 处取得极值。根据一元函数的费马引理,有 ϕi(xi0)=0\phi_i’(x_i^0) = 0,即 fxi(x0)=0\frac{\partial f}{\partial x_i}(\mathbf{x}_0) = 0。这对所有 i=1,,ni=1,\dots,n 都成立,故梯度为零。

满足 f(x0)=0\nabla f(\mathbf{x}_0) = \mathbf{0} 的点 x0\mathbf{x}_0 称为函数 ff稳定点(或驻点、临界点)。

重要提醒:该条件是必要但不充分的。梯度为零的点不一定是极值点。例如,二元函数 f(x,y)=y2x2f(x, y) = y^2 - x^2(0,0)(0,0) 处的梯度为零,但该点是一个鞍点(沿 yy 轴方向是极小,沿 xx 轴方向是极大),并非极值点。

极值的充分条件:海塞矩阵判定

对于一元函数,我们利用二阶导数 f(x0)f”(x_0) 的符号来判断稳定点 x0x_0 的类型:f(x0)>0f”(x_0) > 0 为极小值,f(x0)<0f”(x_0) < 0 为极大值,f(x0)=0f”(x_0) = 0 时无法判断。在多元情形下,二阶导数的角色由海塞矩阵扮演。

定义(海塞矩阵):设 nn 元函数 f(x)f(\mathbf{x}) 具有二阶连续偏导数,则其海塞矩阵 H(x)\mathbf{H}(\mathbf{x}) 是一个 n×nn \times n 的对称矩阵,其第 ii 行第 jj 列的元素为二阶偏导数: Hij(x)=2fxixj(x).H_{ij}(\mathbf{x}) = \frac{\partial^2 f}{\partial x_i \partial x_j}(\mathbf{x}).

定理(极值的充分条件):设 nn 元函数 f(x)f(\mathbf{x}) 在点 x0\mathbf{x}_0 的某邻域内具有二阶连续偏导数,且 f(x0)=0\nabla f(\mathbf{x}_0) = \mathbf{0}(即 x0\mathbf{x}_0 是稳定点)。记 H0=H(x0)\mathbf{H}_0 = \mathbf{H}(\mathbf{x}_0) 为该点的海塞矩阵。

  1. 如果 H0\mathbf{H}_0正定矩阵,则 f(x)f(\mathbf{x})x0\mathbf{x}_0 处取得极小值
  2. 如果 H0\mathbf{H}_0负定矩阵,则 f(x)f(\mathbf{x})x0\mathbf{x}_0 处取得极大值
  3. 如果 H0\mathbf{H}_0不定矩阵,则 x0\mathbf{x}_0 不是极值点(是鞍点)。
  4. 如果 H0\mathbf{H}_0 是半正定或半负定矩阵,则该定理无法判定,需用其他方法。

证明思路(泰勒展开):利用 f(x)f(\mathbf{x})x0\mathbf{x}_0 处的二阶泰勒公式: f(x)=f(x0)+f(x0)T(xx0)+12(xx0)TH(ξ)(xx0)f(\mathbf{x}) = f(\mathbf{x}_0) + \nabla f(\mathbf{x}_0)^T (\mathbf{x} - \mathbf{x}_0) + \frac{1}{2} (\mathbf{x} - \mathbf{x}_0)^T \mathbf{H}(\boldsymbol{\xi}) (\mathbf{x} - \mathbf{x}_0) 其中 ξ\boldsymbol{\xi} 位于 x0\mathbf{x}_0x\mathbf{x} 的连线上。由于 f(x0)=0\nabla f(\mathbf{x}_0) = \mathbf{0},且 H(x)\mathbf{H}(\mathbf{x}) 连续,当 x\mathbf{x} 充分接近 x0\mathbf{x}_0 时,H(ξ)\mathbf{H}(\boldsymbol{\xi}) 的性质由 H0\mathbf{H}_0 决定。因此,f(x)f(x0)f(\mathbf{x}) - f(\mathbf{x}_0) 的符号由二次型 (xx0)TH0(xx0)(\mathbf{x} - \mathbf{x}_0)^T \mathbf{H}_0 (\mathbf{x} - \mathbf{x}_0) 主导。根据正定、负定、不定的定义,即可得出结论。

二元函数特例:对于 f(x,y)f(x, y),海塞矩阵为 H(x,y)=[fxxfxyfyxfyy].\mathbf{H}(x, y) = \begin{bmatrix} f_{xx} & f_{xy} \ f_{yx} & f_{yy} \end{bmatrix}. 在稳定点 (x0,y0)(x_0, y_0) 处,记 A=fxx(x0,y0)A = f_{xx}(x_0, y_0), B=fxy(x0,y0)B = f_{xy}(x_0, y_0), C=fyy(x0,y0)C = f_{yy}(x_0, y_0)。判别法则可简化为:

  • ACB2>0AC - B^2 > 0A>0A > 0,则 H0\mathbf{H}_0 正定,ff极小值
  • ACB2>0AC - B^2 > 0A<0A < 0,则 H0\mathbf{H}_0 负定,ff极大值
  • ACB2<0AC - B^2 < 0,则 H0\mathbf{H}_0 不定,(x0,y0)(x_0, y_0)鞍点
  • ACB2=0AC - B^2 = 0,则无法判定。

计算实例与 Python 验证

让我们通过一个具体例子来演练整个求解流程。

:求函数 f(x,y)=x2+3xy+3y26x3yf(x, y) = x^2 + 3xy + 3y^2 - 6x - 3y 的极值。

  1. 求稳定点(梯度为零)fx=2x+3y6=0fy=3x+6y3=0\begin{aligned} \frac{\partial f}{\partial x} &= 2x + 3y - 6 = 0 \ \frac{\partial f}{\partial y} &= 3x + 6y - 3 = 0 \end{aligned} 解此线性方程组,得唯一稳定点:(x0,y0)=(9,4)(x_0, y_0) = (9, -4)

  2. 计算海塞矩阵2fx2=2,2fxy=3,2fy2=6.\begin{aligned} \frac{\partial^2 f}{\partial x^2} &= 2, \ \frac{\partial^2 f}{\partial x \partial y} &= 3, \ \frac{\partial^2 f}{\partial y^2} &= 6. \end{aligned} 故海塞矩阵为常数矩阵: H=[2336].\mathbf{H} = \begin{bmatrix} 2 & 3 \ 3 & 6 \end{bmatrix}.

  3. 判断海塞矩阵在稳定点处的正定性: 在点 (9,4)(9, -4) 处,H0=H\mathbf{H}_0 = \mathbf{H}

    • 一阶顺序主子式:2>02 > 0
    • 二阶顺序主子式(行列式):2×63×3=129=3>02 \times 6 - 3 \times 3 = 12 - 9 = 3 > 0。 因为所有顺序主子式均大于零,所以 H0\mathbf{H}_0 是正定矩阵。
  4. 结论:根据极值的充分条件,函数 f(x,y)f(x, y) 在点 (9,4)(9, -4) 处取得极小值。极小值为 f(9,4)=92+3×9×(4)+3×(4)26×93×(4)=21f(9, -4) = 9^2 + 3\times9\times(-4) + 3\times(-4)^2 - 6\times9 - 3\times(-4) = -21

下面我们用 Python 的 SymPy 库来验证上述计算过程。

import sympy as sp
import numpy as np

# 定义符号变量和函数
x, y = sp.symbols('x y')
f = x**2 + 3*x*y + 3*y**2 - 6*x - 3*y

print("函数 f(x, y) =", f)
print("-" * 40)

# 1. 计算梯度(一阶偏导数)
f_x = sp.diff(f, x)
f_y = sp.diff(f, y)
print("偏导数 f_x =", f_x)
print("偏导数 f_y =", f_y)
print("-" * 40)

# 2. 求解稳定点 (f_x = 0, f_y = 0)
# 使用 dict=True 确保返回值为字典列表,便于处理
stationary_points = sp.solve([f_x, f_y], (x, y), dict=True)
print("稳定点(驻点):", stationary_points)
print("-" * 40)

# 3. 计算海塞矩阵(二阶偏导数矩阵)
H = sp.hessian(f, (x, y))
print("海塞矩阵 H =")
sp.pprint(H)
print("-" * 40)

# 4. 在稳定点处判断海塞矩阵的正定性
for point in stationary_points:
    x_val, y_val = point[x], point[y]
    print(f"在稳定点 ({x_val}, {y_val}) 处:")
    
    # 代入稳定点坐标,得到数值矩阵
    H_at_point = H.subs({x: x_val, y: y_val})
    H_np = np.array(H_at_point, dtype=float)
    print("海塞矩阵为:\n", H_np)
    
    # 计算顺序主子式
    det1 = H_np[0, 0]  # 一阶主子式
    det2 = np.linalg.det(H_np)  # 二阶主子式(行列式)
    print(f"  一阶顺序主子式 = {det1:.2f}")
    print(f"  二阶顺序主子式(行列式) = {det2:.2f}")
    
    # 根据主子式判断正定性(针对2x2矩阵)
    if det1 > 0 and det2 > 0:
        print("  -> 海塞矩阵正定,该点为极小值点。")
        f_val = f.subs({x: x_val, y: y_val})
        print(f"  极值 f({x_val}, {y_val}) = {f_val}")
    elif det1 < 0 and det2 > 0:
        print("  -> 海塞矩阵负定,该点为极大值点。")
        f_val = f.subs({x: x_val, y: y_val})
        print(f"  极值 f({x_val}, {y_val}) = {f_val}")
    elif det2 < 0:
        print("  -> 海塞矩阵不定,该点为鞍点(非极值点)。")
    else:
        print("  -> 无法由海塞矩阵直接判定(半定情况)。")
    print("-" * 40)

📝 动手练一练

  1. 求稳定点:求函数 g(x,y)=x3+y33xyg(x, y) = x^3 + y^3 - 3xy 的所有稳定点(驻点)。
  2. 判断极值:对于上题求得的稳定点,利用海塞矩阵判断哪些是极值点,并说明是极大值还是极小值。

参考答案:

  1. 解方程组 {gx=3x23y=0gy=3y23x=0\begin{cases} g_x = 3x^2 - 3y = 0 \ g_y = 3y^2 - 3x = 0 \end{cases}。由第一个方程得 y=x2y = x^2,代入第二个方程得 3(x2)23x=3x(x31)=03(x^2)^2 - 3x = 3x(x^3 - 1) = 0,解得 x=0x=0x=1x=1。对应地,y=0y=0y=1y=1。因此稳定点为 (0,0)(0, 0)(1,1)(1, 1)
  2. 海塞矩阵为 H=[6x336y]\mathbf{H} = \begin{bmatrix} 6x & -3 \ -3 & 6y \end{bmatrix}
    • (0,0)(0,0) 处,H=[0330]\mathbf{H} = \begin{bmatrix} 0 & -3 \ -3 & 0 \end{bmatrix},行列式 ACB2=0×0(3)2=9<0AC-B^2 = 0\times0 - (-3)^2 = -9 < 0,故为不定矩阵,(0,0)(0,0) 是鞍点。
    • (1,1)(1,1) 处,H=[6336]\mathbf{H} = \begin{bmatrix} 6 & -3 \ -3 & 6 \end{bmatrix}A=6>0A=6>0,行列式 369=27>036 - 9 = 27 > 0,故为正定矩阵,(1,1)(1,1) 是极小值点。

本章小结

本节我们将一元函数的极值理论系统地推广到了多元函数:

  • 定义核心:多元函数极值的定义与一元函数在思想上完全一致,关注函数在某个点邻域内的相对大小。
  • 寻找候选点:可微函数取得极值的必要条件是梯度在该点为零向量。满足此条件的点称为稳定点(驻点),它们是极值点的“候选人”。
  • 鉴定候选人:利用海塞矩阵(二阶导数矩阵)在稳定点处的正负定性,可以给出极值存在的充分条件:正定对应极小值,负定对应极大值,不定则对应鞍点(非极值点)。
  • 标准流程:求解多元函数极值的一般步骤为:1) 求梯度并解方程得稳定点;2) 计算海塞矩阵;3) 在稳定点处判断海塞矩阵的正定性。

行动清单

  1. 手动推导:任选一个二元函数(如 f(x,y)=x4+y44xy+1f(x,y)=x^4+y^4-4xy+1),完整重复“求稳定点->算海塞矩阵->判断正定性”的笔算流程。
  2. 代码验证:将你手动计算的例子用上面的 Python 代码模板进行验证,确保理解代码每一步的含义。
  3. 概念反思:思考“梯度为零”为什么只是极值的必要条件而非充分条件?尝试画出或想象一个二元函数鞍点(如 f(x,y)=xyf(x,y)=xy)的图像,加深理解。

— 小象教研组

配套学习资源与课件
  • 第9章讲义(含板书):多元微分学(PDF · 28.2MB)
    下载
🎁 免费学习资源

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

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

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