函数里面套着函数
先给这条法则要对付的对象起个名字。复合函数就是把一个函数作用在另一个函数的输出上——你先做 g,再把它的结果喂进 f。我们写成 f(g(x)),读作「f 在 g 在 x 上」。比如 sin(x^2),就是一个复合:里层是 g(x) = x^2,外层是 f(u) = sin(u)——先把 x 平方,再对那个结果取正弦。认出哪部分是里层、哪部分是外层,几乎就是全部的难处;一旦你看清了,法则差不多自己就写出来了。
环环相扣的变化率
在公式之前,先看图景。想象三个量串成一条链:y 依赖于 u,u 又依赖于 x。假设 u 的变化速度是 x 的 3 倍(x 动 1,u 就动 3),而 y 的变化速度是 u 的 2 倍。那么当 x 移动时,y 变化得有多快?u 每动一个单位 y 就动 2,而 x 每动一个单位 u 就动 3,所以 x 每动一个单位 y 就动 2 乘 3 = 6。这些变化率沿着链条直接相乘。这就是链式法则的全部想法,用齿轮来说:一个小齿轮带动一个大齿轮,把转动传递下去,转速便层层叠乘。
用莱布尼茨记法写出来非常漂亮:若 y = f(u) 且 u = g(x),则 dy/dx = dy/du 乘 du/dx。看上去好像那两个 du「约掉」了,虽然这并不真是把它当分数的把戏,但它确实诚实地反映了底下的极限。用撇号记法,同一句话是 (f(g(x)))' = f'(g(x)) 乘 g'(x)。把它念成一句你永远不会忘的口诀:「外层的导数(里层原封不动)乘以里层的导数。」
三个完整的例子
我们就把那句口诀用在答应过你的三个函数上。每一次都是:剥开外层,对它求导而保持里层不动,再乘上里层的导数。这套套路从不改变。
- (3x+1)^5。 外层是 f(u) = u^5(由幂法则 f'(u) = 5u^4);里层是 g(x) = 3x+1,g'(x) = 3。于是导数为 5(3x+1)^4 乘 3 = 15(3x+1)^4。注意我们把里层 3x+1 原封不动地留在幂里,再补上那个 3。
- sin(x^2)。 外层是 f(u) = sin(u),f'(u) = cos(u);里层是 g(x) = x^2,g'(x) = 2x。于是导数为 cos(x^2) 乘 2x = 2x cos(x^2)。当心:它不是 cos(2x),也不是单单的 cos(x^2)——那个 2x 因子必须在。
- e^{kx},其中 k 是常数。 外层是 f(u) = e^u,f'(u) = e^u;里层是 g(x) = kx,g'(x) = k。于是导数为 e^{kx} 乘 k = k e^{kx}。仅这一个结果就支撑起全部的指数增长与衰减——变化率等于 k 乘当前的量。
h(x) = (3x + 1)^5 outer = u^5 -> 5u^4 (leave u = 3x+1 alone) inner = 3x + 1 -> 3 h'(x) = 5(3x+1)^4 * 3 = 15(3x+1)^4
层层叠用,以及接下来
函数嵌得多深,链式法则就叠得多深。对 sin(e^{3x}) 有三层——sin 套 e 的几次方套 3x——于是你把三个变化率相乘:cos(e^{3x}) 乘 e^{3x} 乘 3。从最外的壳一层层往里剥,每剥一层就把新的里层导数乘上去。链式法则也会和乘积法则、商法则配合使用:要对 x^2 sin(x^3) 求导,先对两个因子用乘积法则,遇到里面的 sin(x^3) 时再动用链式法则。
有了链式法则在手,你现在已经掌握了应付日常函数的完整求导工具箱。接下来我们会反着用它、也会换个面目用它:隐函数求导——链式法则让你不必先解出 y,就能对像 x^2 + y^2 = 1 这样的方程求导;以及相关变化率——两个随时间变化的量,正是被这条「沿链相乘」的想法串在一起。