试着求(2x+3)5的导数。如果把括号里当成只有x,直接套普通幂函数的求导法则,会得到5(2x+3)4。外形看起来没错,却少乘了一个2。括号内的式子变化速度是x的两倍,导数必须包含这个变化。
补上这个因子,就是链式法则的关键。本文用原创例题,从一个内层函数讲到三层嵌套。想先理解导数本身的意义,可以阅读导数入门。这里重点练习辨认层次、逐层求导和检查答案。
先找内层函数和外层函数
复合函数把一个函数的输出送进另一个函数。对y=(2x+3)5,先计算2x+3,再把所得结果取五次方。把内层记作g(x)=2x+3,外层记作f(u)=u5,就有y=f(g(x))。
计算函数值与求导的顺序相反。算值时由内向外;求导时先处理外层运算,让它的输入保持原样,再乘以内层输入的导数。OpenStax的链式法则章节对可导复合函数给出如下公式:
dxdf(g(x))=f′(g(x))g′(x)
外层函数的导数是在g(x)处求值,不是在g′(x)处求值。内层导数是另一个独立因子。如果某一层在相应位置不可导,就不能直接在那里套用此式。
先给各层取名,再选择法则。对于sin(4x2−1),外层是正弦,内层是4x2−1;对于1+x4,外层是平方根,内层是1+x4。而x2+3x的最外层运算是加法,应分别对两项求导。出现括号不一定就要使用链式法则。
如果尚不熟悉“一个函数的输出成为另一个函数的输入”,可先看复合函数讲解,了解求值和定义域。若输入输出的记法也陌生,可以从函数入门开始。
每次都按同样的四步进行
表达式再长,方法也不变:
- 写出紧贴外层的内层表达式。 对h(x)=(3x2−2)4,令u=3x2−2。
- 让u保持原样,对外层求导。 外层是u4,导数为4u3。
- 对内层求导。 此处du/dx=6x。
- 相乘并换回原式。 得到h′(x)=4(3x2−2)3(6x)=24x(3x2−2)3。
除非后续计算需要,否则不要展开四次方。保留因式的答案能看出每一部分的来历:4(3x2−2)3来自外层幂运算,6x来自内层二次式。过早展开,更难发现漏乘的因子。
三层嵌套仍重复同样的动作。先求最外层的导数,乘下一层的导数,再乘最里面一层的导数。OpenStax在同一章节也介绍了链式法则的重复使用,不必另背一条新法则。
三道从头到尾的例题
一次式的幂。 回到p(x)=(2x+3)5。外层导数是5(2x+3)4,内层导数是2,所以:
p′(x)=5(2x+3)4(2)=10(2x+3)4
不要只凭符号答案,取x=0检查。原函数有p(0)=35=243。只展开(3+2x)5的一次项,得到243+5(34)(2x)+⋯=243+810x+⋯,可见零点处斜率为810。我们的导数给出10(3)4=810;漏掉内层因子的式子只给出405,通不过检查。
三角函数的复合。 设q(x)=sin(4x2−1),角度使用弧度。外层正弦求导后是以原来内层式为输入的余弦,内层4x2−1的导数是8x:
q′(x)=cos(4x2−1)(8x)=8xcos(4x2−1)
在x=0处,内层导数为零,因此q′(0)=0。这也符合局部对称性:q(x)取决于x2,在x与−x处的函数值相同。在x=1处斜率为8cos(3),而不是cos(8)。余弦的输入是未经改变的内层表达式,不是它的导数。
三层嵌套。 考虑r(x)=[sin(2x2+1)]3。从外到内分别是三次方、正弦与2x2+1。按这个顺序求导:
r′(x)=3[sin(2x2+1)]2⋅cos(2x2+1)⋅4x=12xsin2(2x2+1)cos(2x2+1).
三个变化相连,所以导数有三个因子。三次方给出3sin2(⋅),正弦给出余弦,二次式给出4x。同样,r′(0)=0,与r(x)为偶函数一致。这不能证明整个导数处处正确,却能迅速发现某些代数错误。
判断何时还需要其他法则
先看表达式的最外层运算。在a(x)=x(2x+3)5中,两个含变量的式子相乘。先用乘积法则,再对幂函数因子使用链式法则:
a′(x)=1⋅(2x+3)5+x⋅5(2x+3)4⋅2=(2x+3)5+10x(2x+3)4=(2x+3)4(12x+3).
相反,b(x)=(2x+3)5的最外层并不是乘积,只用链式法则就得到10(2x+3)4。两式的差别是幂运算外多了因子x,这改变了首先该用的法则。
商也可能掩盖这种选择。把c(x)=1/(2x+3)2改写成(2x+3)−2,就能看出最外层是幂运算:
c′(x)=−2(2x+3)−3(2)=−(2x+3)34,x=−23.
用商法则也能求出答案,但改写后更容易看清复合结构。若分子和分母都依赖x,先在最外层使用商法则,再检查各部分是否要用链式法则。OpenStax的链式法则章节也讲解了这些组合。
纠正三类常见错误
漏乘内层因子。 对(5x−1)4,答案4(5x−1)3漏掉了内层导数5。先写出两部分再相乘:4(5x−1)3×5=20(5x−1)3。
把外层函数的输入换掉。 对cos(x2+2),错误答案−sin(2x)⋅2x把内层导数塞进了正弦。正确答案是−sin(x2+2)⋅2x。求外层导数时,里面仍用原来的表达式,然后再乘内层导数。
丢掉括号。 对(x2+3)3,3x2+32(2x)不是链式法则。整个内层表达式必须保留在平方的括号中:3(x2+3)2(2x)=6x(x2+3)2。写到最后一步之前,都把内层用完整括号括起来。
还可以在简单的点检查原函数与导数。某一个数值吻合,不能证明导数对所有x都正确;但如果不吻合,就能很快排除一个看似合理的错误答案。
三道练习题及完整解答
先自行尝试,再看答案。标出各层,让每一层对应一个因子。
1. 求s(x)=(7−3x)4的导数。外层导数是4(7−3x)3,内层导数是−3,因此:
s′(x)=4(7−3x)3(−3)=−12(7−3x)3.
负号提供了快速检查:在7−3x为正的点附近,增大x会让内层值变小,因此其四次方也变小。
2. 求t(x)=cos(3x2+x)的导数。外层余弦变成负正弦,内层多项式变成6x+1:
t′(x)=−sin(3x2+x)(6x+1).
在x=0处,因为sin(0)=0,所以导数为零。不要误以为内层导数也为零;它此时等于1。分开写两个因子,才能看清乘积为何为零。
3. 求v(x)=(1+sinx)3的导数。外层幂运算给出3(1+sinx)2,内层导数是cosx:
v′(x)=3(1+sinx)2cosx.
内层包含正弦,但最外层运算依然是三次方。按由外到内的顺序处理。在x=0处,导数是3(1)2(1)=3。
熟悉这些题后,可以进入Math Zen的导数练习,其中包含链式法则的专项技能。遇到做错的例题,先回头说清漏了哪个因子,再做下一题。记住这套顺序:找外层运算,保持其输入不变,最后乘以内层输入的导数。
常见问题
链式法则和幂函数求导法则一样吗?
不一样。幂函数法则用于xn。链式法则让它适用于内层表达式的幂:[g(x)]n的导数为n[g(x)]n−1g′(x)。若g(x)=x,它的导数为1,便回到熟悉的幂函数法则。
平方根也能使用链式法则吗?
能。将1+x4写成(1+x4)1/2。外层导数为21(1+x4)−1/2,内层导数为4x3,相乘得到2x3/1+x4。
为什么嵌套函数会产生多个因子?
因为每一层都随着内层的变化而变化。在[sin(2x2+1)]3中,x变化先改变二次式,接着改变正弦值,最后改变三次方的值。三个导数因子分别描述这三个相连的变化。