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

极值问题与导数

约 15 分钟

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

极值问题与导数

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

在人工智能的许多核心算法中,如梯度下降优化、损失函数最小化等,其数学本质都是寻找函数的最优值(最大值或最小值)。本节将学习如何利用导数这一强大工具来系统地寻找和判断函数的极值点。学完本节,你将能够对一个可导函数的单调区间、极值点进行完整的分析,这是理解后续最优化理论的重要基石。

💡 核心导读

  • 极值点的定义:理解函数在局部“峰顶”和“谷底”的严格数学描述。
  • 费马定理:掌握“可导函数在极值点处导数为零”这一关键结论,并理解其逆命题不成立。
  • 导数与单调性:学习如何通过导数的正负来判断函数在区间上的增减趋势。
  • 极值判别法(一阶):结合费马定理和单调性,学会用导数符号变化来判定稳定点是极大值点还是极小值点。
  • 综合应用:通过一个完整例题,演练利用导数分析函数形态、寻找极值点的标准流程。

极值点的定义与直观理解

在数学中,函数的极值描述的是函数在某个点附近的局部性质。

定义(极值点与极值):设函数 y=f(x)y = f(x) 在点 x0x_0 的某个邻域 U(x0)U(x_0) 内有定义。

  • 如果对于该邻域内任意一点 xx,都有 f(x)f(x0)f(x) \le f(x_0),则称 f(x0)f(x_0) 为函数 f(x)f(x) 的一个极大值x0x_0 称为极大值点
  • 如果对于该邻域内任意一点 xx,都有 f(x)f(x0)f(x) \ge f(x_0),则称 f(x0)f(x_0) 为函数 f(x)f(x) 的一个极小值x0x_0 称为极小值点

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

直观理解: 想象一个连绵起伏的山脉。山峰的顶端,无论你从多么近的距离去观察,其周围点的海拔都比它低,这就是极大值点。同理,山谷的底部,其周围点的海拔都比它高,这就是极小值点

值得注意的是,极值点不一定要求函数在该点“光滑”或连续。例如,一个函数在 x0x_0 处有一个跳跃间断,但如果 x0x_0 左右两侧的函数值都低于 f(x0)f(x_0),那么 x0x_0 仍然可以是一个极大值点。

费马定理:极值点的必要条件

对于更“好”的函数(即可导的函数),极值点有一个非常强的性质。

定理(费马定理):如果函数 f(x)f(x) 在点 x0x_0 处可导,且 x0x_0f(x)f(x) 的一个极值点,那么 f(x0)=0f’(x_0) = 0

证明(以极大值点为例): 因为 x0x_0 是极大值点,存在一个邻域 U(x0)U(x_0),使得对于任意 xU(x0)x \in U(x_0),有 f(x)f(x0)f(x) \le f(x_0)

  • 右导数:考虑 xx0+x \to x_0^+,此时 xx0>0x - x_0 > 0,而 f(x)f(x0)0f(x) - f(x_0) \le 0。因此, f+(x0)=limxx0+f(x)f(x0)xx00.f’+(x_0) = \lim{x \to x_0^+} \frac{f(x) - f(x_0)}{x - x_0} \le 0.
  • 左导数:考虑 xx0x \to x_0^-,此时 xx0<0x - x_0 < 0,而 f(x)f(x0)0f(x) - f(x_0) \le 0。因此, f(x0)=limxx0f(x)f(x0)xx00.f’-(x_0) = \lim{x \to x_0^-} \frac{f(x) - f(x_0)}{x - x_0} \ge 0. 由于函数在 x0x_0 处可导,必有左导数等于右导数,即 f(x0)=f+(x0)f’-(x_0) = f’+(x_0)。结合上面两个不等式,只能有 f(x0)=0f’(x_0) = 0。证毕。

定义(稳定点/驻点):使得 f(x)=0f’(x) = 0 的点 xx,称为函数 f(x)f(x)稳定点驻点

费马定理告诉我们:对于可导函数,极值点一定是稳定点。这为我们寻找极值点提供了一个强有力的方法:先解方程 f(x)=0f’(x) = 0 找出所有可能的候选点(稳定点)。

重要辨析:稳定点一定是极值点吗?答案是否定的。 反例:函数 f(x)=x3f(x) = x^3。在 x=0x=0 处,f(0)=0f’(0) = 0,所以 x=0x=0 是一个稳定点。但 x=0x=0 既不是极大值点也不是极小值点(函数图像是穿过原点的单调曲线)。因此,稳定点只是极值点的必要条件,而非充分条件。稳定点的集合真包含极值点的集合。

导数与函数单调性的关系

导数不仅可以帮我们定位“候选”极值点,还可以描述函数整体的变化趋势。

定理(单调性判别法):设函数 f(x)f(x) 在区间 II 上可导。

  • f(x)f(x)II 上单调递增的充要条件是 f(x)0,xIf’(x) \ge 0, \forall x \in I
  • f(x)f(x)II 上单调递减的充要条件是 f(x)0,xIf’(x) \le 0, \forall x \in I

这个结论直观上很好理解:导数代表变化率,变化率为正则函数值增加,为负则减少。

一阶导数判别法:判断极值类型

结合费马定理和单调性判别法,我们可以发展出一套实用的方法来判定一个稳定点究竟是极大值点、极小值点还是两者都不是。

方法(一阶导数符号判别法):设函数 f(x)f(x) 在点 x0x_0 处连续,在 x0x_0 的某个去心邻域内可导,且 f(x0)=0f’(x_0) = 0

  1. 如果在 x0x_0 的左侧邻域内 f(x)>0f’(x) > 0(函数单调递增),在右侧邻域内 f(x)<0f’(x) < 0(函数单调递减),则 x0x_0极大值点
  2. 如果在 x0x_0 的左侧邻域内 f(x)<0f’(x) < 0(函数单调递减),在右侧邻域内 f(x)>0f’(x) > 0(函数单调递增),则 x0x_0极小值点
  3. 如果在 x0x_0 的左右两侧邻域内,f(x)f’(x) 的符号相同(即函数单调性不变),则 x0x_0 不是极值点(如 f(x)=x3f(x)=x^3x=0x=0 处)。

这个判别法的逻辑非常直观:对于极大值点,函数需要“爬升”到该点然后“下降”;对于极小值点,则是“下降”到该点然后“爬升”。

综合应用:分析函数形态

现在,我们用一个完整的例子来演练上述所有步骤。这是视频中讲授的原题。

例题:分析函数 f(x)=2x315x2+24x+7f(x) = 2x^3 - 15x^2 + 24x + 7 的单调区间与极值点。

第一步:求一阶导数 f(x)=6x230x+24.f’(x) = 6x^2 - 30x + 24.

第二步:求稳定点(解 f(x)=0f’(x)=0 对导数进行因式分解: f(x)=6(x25x+4)=6(x1)(x4).f’(x) = 6(x^2 - 5x + 4) = 6(x-1)(x-4).f(x)=0f’(x) = 0,解得稳定点为: x1=1,x2=4.x_1 = 1, \quad x_2 = 4.

第三步:用稳定点划分定义域,列表分析符号 导数 f(x)=6(x1)(x4)f’(x) = 6(x-1)(x-4) 是一个开口向上的二次函数,其根为 x=1x=1x=4x=4。我们用这两个点将定义域 (,+)(-\infty, +\infty) 划分为三个区间,并判断每个区间上 f(x)f’(x) 的符号,从而确定 f(x)f(x) 的单调性。

xx 所在区间(,1)(-\infty, 1)(1,4)(1, 4)(4,+)(4, +\infty)
(x1)(x-1) 的符号-++++
(x4)(x-4) 的符号--++
f(x)=6(x1)(x4)f’(x)=6(x-1)(x-4) 的符号++-++
f(x)f(x) 的单调性单调递增 (\nearrow)单调递减 (\searrow)单调递增 (\nearrow)

第四步:判断极值点

  • x=1x=1 处:左侧 f(x)>0f’(x)>0(递增),右侧 f(x)<0f’(x)<0(递减),符合极大值点特征。因此,x=1x=1极大值点,极大值为 f(1)f(1)
  • x=4x=4 处:左侧 f(x)<0f’(x)<0(递减),右侧 f(x)>0f’(x)>0(递增),符合极小值点特征。因此,x=4x=4极小值点,极小值为 f(4)f(4)

结论: 函数 f(x)f(x)(,1)(-\infty, 1)(4,+)(4, +\infty) 上单调递增,在 (1,4)(1, 4) 上单调递减。极大值点为 x=1x=1,极小值点为 x=4x=4

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

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt

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

# 1. 求一阶导数
f_prime = sp.diff(f, x)
print("一阶导数 f'(x) =", f_prime)

# 2. 求稳定点(导数为零的点)
critical_points = sp.solve(f_prime, x)
print("稳定点(驻点)为:", critical_points)

# 3. 计算函数在稳定点的值,并判断二阶导数符号(下一节内容,此处先做验证)
f_double_prime = sp.diff(f_prime, x)
print("二阶导数 f''(x) =", f_double_prime)

for cp in critical_points:
    val = f.subs(x, cp)
    second_val = f_double_prime.subs(x, cp)
    print(f"在 x = {cp} 处:")
    print(f"  函数值 f({cp}) = {val.evalf():.2f}")
    print(f"  二阶导数 f''({cp}) = {second_val.evalf():.2f}")
    if second_val > 0:
        print(f"  --> 二阶导大于0,是极小值点")
    elif second_val < 0:
        print(f"  --> 二阶导小于0,是极大值点")
    else:
        print(f"  --> 二阶导等于0,无法用二阶判别法判定")

# 4. 数值化函数并绘图,直观展示
f_np = sp.lambdify(x, f, 'numpy')
x_vals = np.linspace(-1, 6, 400)
y_vals = f_np(x_vals)

plt.figure(figsize=(10, 6))
plt.plot(x_vals, y_vals, label='f(x) = 2x³ - 15x² + 24x + 7', linewidth=2)
# 标记稳定点
for cp in critical_points:
    cp_val = float(cp)
    plt.scatter(cp_val, f_np(cp_val), color='red', s=100, zorder=5, label=f'稳定点 x={cp_val}')
plt.axhline(y=0, color='k', linestyle=':', alpha=0.3)
plt.axvline(x=0, color='k', linestyle=':', alpha=0.3)
plt.title("函数图像与极值点")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True, alpha=0.3)
plt.legend()
plt.show()

📝 动手练一练

  1. 基础练习:求函数 g(x)=x33x29x+5g(x) = x^3 - 3x^2 - 9x + 5 的单调区间和极值点。 参考答案: 求导得 g(x)=3x26x9=3(x+1)(x3)g’(x) = 3x^2 - 6x - 9 = 3(x+1)(x-3)。 稳定点为 x=1x = -1x=3x = 3。 列表分析:

    • (,1)(-\infty, -1): g(x)>0g’(x)>0,单调递增。
    • (1,3)(-1, 3): g(x)<0g’(x)<0,单调递减。
    • (3,+)(3, +\infty): g(x)>0g’(x)>0,单调递增。 因此,x=1x=-1 是极大值点,x=3x=3 是极小值点。
  2. 辨析思考:函数 h(x)=xh(x) = |x|x=0x=0 处有极小值吗?x=0x=0 是稳定点吗?这说明了什么? 参考答案h(0)=0h(0)=0,且在 x=0x=0 的任意邻域内,都有 h(x)0=h(0)h(x) \ge 0 = h(0),所以 x=0x=0 是极小值点。 但是,h(x)h(x)x=0x=0 处不可导(左右导数不相等),因此 x=0x=0 不是稳定点。 这说明:费马定理要求函数在极值点处可导。如果函数在极值点处不可导(如本例的尖点),该点仍然是极值点,但导数为零的条件不再适用。寻找极值点时,除了稳定点,还必须检查不可导点。

本章小结

本节我们建立了导数与函数极值、单调性之间的核心联系:

  1. 极值点的定义:关注函数在某个点邻域内的局部最大/最小值。
  2. 费马定理:对于可导函数,极值点必然是稳定点(f(x)=0f’(x)=0)。这是寻找极值点的关键线索。
  3. 导数与单调性:导数的正负直接决定了函数在区间上的增减趋势。
  4. 一阶导数判别法:通过分析稳定点左右两侧导数的符号变化,可以判定该点是极大值点、极小值点还是非极值点。
  5. 分析流程:求导 → 找稳定点/不可导点 → 划分区间列表分析 → 判断单调性与极值。

行动清单 学完本节,你可以立即尝试:

  1. 任选一个三次多项式函数,手动完成一次完整的单调区间与极值点分析。
  2. 使用 Python 的 SymPy 库(如上例代码),验证你的手算结果,并绘制函数图像进行直观观察。
  3. 思考:在人工智能的损失函数优化中,梯度下降法寻找的是哪种点?它与本节所学的稳定点有何关系?

— 小象教研组

配套学习资源与课件
  • 第6章讲义:泰勒公式(PDF · 5.1MB)
    下载
🎁 免费学习资源

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

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

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