导数的定义、法则与局部线性化
上一章里,我们用紧性把连续函数的局部信息拼成了闭区间上的全局结论:能取到极值,能把逐点连续统一起来。导数回到另一个尺度。它不先问函数在整个区间上走了多远,而是盯住一个点附近极小的一步:自变量挪动一点点时,函数值到底怎样响应?
微积分课里,求导常常像一张公式表:见到幂函数、乘积、复合函数,就挑相应公式。那些公式当然有用,但它们不是导数的定义。实分析要补上的,是公式背后的承诺:为什么一个“瞬时变化率”确实存在,为什么相乘时会多出两项,为什么复合时可以相乘,以及“曲线像一条直线”究竟精确到什么程度。
这一章只讨论实变量实函数。设 f:D→R,c∈D 是定义域中的内点;在通常的区间情形,这意味着 c 左右都有一小段定义域可用。端点处的情形要改用单侧导数,后面会单独说清楚。
从割线到差商极限
取 c 附近另一个点 x=c。连接图像上的 (c,f(c)) 与 (x,f(x)),割线的斜率是
x−cf(x)−f(c).
这个数也是从 c 到 x 这一小段的平均变化率。若 f(t) 记录位置、t 记录时间,它就是该时间段的平均速度。把 x 不断推向 c,我们不是在“代入 x=”——那会得到 ,什么也没说——而是在问这些平均斜率会不会稳定地靠向一个有限实数。
若存在实数 A,使得
x→cx∈D, x=c
就称 f 在 c 可导,并把 A 记为 f′(c)。这里的极限仍是严格极限:对每个 ε>0,都要找到 ,使得只要 且
0<∣x−c∣<δ,
就有
x−cf(x)−f(c)−A
把 x 写成 c+h,其中 h 是自变量的增量,定义成为更常用的形式:
f′(c)=h→0
以后见到 h→0,要同时记住 c+h 必须落在定义域中。这个小条件在定义域有端点、缺口或分段时尤其不能省略。
先从定义算一次
设
p(x)=2x2−3x+1.
我们不调用任何求导法则,直接在任意 c∈R 处整理差商:
h
当 h→0,最后一式趋于 4c−3,因此
p′(c)=4c−3.
这段计算里真正发生的事是:先把分子里的 h 提出来,再取极限。不能把原来的 h=0 直接代进分式;分母为零的式子从来不是导数本身。
同样的机制给出幂函数法则。对正整数 n,因式分解
xn−cn=(x−c)j=0
说明
x−cxn−cn=
让 x→c 后,右侧每一项都趋于 cn−1,一共 n 项,于是
dxdxn=nxn−1.
这条熟悉的公式并不是从表格里掉下来的;它只是差商极限与一个代数恒等式配合后的结果。
双侧导数与单侧导数
在内点谈普通导数时,h 要从正、负两边靠近 0。因此,下面两个极限都存在且相等,才有双侧导数:
f+′(c)=
例如 q(x)=∣x−2∣ 在 2 处连续,但
hq(2+h)−q(2)=
右导数为 1,左导数为 −1。它们没有达成同一个数,所以 q′(2) 不存在。这里“有尖点”只是帮助你猜测答案的图像语言;真正排除可导性的,是两个差商极限不同。
若函数只定义在 [a,b] 上,端点 a 的左边和端点 b 的右边根本没有函数值可比较。此时可定义
f+′(a)=
它们分别是右端和左端的变化率,不能自动叫作双侧导数。以后说函数在闭区间 [a,b] 上可导,通常约定为:在 (a,b) 内双侧可导,并且 f+′(a) 与 存在。
导数存在要求的是一个有限实数极限。若差商向无穷大,或者左右趋向不同的数,按本章的定义都不算可导;“斜率很大”与“有一个导数”是两回事。
导数意味着什么:局部的一次模型
导数的斜率解释很直观,却还没有说清函数值本身如何接近一条直线。要把这件事说严谨,设 f′(c)=A,并对足够小且非零的 h 定义
E(h)=hf(c+h)−f(c)−A,
再令 E(0)=0。导数的定义恰好是
h→0limE(h)=0.
把定义式移项并乘回 h,得到一个在 h=0 也成立的等式:
f(c+h)=f(c)+Ah+hE(h).
前两项是通过 (c,f(c))、斜率为 A 的直线给出的函数值;最后一项才是函数与这条直线之间的差。
可导必连续
现在可以不靠图像,直接证明一个基本结论:若 f 在 c 处可导,则 f 在 c 处连续。
因为 E(h)→0,当 h 足够小时可以保证 ∣E(h)∣<1。于是
∣A+E(h)∣≤∣A∣+1.
由局部表示式,
∣f(c+h)−f(c)∣=∣h∣∣A+E(h)∣≤
右端随 h→0 趋于 0,所以
h→0limf(c+h)=f(c).
这就是连续性。证明的方向不能倒过来:可导先给出差商的有限极限,有限极限使局部变化最多是“常数乘以 ∣h∣”的量级,因此函数值不能突然跳开。
反方向不成立。刚才的 ∣x−2∣ 在 2 处连续,却因左右变化率不同而不可导。连续性只要求函数值最后能回到 f(c);可导性还要求它回去的一级变化模式能被同一个斜率描述。
不要把“连续曲线可以一笔画”升级成“连续函数一定可导”。绝对值函数已经否定了这个推断;更复杂的连续函数还可能在许多点没有稳定的差商。
导数本身不必连续
“f 可导”也不表示“f′ 很平滑”。定义
r(x)=⎩⎨⎧
在 0 处,差商为
hr(h)−r(0)=hsinh1
它被 ∣h∣ 控制,故极限为 0,即 r′(0)=0。而在 x= 处,普通求导给出
r′(x)=2xsinx1−cos
当 x→0 时,第二项不断振荡,r′(x) 没有极限。因此 r 在 0 可导,r 却在 不连续。后面提到二阶导数或连续可导时,每多加一层,都要重新检查条件。
求导法则是怎样拆出来的
求导法则的作用是避免每次都从零展开差商,但使用它们前最好知道每一条拆开了什么。下文所有结论都是在同一点 c 处说的,且提到的函数都在 c 的某个邻域内有定义。
线性组合
若 f,g 在 c 处可导,α,β∈R,则 αf+βg 也在 处可导,并且
(αf+βg)′(c)=αf′(c)+
原因没有隐藏项:
h(αf+βg)(c+h)−(α
右边两项分别有极限,所以极限的线性法则给出结论。常数函数的导数为 0,常数倍法则和加减法则都是这一式的特殊情况。
乘积法则
设 f,g 都在 c 处可导。我们希望处理
hf(c+h)g(c+h)−f(c)g(c).
分子不能直接分成两个差;关键是有意识地加上再减去 f(c)g(c+h):
=
除以 h 后,
h(fg)(c+h)−(fg)(c
此处不能把 g(c+h) 粗暴换成 g(c),但我们已经证明“可导推出连续”,故 g(c+h)→g(c)。两项取极限后得到
(fg)′(c)=f′(c)g(c)+f(
这也解释了乘积法则为什么有两项:一个因子的变化要乘另一个因子的当前值,两种分配都存在。证明中真正用到的前提是两个函数都可导;其中 g 的可导性同时提供了 g′ 和 g 的连续性。
倒数与商
若 g 在 c 处可导且
g(c)=0,
那么 g 在 c 处连续。因而当 h 足够小时,g(c+h) 仍不为零:例如先让 ∣g(c,就有 。这一步保证倒数在研究点附近真的有定义。
于是
hg(c+h)1
令 h→0,可得
(g1)′(c)=−
再将乘积法则用于 f⋅(1/g),便得到
(gf)′(c)=
分母条件不能只写成“公式里的分母别写零”。它同时保证 f/g 在 c 附近有意义,保证上面的差商可写,也保证极限中的倒数可以取极限。
一个法则计算的检查
考虑
s(x)=x+2x2+1.
在 c=1 处,分母值是 3,所以分母条件成立。分子 u(x)=x2+1 满足 u(1、;分母 满足 、。商法则给出
s′(1)=322⋅3−2⋅1
计算之前先检查 v(1)=0,比把数字代入公式后才发现分母出问题更可靠。
链式法则与不能省掉的漏洞
复合函数 F∘g 表示输入先经过 g,再经过 F。若 g 在 c 处可导,F 在 处可导,并且复合在 附近有定义,则
(F∘g)′(c)=F′(g(c))g
它的直觉很自然:内层每单位输入产生约 g′(c) 单位的中间变量变化,外层每单位中间变量变化产生约 F′(g(c)) 单位的输出变化。不过,直觉里常见的一次“约分”在证明中是非法的。
人们容易写出
x−cF(g(x))−F(g
若某个 x=c 恰好满足 g(x)=g(c),右侧第一分式的分母便是零。比如内层在一小段上取常值时,这种情形会反复出现。一个“多数时候能写”的等式不够证明极限定理;我们要的是每个足够靠近的合法输入都能处理。
用局部误差表示完成证明
令
u0=g(c),A=F′(u0
由 F 在 u0 可导,可以令 u=u0 时的 等于相应差商减去 ,再令 。于是 (当 ),并且
F(u)−F(u0)=(A+E(u))(u−
这里即使 u=u0,右端也是 0;因此可以直接取 u=g(c+h),完全不需要除以 :
F(g(c+h))−F(g(c))=(A+E
对 h=0 除以 h,
hF(g(c+h))−F(g(c))
内层 g 可导,所以它在 c 连续,g(c+h)→u0。于是 E;同时第二个因子趋于 。取极限就得到
(F∘g)′(c)=Ag′(c)=
这个证明也交代了每个条件的工作:外层在 g(c) 可导,给出它的一阶误差表示;内层在 c 可导,既给出自己的差商极限,也保证输入确实送向 g(c)。证明不要求 F′ 在 g(c) 附近连续。
例题:复合时先找中间点
令
H(x)=(x2+1)3.
把 g(x)=x2+1、F(u)=u3,并在 使用链式法则。中间点是 ,因此
F′(g(1))=3⋅22=12,g
故
H′(1)=12⋅2=24.
“外层导数在哪儿取值”是复合求导最容易漏掉的一点;它必须在中间值 g(c) 处取,而不是在原来的 c 处取。
高阶导数与局部线性化的误差
如果 f 在一个开区间 I 的每一点都可导,f′ 就是定义在 I 上的新函数。若 f′ 又在 处可导,称 在 处二阶可导,记作
f′′(c)=(f′)′(c).
递推地,f(0)=f,而 f(n) 是 f 的导数。这里的递推每一步都要求前一阶导数在相关邻域内有定义并可导;它不是“已经能求一次导,所以能无限次求下去”。前面那个 的例子就说明,函数可以处处可导,却没有连续的导函数。
导数最有用的另一种读法是局部线性化。若 f′(c) 存在,定义
Lc(x)=f(c)+f′(c)(x−c).
它是经过 (c,f(c)) 的一次函数。令 x=c+h,前面的局部表示式说明存在余项 R(h),使得
f(c+h)=f(c)+f′(c)h+R(h)
并满足
h→0limhR(h)=0.
也常把最后一句写成 R(h)=o(h)。它说的不是误差只要趋于零就行,而是
∣h∣∣f(c+h)−Lc(c+h)∣
误差相对于输入步长还要更小,这才是“局部像一条直线”的精确含义。反过来,只要某个实数 A 和余项 R(h) 满足
f(c+h)=f(c)+Ah+R(h),h
两边减去 f(c) 再除以 h,就有
hf(c+h)−f(c)=A+h
所以 f′(c)=A。这给出了可导性的等价刻画,也说明一次近似的斜率是唯一的:若 A、B 都有这种表示,将两式相减并除以 h,余项之差趋于 0,从而常数 只能等于 ,故 。
例题:把误差真的算出来
在 c=4 处线性化 f(x)=x。令 ,并限制 以保证根号有意义。因为
f(4)=2,f′(4)=41,
线性部分为
L4(4+h)=2+4h.
余项不是凭感觉写成“很小”。有理化后可直接算出:
R(h)
因此
hR(h)=−4(4+h
例如 h=0.16 时,线性化给出 4.16≈2.04。又因为 ,上式给出
∣R(0.16)∣<640.162=0.0004.
这里误差为负,说明 2.04 是偏大的近似;它还告诉我们偏大不到 0.0004。
可导只保证余项是 o(h),并不自动保证余项是 O(h2)。例如 f(x)= 在 处导数为 ,余项是 ;它除以 趋于零,却除以 发散。要得到二次量级的误差,需要后续关于更高阶导数的额外条件。
自检练习
下面的练习把定义、条件和误差语言放在同一张检查表上。先自己写出差商或检查定理条件,再展开答案。
练习一:从定义得到四次幂的导数
用差商定义证明 f(x)=x4 在任意 c∈R 处可导,并求 f′(c)。
对 h=0,
练习二:连续性并不能修好尖点
设 f(x)=∣x+1∣。证明 f 在 −1 处连续,却不可导。
当 x→−1 时,∣x+1∣→0=f(−1),所以 f 在 − 连续。令 ,则
练习三:商法则前先查分母
求
k′(1),k(x)=x+2x2
在 x=1,分母为 1+2=3=0,并且线性分母在 1 附近不会变成零,所以商法则可用。令 、,则
练习四:链式法则的条件并非必要条件
令 g(x)=x2,F(u)=∣u∣。在 c=0 处, 不在 处可导,但证明 在 处可导,并求导数。这说明什么?
有 g(0)=0,而 F(u)=∣u∣ 在 u=0 不可导。因此链式法则的前提不满足,不能把公式直接代入。
不过复合函数可以先化简:
练习五:验证一个线性化余项
在 c=0 处线性化
f(x)=1+x1.
写出一次近似和余项,并验证余项是 o(h)。
有 f(0)=1,并且
f′(x)=−(1
练习六:端点只能从可用的一边观察
把 f(x)=x2 限制在闭区间 [0,3] 上。求 f+′ 与 ,并说明为什么这两个数不是由区间内的双侧导数定义直接得到的。
在左端点,只能令 h→0+:
f+′(0)
把局部斜率带到下一章
本章建立的核心不是一张求导表。导数是差商的极限;它等价于在一点附近用唯一的一次函数逼近原函数,且误差相对于步长消失。线性、乘积、商和复合法则都来自对差商或局部误差的合法拆分,分母不为零、函数在相应点可导等条件各有具体用途。
但目前的结论仍停留在一点附近:知道 f′(c),我们只知道 c 周围足够小的尺度上怎样近似。下一章要问更强的问题:在闭区间两端量到的平均变化率,能否在某个内部点由导数实现?把这种局部信息推到一整段区间,需要连续性、可导性和上一章的极值结论共同出场。