MathLabs

12 年级

导数的应用

导数的符号与零点如何揭示函数在何处递增、递减以及取得极值,并由此得到区间上求最大值、最小值的算法以及实际的最优化问题。

直观从斜率读出曲线的形状

把登山步道的海拔画成函数 f(x)f(x),其中 xx 是已经走过的距离。上坡时步道的斜率 f′(x)f'(x) 为正,下坡时 f′(x)f'(x) 为负,而恰好在山顶或谷底处,地面暂时是平的,于是 f′(x)=0f'(x)=0。"单调性与极值"的整套理论,正是把这个日常观察变成一个精确、可证明的命题:导数的符号告诉我们函数在哪里上升、哪里下降,导数的零点则标出可能的转折点。

带有系数 a、b、c、d 滑块的交互式三次函数图象;曲线在 x=-1 附近有局部极大值,在 x=1 附近有局部极小值。
三次函数 f(x)=x3−3x+2f(x)=x^3-3x+2 的图象。拖动 f(x)=ax3+bx2+cx+df(x)=ax^3+bx^2+cx+d 中的滑块 a,b,c,da,b,c,d,观察曲线上升、下降的区间以及"山峰"与"山谷"的位置如何随图象形状一起变化。

中学区间上的单调性与极值

定义: 单调递增、递减与局部极值

函数 ff 在区间 KK 上递增,是指对任意 x1,x2∈Kx_1,x_2\in K 且 x1<x2x_1<x_2 都有 f(x1)<f(x2)f(x_1)<f(x_2);反之若 f(x1)>f(x2)f(x_1)>f(x_2) 则称递减。定义域内部的点 x0x_0 称为局部极大值点,若存在 δ>0\delta>0 使得对所有与 x0x_0 距离不超过 δ\delta 的 xx 都有 f(x)≤f(x0)f(x)\le f(x_0);局部极小值点的定义类似,只是不等号反向。使 f′(x0)=0f'(x_0)=0 或 f′(x0)f'(x_0) 不存在的点称为临界点(驻点)——它们是局部极值的唯一候选者。

f′(x)>0  ∀ x∈(a,b)  ⟹  ∀ x1<x2∈(a,b), f(x1)<f(x2)f'(x) > 0 \;\forall\, x \in (a,b) \implies \forall\, x_1 < x_2 \in (a,b),\ f(x_1) < f(x_2)

对复杂的 ff 而言,直接从定义验证这个不等式很麻烦。下面的定理把它换成一个真正可计算的判据:只需看 f′(x)f'(x) 的符号。

f′(x0)=0, f′′(x0)>0  ⟹  f(x)≥f(x0);f′(x0)=0, f′′(x0)<0  ⟹  f(x)≤f(x0)f'(x_0)=0,\ f''(x_0)>0 \implies f(x)\ge f(x_0); \qquad f'(x_0)=0,\ f''(x_0)<0 \implies f(x)\le f(x_0)
由导数判断单调性、极值与凹凸性
符号条件结论
在 (a,b)(a,b) 上 f′(x)>0f'(x)>0ff 在 (a,b)(a,b) 上递增
在 (a,b)(a,b) 上 f′(x)<0f'(x)<0ff 在 (a,b)(a,b) 上递减
f′(x0)=0f'(x_0)=0,且 f′f' 的符号在 x0x_0 两侧发生变化x0x_0 是局部极值点
f′(x0)=0f'(x_0)=0,f′′(x0)>0f''(x_0)>0x0x_0 是局部极小值(图象向上凹)
f′(x0)=0f'(x_0)=0,f′′(x0)<0f''(x_0)<0x0x_0 是局部极大值(图象向下凹)
f′′(x0)=0f''(x_0)=0,且 f′′f'' 的符号在 x0x_0 两侧发生变化x0x_0 是拐点

大学两个定理:从中值定理到极值判定法

设 ff 在 [a,b][a,b] 上连续,在 (a,b)(a,b) 上可导。若对一切 x∈(a,b)x\in(a,b) 都有 f′(x)≥0f'(x)\ge 0,且 f′(x)=0f'(x)=0 仅在有限多个点处成立,则 ff 在 [a,b][a,b] 上递增。若在同样条件下 f′(x)≤0f'(x)\le 0,则 ff 在 [a,b][a,b] 上递减。

为什么成立?

导数为正意味着每条切线都指向上坡;始终沿着上坡切线走的曲线不可能往下走。拉格朗日中值定理把这幅图景变成了任意两点之间严格的不等式。

证明

在 [a,b][a,b] 中任取 x1<x2x_1<x_2。因为 ff 在 [x1,x2][x_1,x_2] 上连续,在 (x1,x2)(x_1,x_2) 上可导,由拉格朗日中值定理,存在 c∈(x1,x2)c\in(x_1,x_2) 使得 f(x2)−f(x1)=f′(c)(x2−x1)f(x_2)-f(x_1)=f'(c)(x_2-x_1)。

由于 f′(c)≥0f'(c)\ge 0 且 x2−x1>0x_2-x_1>0,右边 ≥0\ge 0,于是 f(x2)≥f(x1)f(x_2)\ge f(x_1)。这已经说明 ff 在 [a,b][a,b] 上不减。

为了把"不减"提升为真正的"递增"(尽管 f′f' 有有限多个零点),将这些零点在 (x1,x2)(x_1,x_2) 内记为 t1<t2<⋯<tkt_1<t_2<\dots<t_k。在序列 {x1,t1,…,tk,x2}\{x_1,t_1,\dots,t_k,x_2\} 相邻两点之间的每个开区间上,f′f' 严格为正,于是把同样的中值定理论证用于该区间内任意两点,就得到那里的严格不等式 f(u)<f(v)f(u)<f(v)(u<vu<v)。

由 ff 的连续性,相邻区间上的严格不等式可以衔接起来:比如若 x1<u<t1<v<x2x_1<u<t_1<v<x_2,则 f(x1)<f(u)<f(t1)≤f(v)<f(x2)f(x_1)<f(u)<f(t_1)\le f(v)<f(x_2),而由于 u,vu,v 可以任意接近两端点,从而得到 f(x1)<f(x2)f(x_1)<f(x_2)。因此 ff 在 [a,b][a,b] 上(严格)递增。递减的情形对 −f-f 应用同样论证即可。

若 ff 在定义域内点 x0x_0 处可导,且 x0x_0 是 ff 的局部极值点,则 f′(x0)=0f'(x_0)=0。反之,若 f′(x0)=0f'(x_0)=0,且 ff 在 x0x_0 附近二阶可导,f′′(x0)≠0f''(x_0)\ne 0,则当 f′′(x0)>0f''(x_0)>0 时 x0x_0 是局部极小值点,当 f′′(x0)<0f''(x_0)<0 时是局部极大值点。

为什么成立?

在极值点处切线必须是水平的,因为曲线不可能越过山峰(或谷底)而不掉头继续上升(或下降);此时二阶导数衡量曲线在这个平坦点处向哪个方向弯曲,从而区分谷底与山峰。

证明

(必要性)设 x0x_0 是局部极大值点(局部极小的情形类似)。存在 δ>0\delta>0,使得对满足 ∣x−x0∣<δ|x-x_0|<\delta 的一切 xx 都有 f(x)≤f(x0)f(x)\le f(x_0)。对 h∈(0,δ)h\in(0,\delta),f(x0+h)−f(x0)h≤0\dfrac{f(x_0+h)-f(x_0)}{h}\le 0,令 h→0+h\to 0^+ 得 f′(x0)≤0f'(x_0)\le 0。对 h∈(−δ,0)h\in(-\delta,0),分子 ≤0\le 0 而分母为负,故 f(x0+h)−f(x0)h≥0\dfrac{f(x_0+h)-f(x_0)}{h}\ge 0,令 h→0−h\to 0^- 得 f′(x0)≥0f'(x_0)\ge 0。由于 ff 在 x0x_0 处可导,两个单侧极限必须相等,从而 f′(x0)=0f'(x_0)=0。

(充分性,f′′(x0)>0f''(x_0)>0 的情形)由 f′(x0)=0f'(x_0)=0 且 f′′f'' 在 x0x_0 附近存在,利用 f′′f'' 是 f′f' 的导数这一定义,当 x→x0x\to x_0 时 f′(x)=f′(x0)+f′′(x0)(x−x0)+o(x−x0)=f′′(x0)(x−x0)+o(x−x0)f'(x)=f'(x_0)+f''(x_0)(x-x_0)+o(x-x_0)=f''(x_0)(x-x_0)+o(x-x_0)。因为 f′′(x0)>0f''(x_0)>0,当 xx 略小于 x0x_0 时该式为负,当 xx 略大于 x0x_0 时为正。

于是 f′f' 在 x0x_0 两侧由 −- 变为 ++:由单调性定理,ff 在 x0x_0 左侧邻近递减、右侧邻近递增,这正是 x0x_0 处局部极小值的定义。

f′′(x0)<0f''(x_0)<0 的情形完全类似,只需把所有不等号反向,得到 f′f' 由 ++ 变为 −-,从而是局部极大值。当 f′′(x0)=0f''(x_0)=0 时,上述展开式无法给出 x0x_0 附近 f′f' 符号的信息,判别法失效,必须直接考察 f′f' 的符号(如下面的常见错误部分用 f(x)=x3f(x)=x^3 所示)。

进阶闭区间上的最大值、最小值与渐近线

在闭且有界的区间 [a,b][a,b] 上连续的函数,必在 [a,b][a,b] 上某处取得最大值 MM 与最小值 mm(魏尔斯特拉斯极值定理)。由 f′f' 符号找到的局部极值只是这些全局值的候选者——最大值或最小值也可能出现在端点 aa 或 bb 处,那里符号变化的论证并不适用。因此实际算法是:列出 (a,b)(a,b) 内有限多个临界点 x1,…,xkx_1,\dots,x_k,计算 ff 在这些点和两个端点处的值,然后比较。

M=max⁡[a,b]f=max⁡{f(a),f(x1),…,f(xk),f(b)},m=min⁡[a,b]f=min⁡{f(a),f(x1),…,f(xk),f(b)}M=\max_{[a,b]}f=\max\{f(a),f(x_1),\dots,f(x_k),f(b)\},\qquad m=\min_{[a,b]}f=\min\{f(a),f(x_1),\dots,f(x_k),f(b)\}

当定义域无界时,图象可能不断接近某条直线却始终不与之相交——这就是渐近线。直线 x=x0x=x_0 是垂直渐近线,若 lim⁡x→x0±f(x)=±∞\lim_{x\to x_0^\pm}f(x)=\pm\infty;直线 y=Ly=L 是水平渐近线,若 lim⁡x→+∞f(x)=L\lim_{x\to+\infty}f(x)=L 或 lim⁡x→−∞f(x)=L\lim_{x\to-\infty}f(x)=L;直线 y=ax+by=ax+b(a≠0a\ne 0)是斜渐近线,若 a=lim⁡x→∞f(x)xa=\lim_{x\to\infty}\dfrac{f(x)}{x} 与 b=lim⁡x→∞[f(x)−ax]b=\lim_{x\to\infty}[f(x)-ax] 都存在且为有限值。这三种情形涵盖了有理函数图象在远离原点处"稳定下来"的所有方式。

大学实际应用:工程与物理中的最优化

把 f′f' 的符号变成一套算法,正是导数从纯粹的趣味变成实用工具的关键:只要一个实际量(成本、面积、体积、高度)能写成一个变量的函数,求导并应用上面的判据就能找到最优选择。下面两个例子分别来自制造业和抛体运动。

例题: 无盖盒子体积的最大化

从一张边长为 1212 厘米的正方形硬纸板的四个角各剪去一个边长为 xx 的小正方形,然后把四边折起,做成一个无盖的盒子。求使盒子体积最大的 xx 值,以及此时的最大体积。

解答

盒子的底边长为 12−2x12-2x(每边失去两段宽为 xx 的翻边),高为 xx,于是体积为 V(x)=x(12−2x)2V(x)=x(12-2x)^2,其中 x∈(0,6)x\in(0,6)。

展开或直接用乘积法则求导:V′(x)=(12−2x)2+x⋅2(12−2x)(−2)=(12−2x)[(12−2x)−4x]=(12−2x)(12−6x)V'(x)=(12-2x)^2+x\cdot 2(12-2x)(-2)=(12-2x)\big[(12-2x)-4x\big]=(12-2x)(12-6x)。令 V′(x)=0V'(x)=0 得 x=6x=6(舍去,是定义域端点)或 x=2x=2。

在相关范围内相差一个正常数,V′(x)=6(6−x)(2−x)V'(x)=6(6-x)(2-x),故 0<x<20<x<2 时 V′(x)>0V'(x)>0,2<x<62<x<6 时 V′(x)<0V'(x)<0:V′V' 的符号在 x=2x=2 处由 ++ 变为 −-,由符号判别法,x=2x=2 是局部极大值点(因为它是 (0,6)(0,6) 内唯一的临界点,所以也是全局最大)。

最大体积为 V(2)=2⋅(12−4)2=2⋅64=128V(2)=2\cdot(12-4)^2=2\cdot 64=128 cm3^3。

例题: 被抛出的球的最大高度

竖直向上抛出的球,其高度(单位:米)由 h(t)=−5t2+20t+1h(t)=-5t^2+20t+1 给出,其中 tt 是时间(单位:秒)。求球达到最大高度的时刻,以及该最大高度。

解答

速度为 h′(t)=−10t+20h'(t)=-10t+20。令 h′(t)=0h'(t)=0 得 t=2t=2 秒,这是唯一的临界点。

由于对一切 tt 都有 h′′(t)=−10<0h''(t)=-10<0,二阶导数判别法确认 t=2t=2 是局部极大值点;又因为 hh 是开口向下的抛物线,这个局部极大值也是 t≥0t\ge 0 上的全局最大值。

代回原式,h(2)=−5(2)2+20(2)+1=−20+40+1=21h(2)=-5(2)^2+20(2)+1=-20+40+1=21。所以球在 t=2t=2 秒时达到最大高度 2121 米——此后 h′(t)<0h'(t)<0,球开始下落,这与抛体在重力作用下减速、瞬间静止再下落的物理图景相符。

f(x)=x3−3xf(x)=x^3-3x 在哪个集合上递增?

若 f′(x0)=0f'(x_0)=0 且 f′′(x0)>0f''(x_0)>0,那么 x0x_0 是什么?

被抛出的球高度为 h(t)=−5t2+20t+1h(t)=-5t^2+20t+1 米。它在什么时刻 tt 达到最大高度?

从边长 1212 厘米的正方形纸板上剪去边长为 xx 的正方形并折起四边,做成无盖盒子。哪个 xx 使体积最大?

参考文献

  1. Michael Spivak (2008). Calculus
  2. Stephen Boyd, Lieven Vandenberghe (2004). Convex Optimization