多变量链式法则:当变化不止一条路
上一章讲线性化时,我们得到了一张很有用的“变化账单”:如果 x 和 y 都只动一点点,那么 z=f(x,y) 的一阶变化约为
Δz≈fxΔx+fyΔy.
现在把问题再往前推一步:x 和 y 自己也不是自由变化的,它们都由时间 t 控制。于是 t 一动,x 和 y 同时动;它们又共同推动 z 变化。我们真正想求的是 dz/dt,但 t 到 z 已经不再只有一条路。
一元复合函数 f(g(t)) 的依赖关系像一条链:t→g→f。多变量复合函数 f(x(t),y(t)) 却会先分叉成 t→x、t→y,最后再汇合到 f。多变量链式法则最容易卡住的地方就在这里:同一个起点可以沿几条路线影响结果,所有路线的贡献都要算进去。

先找依赖关系,再沿每条路径相乘,最后把各条路径相加。
链式法则不是一串需要死记的下标。它只有一个稳定的读法:选定起点变量和目标变量;列出从起点到目标的全部路径;一条路径上的导数相乘,不同路径的贡献相加。
一元的那条链,到了多元会分叉
先写出最常见的结构:
z=f(x,y),x=x(t),y=y(t).
严格一点说,把 x(t)、y(t) 代入后得到的是一个新的单变量函数
Z(t)=f(x(t),y(t)).
我们经常仍把它写成 z,但脑中要分清两层:f 负责把位置 (x,y) 变成函数值,路径 (x(t),y(t)) 负责告诉我们位置怎样随时间移动。
一元的老办法为什么不够?因为 t 增加时,不能只问“x 变了多少”。y 也可能在变。只写
fxdtdx
等于悄悄假设了 dy/dt=0。除非路径真的只沿水平方向走,否则这会漏掉一条变化通道。
多变量链式法则把两个通道都记上:
dtdz=fx(x(t),y(t))dtdx+fy(x(t),y(t))dtdy.
每一项都由两部分组成:
这一方向上函数有多敏感×路径沿这一方向走得多快.
fx、fy 是外层函数的局部敏感度,x′(t)、y′(t) 是内层路径的速度。乘起来后,单位也会自动对齐。比如 fx 的单位是“摄氏度/千米”,x′(t) 的单位是“千米/小时”,乘积就是“摄氏度/小时”。
从上一章的线性化推出来
链式法则和上一章不是两件分开的事。它正是把线性化放到一条运动路径上。
在时刻 t0,令
x0=x(t0),y0=y(t0).
当时间增加 Δt 时,路径产生位移 Δx、Δy。如果 f 在 (x0,y0) 可微,那么
Δz=fx(x0,y0)Δx+fy(x0,y0)Δy+比位移更小的误差.
两边除以 Δt:
ΔtΔz=fx(x0,y0)ΔtΔx+fy(x0,y0)ΔtΔy+Δt误差.
当 Δt→0 时,前两个差商分别趋向 x′(t0)、y′(t0),线性化余下的误差项趋向 0。于是
Z′(t0)=fx(x0,y0)x′(t0)+fy(x0,y0)y′(t0).
用全微分写会更短。上一章给出
dz=fxdx+fydy.
沿路径又有
dx=x′(t)dt,dy=y′(t)dt.
把后两式代入第一式,再除以 dt,就是同一个链式法则。
沿圆形路径计算高度变化
设曲面高度为
z=f(x,y)=x2+3xy−y2,
平面上的运动路径是
x(t)=cost,y(t)=sint.
求 t=π/3 时的 dz/dt。
先找外层函数对两个中间变量的敏感度:
fx=2x+3y,fy=3x−2y.再找路径沿两个坐标方向的速度:
x′(t)=−sint,y′(t)=cost.在 t=π/3 时,
x=21,y=23,x′=−23,y′=21.同一点处的外层偏导数是
fx=1+233,fy=23−3.把两条路径的贡献相加:
dtdz=(1+233)(−23)+(23−3)21=−23−3.结果为负,表示运动点经过这个位置时,曲面高度正在下降。
还可以把 x(t)、y(t) 先代回 z:
z(t)=cos(2t)+23sin(2t).
直接求导得
z′(t)=−2sin(2t)+3cos(2t),
在 t=π/3 代入,同样得到 −3−3/2。直接代入适合拿来验算;链式法则的优势是外层函数复杂、变量很多时仍然能清楚追踪每一条影响路线。
依赖树:先数路径,再写公式
变量一多,最常见的错误通常不是偏导算错,而是还没算就漏了一条路。依赖树能把这个问题变得很具体。
设
z=f(x,y),x=x(u,v),y=y(u,v).
如果要求 ∂z/∂u,从 u 到 z 有两条路径:
u→x→z,u→y→z.
第一条路径给出 fxxu,第二条路径给出 fyyu,所以
∂u∂z=∂x∂f∂u∂x+∂y∂f∂u∂y.
同理,从 v 到 z 也有两条路径:
∂v∂z=∂x∂f∂v∂x+∂y∂f∂v∂y.
这里用偏导符号,是因为 z 现在是 u,v 的函数。求 ∂z/∂u 时,v 被固定;求 ∂z/∂v 时,u 被固定。
依赖树是一种记账方法,不是另一条定理。每条边写一个“上层变量对下层变量的导数”,从起点到终点沿边相乘;能走通的路线有几条,就把几项相加。
两个底层变量共同进入外层函数
设
z=x2y+siny,x=u2+v,y=eu−v2.
求 ∂z/∂u 和 ∂z/∂v。
外层偏导数是
zx=2xy,zy=x2+cosy.内层偏导数是
xu=2u,xv=1,yu=eu,yv=−2v.沿从 u 出发的两条路径相加:
zu=zxxu+zyyu=4uxy+(x2+cosy)eu.沿从 v 出发的两条路径相加:
zv=zxxv+zyyv=2xy−2v(x2+cosy).这里的 x、y 都要在 (u,v) 对应的中间点,也就是 x=u2+v、y=eu−v2 处取值。
目标函数还直接依赖时间
再看一种容易漏项的结构:
T=T(x,y,t),x=x(t),y=y(t).
t 到 T 有三条路:经过 x、经过 y,以及直接进入 T。所以
dtdT=Txdtdx+Tydtdy+Tt.
最后一项不是装饰。假设 T 表示某地的气温,位置改变会让温度改变,昼夜本身也会让温度随时间改变。只计算前两项,就把“人在移动”算进去了,却把“天气本身正在变”漏掉了。
看到 T(x(t),y(t),t) 时,先别急着套两项公式。裸露在外层函数里的 t 也是一条直接路径,它贡献 Tt⋅dt/dt=Tt。
全微分把许多链式法则一次装进去
依赖树适合看路线,全微分适合把同一层的路线一次展开。还是设
z=f(x,y),x=x(u,v),y=y(u,v).
外层函数的全微分是
dz=fxdx+fydy.
两个中间变量的全微分分别是
dx=xudu+xvdv,
dy=yudu+yvdv.
代入并按 du、dv 收集:
dz=fx(xudu+xvdv)+fy(yudu+yvdv)=(fxxu+fyyu)du+(fxxv+fyyv)dv.
而 z=z(u,v) 的全微分也应写成
dz=zudu+zvdv.
比较 du 和 dv 的系数,就同时得到
zu=fxxu+fyyu,zv=fxxv+fyyv.
这个推导揭开了“沿路径相乘、不同路径相加”的来源:代入时发生相乘,收集同一个底层变量的系数时发生相加。
Jacobian 矩阵初识
当输入和输出都不止一个时,一条条写偏导会越来越长。Jacobian 矩阵只是把所有一阶偏导按固定位置排好。
设内层映射
h(u,v)=(x(u,v),y(u,v)),
外层映射
F(x,y)=(p(x,y),q(x,y)).
我们约定“每一行对应一个输出,每一列对应一个输入”,于是
Jh=[xuyuxvyv],JF=[pxqxpyqy].
复合映射的链式法则是
JF∘h(u,v)=JF(h(u,v))Jh(u,v).

映射实际按“内层再外层”作用,导数矩阵写成“外层在左、内层在右”。
为什么外层矩阵在左?因为一个微小输入先经过 Jh 变成中间变化,再经过 JF 变成输出变化。先写内层的微分:
dh=Jhdu.
再让外层作用在这个中间变化上:
d(F∘h)=JFdh=JF(Jhdu)=(JFJh)du.
顺序正好和作用顺序反着写:先作用的矩阵靠近右边的输入向量。
来看一个可以直接验算的例子。设
p=x2+y,q=xy,x=u+v,y=u−v.
两个 Jacobian 分别是
JF=[2xy1x],Jh=[111−1].
相乘得到
JF∘h=[2x+1x+y2x−1y−x].
代回 x=u+v、y=u−v:
JF∘h=[2u+2v+12u2u+2v−1−2v].
直接把复合函数写成
p=(u+v)2+u−v,q=u2−v2,
再分别求偏导,得到的矩阵完全相同。
Jacobian 矩阵和 Jacobian 行列式不是同一个对象。这里的链式法则使用导数矩阵;以后变量代换中计算面积或体积伸缩时,才会对方阵取行列式。
换坐标时,谁被固定必须说清楚
多参数链式法则最常见的用途之一,是把直角坐标换成极坐标:
x=rcosθ,y=rsinθ.
令
F(r,θ)=f(rcosθ,rsinθ).
求 Fr 时,θ 固定,所以
xr=cosθ,yr=sinθ.
链式法则给出
Fr=fxcosθ+fysinθ.
求 Fθ 时,r 固定,所以
xθ=−rsinθ,yθ=rcosθ,
从而
Fθ=−rfxsinθ+rfycosθ.
例如 f(x,y)=x2−y2。直接代入极坐标可得
F(r,θ)=r2cos(2θ).
因此
Fr=2rcos(2θ),Fθ=−2r2sin(2θ).
用链式法则也会得到同样结果。因为 fx=2x、fy=−2y,所以
Fr=2xcosθ−2ysinθ=2r(cos2θ−sin2θ),
Fθ=2x(−rsinθ)−2y(rcosθ)=−4r2sinθcosθ.
这两式分别化简成上面的 2rcos(2θ) 和 −2r2sin(2θ)。
这里真正需要留心的不是三角恒等式,而是“固定谁”。同样写“r 对 x 的变化率”,固定 y 与固定 θ 表示两种不同的移动方式,答案当然可能不同。偏导数不是可以随意约分的普通分数;下标背后藏着一整套固定变量的约定。
不要轻率地写 (∂r/∂x)(∂x/∂r)=1。只有两边描述同一组固定条件、局部逆映射也确实存在时,倒数关系才成立。多变量情形更可靠的做法是写清固定变量,或者使用 Jacobian 矩阵检查整个变换。
隐函数求导:方程不许你随便动
显式函数把关系写成 y=g(x)。但很多曲线更自然地写成
F(x,y)=0.
这时 y 没有被单独解出来,却仍然会随着 x 变化。因为点必须一直留在曲线上,x 一动,y 就得配合着动,好让 F 的值继续保持为 0。
假设曲线上一点 (a,b) 满足
F(a,b)=0,
并且在该点附近确实能把曲线写成 y=y(x)。于是恒等式
F(x,y(x))=0
两边对 x 求导。左边有一条直接经过 x 的路径,还有一条经过 y(x) 的路径:
Fx+Fydxdy=0.
如果 Fy(a,b)=0,就能解出
dxdy=−FyFx.

曲线沿切线方向移动时 F 保持不变,因此切向量 (1,y′) 与 (Fx,Fy) 垂直。
这个公式也能从上一章的全微分读出来。沿 F=0 的曲线移动时,dF=0,所以
dF=Fxdx+Fydy=0.
两边除以 dx,便得到
Fx+Fydxdy=0.
不先解出函数,也能求切线斜率
曲线由
x2+xy+y2=3
给出。求它在 (1,1) 处的切线斜率。
先检查点是否在曲线上:
12+1⋅1+12=3.令 F(x,y)=x2+xy+y2−3。它的偏导数是
Fx=2x+y,Fy=x+2y.在 (1,1) 处,Fx=3、Fy=3。由于 Fy=0,附近可以把 y 看成 x 的函数,并且
y′=−FyFx=−1.切线经过 (1,1),斜率为 −1,所以
y−1=−(x−1),也就是 x+y=2。
分母为零时,公式在提醒你换视角
在圆
x2+y2=25
的点 (5,0) 处,Fy=2y=0,所以 −Fx/Fy 没有意义。这并不表示圆在那里消失了,也不表示曲线不可研究。它表示圆在该点有一条竖直切线,附近不能把 y 写成单值的 y(x)。
这时 Fx=10=0,可以改把 x 看成 y 的函数:
Fxdydx+Fy=0,
所以
dydx=−FxFy=0.
从 x(y) 的视角看,切线不再是“斜率无穷大”,而是普通的水平变化率 dx/dy=0。
再求一次:隐函数的二阶导数
还是圆 x2+y2=25。第一次求导得到
2x+2yy′=0,
也就是
y′=−yx.
再对等式 2x+2yy′=0 求导。这里 yy′ 是两个都依赖 x 的量,要用乘积法则:
2+2(y′)2+2yy′′=0.
因此
y′′=−y1+(y′)2.
代入 y′=−x/y 并利用 x2+y2=25:
y′′=−y3x2+y2=−y325.
在上半圆 y>0 上,y′′<0,这和图像向下弯的形状一致。
三维隐式约束与受约束的偏导
把隐函数关系扩展到三个变量:
F(x,y,z)=0.
如果在某点附近可以把 z 看成 x,y 的函数,即 z=z(x,y),那么
F(x,y,z(x,y))=0.
对 x 求偏导时固定 y:
Fx+Fzzx=0.
对 y 求偏导时固定 x:
Fy+Fzzy=0.
只要 Fz=0,就有
zx=−FzFx,zy=−FzFy.

两个偏导对应切平面内的两条坐标切向量;当 Fz=0 时,它们分别给出 zx=−Fx/Fz 与 zy=−Fy/Fz。
在约束曲面上求两个偏导
设
F(x,y,z)=x2+y2+z2+xyz−8=0.
在 (1,2,1) 附近把 z 看成 x,y 的函数,求 zx、zy。
先检查约束:
12+22+12+1⋅2⋅1−8=0.给定点确实在曲面上。
求三个偏导数:
Fx=2x+yz,Fy=2y+xz,Fz=2z+xy.在 (1,2,1) 处,
Fx=4,Fy=5,Fz=4.因为 Fz=0,局部把 z 看成 x,y 的函数是可行的。
代入公式:
zx=−1,zy=−45.第一式表示固定 y 时,x 每增加一个很小单位,z 的一阶变化约为减少一个单位;第二式的固定条件则是 x 不变。
同一个偏导符号,固定条件不同会得到不同答案
设
h=3x+2y+z,
同时变量被平面约束
z=4x+y.
如果固定 y 改变 x,约束迫使 zx=4。因此
(∂x∂h)y=hx+hz(∂x∂z)y=3+1⋅4=7.
如果固定 z 改变 x,约束式改写成 y=z−4x,所以
(∂x∂y)z=−4.
这时
(∂x∂h)z=hx+hy(∂x∂y)z=3+2(−4)=−5.
如果完全忽略约束,把 y,z 都固定,普通偏导只是 hx=3。三个答案 7、−5、3 并不矛盾,它们回答的是三种不同的移动方式。
相关变化率:先保留变量,再代入时刻
相关变化率题常把链式法则藏在一个实际情境里。半径、高度、距离、体积都随时间变化,但题目只直接给出其中一些变化率,要求我们通过几何关系找另一个变化率。
这类题可以稳定地按四步处理:
先给每个会变化的量命名,并写清正方向。正在缩短的距离,其导数应为负;“靠近速度”若按大小报告,最后再取正值。
写出这些量在同一时刻必须满足的关系式。不要一开始就把某个时刻的数字代进去,否则变量会过早变成常数。
对整个关系式关于时间求导。所有依赖时间的变量都要带出自己的导数。
求导完成后,再代入这一时刻的长度、面积和已知变化率,最后检查单位和正负号。
圆锥同时变高、变宽
一个圆锥的半径 r 和高 h 都随时间变化,体积为
V=31πr2h.
某时刻 r=2 cm、h=6 cm,并且
dtdr=0.3 cm/s,dtdh=0.5 cm/s.
求此时体积的变化率。
r 和 h 都是 t 的函数。对体积公式求导时,r2h 要使用乘积法则:
dtdV=31π(2rhdtdr+r2dtdh).求导之后再代入这一时刻的数据:
dtdV=31π(2⋅2⋅6⋅0.3+22⋅0.5).两条变化通道分别贡献 7.2 和 2,所以
dtdV=39.2π=1546π cm3/s.半径变化的影响更大,是因为体积对半径的敏感度含有因子 2rh。
若先把 r=2、h=6 代进 V=πr2h/3,右边会变成一个常数,再求导只能得到错误的 0。相关变化率题必须先对变量关系求导,之后才代入某个时刻的数据。
链式法则已经把梯度露出来了
设平面路径写成向量
r(t)=(x(t),y(t)),
它的速度是
r′(t)=(x′(t),y′(t)).
链式法则可以重新排成
dtdf(r(t))=(fx,fy)⋅(x′(t),y′(t)).
把偏导数组成的向量记作
∇f=(fx,fy),
就得到
dtdf(r(t))=∇f(r(t))⋅r′(t).
这句话很有画面感:函数在路径上的变化率,等于“函数最想怎样变化”和“路径实际怎样移动”的配合程度。
如果路径以单位速度沿固定单位向量 u 经过点 P,可以写成
r(t)=P+tu.
在 t=0 时,链式法则变成
dtdf(P+tu)t=0=∇f(P)⋅u.
左边就是下一章要研究的方向导数。于是方向导数并不是突然出现的新公式,它是链式法则在“沿指定方向、以单位速度走直线”这个特殊情形下的结果;梯度则是把所有坐标方向的偏导数装进一个向量,让它可以和任意方向做点积。
常见误区与自检方法

三类高频错误背后是同一个问题:没有把依赖关系和固定条件写清楚。
漏掉一条路径
在 z=f(x(u,v),y(u,v)) 中,u 同时通过 x、y 影响 z。只写 zxxu,等于断言 yu=0。除非题目真的给出这个条件,否则必须把 zyyu 加上。
外层偏导没有在中间点取值
fx、fy 是关于 x,y 的函数。写完链式法则后,它们应在
(x,y)=(x(u,v),y(u,v))
处取值。把 u,v 直接塞进只接受 x,y 的偏导函数,变量层次就混了。
把偏导和全导混用
fx 研究的是固定其他独立变量、只改变 x 的变化率;df/dt 研究的是沿一条路径,所有依赖 t 的量一起改变时的总变化率。符号不是排版差异,它在说明哪些量能动。
把微分符号当普通分数随意约掉
一元链式法则偶尔看起来像“约掉了 dy”,但多变量里同一个起点可能分叉。只沿一条路约分,会把其他路径完全抹掉。依赖树或全微分比形式上的约分可靠得多。
Jacobian 乘法顺序写反
若 u 先经过 h,再经过 F,导数矩阵是
JF∘h=JFJh.
先检查尺寸:外层输出数乘外层输入数,接上内层输出数乘内层输入数。中间维度必须相同。
隐函数求导不检查分母
dy/dx=−Fx/Fy 需要 Fy=0,还要先确认所讨论的点满足 F(x,y)=0。若 Fy=0,先看能否换成 x=x(y),不要把除以零硬算下去。
相关变化率过早代数值
先代入某个时刻的长度,会把正在变化的量冻结成常数。正确顺序是“变量关系—对时间求导—代入瞬时数据—检查单位”。
每道题都可以用四问自检:目标变量是谁?对谁求导?从起点到目标有几条路?求偏导时谁被固定?这四个问题清楚以后,公式通常已经写对了一大半。
练习
沿一条参数路径求变化率
设 z=x2+y2,x=t2,y=sint。求 dz/dt。
两条路径分别经过 x 和 y:
dtdz=2xdtdx+2ydtdy.代入 x=t2、x′=2t、y=sint、y′=cost:
dtdz=4t3+2sintcost=4t3+sin(2t).
对两个底层变量分别求偏导
设 w=exy,x=u+v,y=u−v。求 wu 和 wv。
先算外层偏导:
wx=yexy,wy=xexy.对于 u,有 xu=1、yu=1,所以
wu=(x+y)exy=2ueu2−v2.对于 v,有 xv=1、yv=−1,所以
wv=(y−x)exy=−2veu2−v2.
别漏掉直接进入外层的时间
设
T(x,y,t)=x2+xy+t2,x=t,y=t2.
求 dT/dt。
这里 t 经过 x、经过 y,还直接进入 T:
dtdT=Txx′+Tyy′+Tt.因为
Tx=2x+y,Ty=x,Tt=2t,所以
dtdT=(2t+t2)⋅1+t⋅2t+2t=4t+3t2.直接代入也可验算:T(t)=2t2+t3,导数同样是 4t+3t2。
极坐标中的两种偏导
设 f(x,y)=xy,x=rcosθ,y=rsinθ。求 Fr 和 Fθ,其中 F(r,θ)=f(rcosθ,rsinθ)。
fx=y、fy=x。固定 θ 求 r 偏导:
Fr=fxcosθ+fysinθ=2rsinθcosθ=rsin(2θ).固定 r 求 θ 偏导:
Fθ=fx(−rsinθ)+fy(rcosθ)=r2(cos2θ−sin2θ)=r2cos(2θ).
用 Jacobian 乘法一次计算四个偏导
设
h(u,v)=(u2,u+v),F(x,y)=(x+y,xy).
求 JF∘h。
先写两个 Jacobian:
Jh=[2u101],JF=[1y1x].按“外层在左、内层在右”相乘:
JF∘h=[2u+12uy+x1x].代回 x=u2、y=u+v:
JF∘h=[2u+13u2+2uv1u2].
隐式曲线上的切线斜率
曲线由
x2+xy+y2=7
给出。求它在 (1,2) 处的 dy/dx。
点满足 1+2+4=7。令 F=x2+xy+y2−7,则
Fx=2x+y,Fy=x+2y.在 (1,2) 处,Fx=4、Fy=5=0,所以
dxdy=−FyFx=−54.
隐函数的二阶导数
在圆 x2+y2=25 上,求点 (3,4) 处的 y′ 和 y′′。
第一次求导:
2x+2yy′=0,所以
y′=−yx=−43.第二次求导:
2+2(y′)2+2yy′′=0.因此
y′′=−y1+(y′)2=−41+9/16=−6425.
三维约束中的两个偏导
设 x2+y2+z2=9,在点 (1,2,2) 附近把 z 看成 x,y 的函数。求 zx、zy。
令
F=x2+y2+z2−9.在 (1,2,2) 处,
Fx=2,Fy=4,Fz=4=0.所以
zx=−FzFx=−21,zy=−FzFy=−1.
比较不同固定条件
设 h=3x+2y+z,并有约束 z=4x+y。求 (∂h/∂x)y 与 (∂h/∂x)z。
固定 y 时,zx=4,所以
(∂x∂h)y=hx+hzzx=3+4=7.固定 z 时,由 y=z−4x 得 yx=−4,所以
(∂x∂h)z=hx+hyyx=3+2(−4)=−5.
圆锥的相关变化率
圆锥体积 V=πr2h/3。某时刻 r=4 cm、h=9 cm,且 dr/dt=−0.2 cm/s、dh/dt=0.6 cm/s。求 dV/dt。
先求导:
dtdV=31π(2rhdtdr+r2dtdh).再代入数据:
dtdV=31π(2⋅4⋅9⋅(−0.2)+42⋅0.6).括号内为 −14.4+9.6=−4.8,所以
dtdV=−1.6π cm3/s.虽然高度在增加,半径缩小造成的负贡献更大,所以总体积正在减小。
竖直切线处该怎样换视角
设 F(x,y)=0,某点满足 Fy=0、Fx=0。为什么不能使用 dy/dx=−Fx/Fy?如果附近可以把 x 看成 y 的函数,应改用什么公式?
因为 Fy=0,公式 −Fx/Fy 会除以零。这通常对应于从 y=y(x) 的视角看出现竖直切线,附近无法把曲线写成单值的 y(x)。
若 Fx=0,可以改把 x 看成 y 的函数。对 F(x(y),y)=0 关于 y 求导:
Fxdydx+Fy=0.因此
dydx=−FxFy.