方向导数与梯度
偏导数只看两个方向:求 fx 时,只许往东或往西走;求 fy 时,只许往北或往南走。可现实里的路不会这么听话。站在一面山坡上,你可以朝东北斜着走,也可以沿等高线绕行,还可以直接挑最陡的方向往上爬。
问题就在这里:偏导数给了“东—西”和“北—南”两条信息,可平面里有无穷多个方向。我们怎样知道任意方向上的坡度?又怎样从无穷多个方向中找出上升最快的那一个?
上一章的链式法则已经留下了线索。如果一条路径写成 r(t)=(x(t),y(t)),那么沿路径观察到的函数值是 f(r(t))。本章会把路径改成穿过研究点的一条直线,并让人以单位速度沿它走。这样得到的就是方向导数;把所有方向导数组织起来的那个向量,就是梯度。

同一个点没有唯一的“坡度”。方向一变,函数值的瞬时变化率也会跟着变。
这一章真正要建立的不是两条孤立公式,而是一条完整的逻辑链:把方向变成单位向量,把多元函数限制到一条直线上,用链式法则算出变化率,再用点积读出最陡方向、等值线法向和切平面法向。
为什么方向必须先单位化
先不急着求导。假设从点 P=(a,b) 出发,题目让我们“沿向量 v=(3,4) 的方向走”。向量 (3,4) 同时携带了两件事:它朝右上方指,还带着长度 5。
方向导数想测的是“每走一个单位距离,函数值变化多少”。如果直接使用 (3,4),参数增加 1 时,人实际走了 5 个长度单位;算出来的就不再是每单位距离的坡度,而是每单位参数的变化率。不同长度的向量会把同一条路算出不同的答案,这显然不适合比较方向。
所以我们先把长度拿掉,只留下朝向。对任意非零向量
v=(v1,v2)
对应的单位方向向量是
u=∥v∥v=v
三维里完全一样:若 v=(v1,v2,v3),就用 。

归一化不会改变箭头的朝向,只会把它的长度压成 1。
从一点指向另一点时怎么取方向
题目有时不会直接给向量,而是说“在点 P 处,沿着指向点 Q 的方向”。这时先做终点减起点:
PQ=Q−P
再单位化:
u=∥Q−P∥Q−P
顺序不能反。Q−P 指向 Q,而 P−Q 指向相反方向;方向一反,方向导数也会变号。
有些资料把 dtdf(P+tv) 也叫“沿 的方向导数”,即使 不是单位向量。那种定义测的是每单位参数 的变化率。本教程统一把方向导数理解为每单位距离的变化率,所以公式中的 必须是单位向量。
把多元函数压回一条直线
现在站在 P=(a,b),选定单位方向
u=(u1,u2),u12
沿这个方向走距离 s 后,平面位置变成
r(s)=P+su=(a+su1,b+su
这一步很关键。原来 x 和 y 都能自由变化;一旦规定了直线和行走距离 s,它们就都变成了 s 的函数。把路径代进 f:
g(s)=f(a+su1,b+su2)
此时 g 已经是普通的一元函数。于是“从 P 出发沿 u 的瞬时变化率”就是 g′(0)。
方向导数的极限定义
函数 f 在点 P 沿单位方向 u 的方向导数定义为
Duf(P)=s→0lims
写成坐标形式就是
Duf(a,b)=s→0lim
这还是熟悉的差商:分子是函数值变化,分母是实际移动距离。s 可以从正负两侧趋近于 0,所以它同时比较沿 u 和反方向靠近研究点时的局部变化。
若 Duf(P)>0,刚沿 u 出发时函数值上升;若它小于 0,函数值下降;若它等于 0,这个方向上的一阶变化消失。最后一种情况只说明“刚起步时是平的”,不保证沿这条路一直不变。
偏导数其实是两个特殊方向导数
若取
e1=(1,0),e2=(0,1)
定义立刻退回偏导数:
De1f(P)=fx
朝西和朝南则分别得到
D−e1f(P)=−f
所以方向导数不是把偏导数推翻重来,而是把偏导数从坐标轴方向推广到了任意方向。
例题:为什么对角线方向会出现 2
设
f(x,y)=xy
从点 P=(1,1) 沿东北方的 45∘ 方向走,求方向导数。
东北方向可以先写成 (1,1),但它的长度是 2。对应的单位向量为
u=(21,
沿直线走距离 s 后,
x=1+2s,
于是
g(s)=(1+2
所以
Duf(1,1)=g′(0)=2
如果错误地用横坐标增量 Δx 当分母,就会漏掉从 (1,1) 到东北方向一步的真实距离,结果也会少掉单位化带来的比例。
链式法则把定义变成可计算公式
每次都把直线代入再做极限当然可以,但没必要。上一章的链式法则正好能直接求
g(s)=f(a+su1,b+su2)
的导数。因为
dsdx=u1,ds
所以
g′(s)=fx(x(s),y(s))
在 s=0 处,x(0)=a、y(0)=b,于是
Duf(a,b)=fx(a,b)u
这个公式也可以从上一章的线性近似看出来。若沿 u 走一小段 Δs,那么
Δx=u1Δs,Δy=u2Δs
而可微函数的一阶变化满足
Δf=fx(P)Δx+fy(P)Δy
代入后得到
Δf=(fx(P)u1+f
除以 Δs 再取极限,就得到同一个方向导数公式。这里真正起作用的是“函数在这一点可微”,因为可微保证曲面在足够小的尺度上确实能由切平面统一近似。
例题:先归一化,再把链式法则落到数值
设
f(x,y)=x2y+ey
求 f 在点 (1,0) 沿 v=(3,4) 所指方向的方向导数。
先处理方向。因为 ∥v∥=5,所以每单位距离对应的方向向量是 u=(3/5,4/5)。
公式 Duf=fxu1 不能只靠“两个偏导数存在”就放心使用。对多项式、指数函数、三角函数等光滑组合,在定义域内部通常没有问题;遇到分段函数、绝对值、尖点或分母趋于零时,要先检查可微性,必要时回到极限定义。
梯度:把两个偏导数拼成一支有方向的箭头
方向导数公式里,u1,u2 来自我们选择的方向;fx,f 则完全由函数和研究点决定。把后面这一组固定信息收在一起:
∇f(P)=(fx(P),fy(P))
这个向量叫作 f 在 P 处的梯度。于是方向导数可以写成点积:
Duf(P)=∇f(P)⋅u
三变量函数的梯度是
∇f(x,y,z)=(fx,fy,f
一般的 n 变量函数也照这个规律,把全部一阶偏导数组成一个 n 维向量。
这个记号的价值不只是“少写几个字”。点积告诉我们,方向导数就是梯度在所选单位方向上的有向投影。

梯度本身不随你选择的方向改变;你转动 u,读到的是梯度在新方向上的不同投影。
若 θ 是 ∇f(P) 与 u 的夹角,那么
Duf(P)=∇f(P)⋅u=∥∇f(P)∥cosθ
这一个式子把符号、大小和方向全说清楚了:
- 当 0≤θ<90∘ 时,方向导数为正,沿 u 走会上升。
- 当 θ=90∘ 时,方向导数为零,这个方向在一阶近似下是平的。
- 当 时,方向导数为负,沿 走会下降。
在交互图里把 u 转一整圈。梯度没有动,变化的是投影:同向时投影最长且为正,垂直时缩到 0,反向时绝对值再次达到最大,但符号变成负。
梯度与移动速度不要混在一起
若位置按路径 r(t) 运动,速度向量是 v=r′(t)。链式法则给出
dtdf(r(t))=∇f(r(t))⋅v(t)
设速率为 ∥v∥,单位切向量为
T=∥v∥v
那么
dtdf(r(t))=∥v(t)∥DTf
方向导数 DTf 是每单位路程的变化率;df/dt 是每单位时间的变化率。方向相同但速度翻倍,前者不变,后者会翻倍。
最陡上升和最陡下降
现在终于可以回答开头的问题:从一点出发,任意挑一个单位方向,哪里最陡?
由柯西不等式,
Duf(P)=∇f(P)⋅u≤∥∇f(
等号在 u 与梯度同向时成立。因此,当 ∇f(P)=0:
umax=∥∇f(P)∥∇f
反方向给出最小值:
umin=−∥∇f(P)∥∇
说得直白一点,梯度的方向回答“往哪儿最陡”,梯度的长度回答“最陡能有多陡”。负梯度则是最快下降方向。
例题:方向和变化率是两个不同答案
设
f(x,y)=x2+xy+y2
求 f 在 (1,2) 处最快增长的单位方向、最大方向导数,以及最快下降的单位方向。
先求梯度:
∇f=(2x+y,x+2y)所以
梯度为零时,最陡方向去哪儿了
如果
∇f(P)=0
那么对每个单位方向 u,都有
Duf(P)=0
此时所有方向的一阶信息都打成平手,没有唯一的最陡方向。但这不代表函数附近一定是平面。f(x,y)=x2+y2 在原点是谷底,f(x,y) 在原点却是鞍点;两者的梯度都为零。下一章的优化问题会从这里接手:梯度负责筛出候选点,二阶信息和边界分析再判断这些点究竟是什么。
等值线为什么总和梯度垂直
等值线由方程
f(x,y)=c
给出。沿同一条等值线走,无论位置怎样变,函数值始终是常数 c。把等值线局部参数化为
r(t)=(x(t),y(t))
就有
f(r(t))=c
两边对 t 求导,链式法则给出
∇f(r(t))⋅r′(t)=0
r′(t) 是等值线的切向量。它与梯度点积为零,所以只要梯度不为零,梯度就是等值线的法向量。
这件事也可以从方向导数直接读出来:沿等值线走,函数值不变,方向导数为 0;能让梯度投影为 0 的方向,正是与梯度垂直的方向。

等值线记录“数值不变的方向”,梯度记录“数值增加最快的方向”,两者自然垂直。
例题:不用先求切线斜率也能找法向
考虑
f(x,y)=x2+4y2
过点 (2,1) 的等值线满足
x2+4y2=8
梯度为
∇f(x,y)=(2x,8y)
所以在 (2,1) 处,
∇f(2,1)=(4,8)
这已经是等值线的法向量。若要写切线方程,可直接使用“法向量点乘位移为零”:
(4,8)⋅(x−2,y−1)=0
化简得到
x+2y=4
若还想给出一个切向量,可以取与 (4,8) 垂直的 (2,−1),因为
(4,8)⋅(2,−1)=0
等值线的疏密还告诉你梯度大小
相邻两条等值线若相差同样的函数值 Δf,沿法向穿过它们的距离记作 Δs,那么局部坡度大约是
ΔsΔf
等值线挤得越密,Δs 越小,梯度通常越大;等值线越疏,梯度通常越小。这就是地形图上“线密的地方坡陡、线疏的地方坡缓”的微积分解释。
“梯度垂直于等值线”要带着条件使用:研究点处 ∇f=0。梯度为零时,等值线可能缩成一点、发生交叉或出现尖锐结构,此时不能靠零向量指定唯一法向。
从等值线法向走到切平面法向
二维里,f(x,y)=c 是等值线;三维里,
F(x,y,z)=c
是一张等值面。取等值面上的任意曲线 r(t),仍有
F(r(t))=c
求导得到
∇F(r(t))⋅r′(t)=0
等值面上穿过一点的每条曲线,其切向量都落在同一个切平面里。梯度与这些切向量全部垂直,因此 ∇F(P) 是等值面的法向量。
若 P=(x0,y0,z0) 且 ,切平面可以直接写成
∇F(P)⋅(x−x0,y−y0
也就是
Fx(P)(x−x0)+F
显式曲面 z=f(x,y) 的法向量
把图像曲面
z=f(x,y)
移到一边,写成等值面的形式:
G(x,y,z)=f(x,y)−z=0
那么
∇G=(fx,fy,−1)
所以曲面在点 (a,b,f(a,b)) 处的一个法向量是
N=(fx(a,b),fy(a,b),−
相应的切平面为
z−f(a,b)=fx(a,b)(x−a)
这里最容易混淆的是两个“梯度”:∇f=(fx,fy) 活在底面的 xy 平面里,告诉你水平朝哪个方向走时高度增加最快; 活在三维空间里,是曲面和切平面的法向量。它们相关,但不是同一个向量。
例题:球面的切平面
球面
F(x,y,z)=x2+y2+z2
经过点 P=(1,2,3)。先求三维梯度:
∇F=(2x,2y,2z)
在 P 处,
∇F(P)=(2,4,6)
它与半径方向 (1,2,3) 平行,这与球面的几何直觉一致。切平面方程为
2(x−1)+4(y−2)+6(z−3)=0
约去公因子 2,得到
x+2y+3z=14
整个过程不需要先把球面解成 z=f(x,y),也避开了平方根求导。
应用:温度、地形和路径上的读数
梯度并不只属于“山坡”。只要一个标量量随位置变化,就能问它的方向导数。
温度场中的最快升温方向
把 T(x,y) 看成房间地面每一点的温度。∇T(P) 指向升温最快的方向,∥∇T(P)∥ 是每米所能达到的最大升温率;沿等温线走时,方向导数为 0。

温度梯度垂直穿过等温线,并指向数值较高的一侧。
设
T(x,y)=22+0.4x−0.3y+0.02xy
其中 x,y 以米为单位,T 以摄氏度为单位。求在 (5,10) 处沿西北方向移动时的瞬时温度变化率,并求最快升温方向。
先求梯度:
Tx=0.4+0.02y,T
沿一条实际路径移动
若无人机位置为 r(t),空气污染浓度为 C(x,y,z),那么仪器每秒读数的变化率是
dtdC=∇C(r(t))⋅r′(t)
这时负梯度告诉你“每米下降最快”的方向,但无人机的实际读数还受速度影响。想让浓度每秒降得更快,可以改变飞行方向,也可以在同一方向上提高速度。方向导数只负责前者。
几个最容易混淆的地方

函数值回答“现在多高”,梯度回答“附近变化多快”。这是两个不同问题。
函数值大,不等于梯度大
f(P) 是当前位置的数值,∥∇f(P)∥ 是当前位置附近最大的瞬时变化率。高原顶部可以海拔很高却几乎水平;低谷边缘可以数值很低却十分陡峭。
梯度方向不是梯度向量本身
若题目问“最快上升方向”,通常应给单位向量
∥∇f∥∇f
若题目问“最大方向导数”,答案才是数值 ∥∇f∥。直接写 ∇f 虽然给出了朝向,却把方向和变化率揉在了一起。
方向导数为零,不代表一路恒定
对 f(x,y)=x2+y2,原点沿任何方向的方向导数都为零,可一离开原点,函数值就会上升。方向导数只描述研究点处的一阶趋势,不能替代对整条路径的分析。
所有方向导数存在,也未必可微
考虑
f(x,y)=⎩
沿单位方向 u=(u1,u2) 代入 (x,y)=su,可得
Duf(0,0)=u13
每个方向导数都存在,但 u13 不是关于 u 的线性函数,不可能写成某个固定向量与 u 的点积。因此该函数在原点不可微,也不能把 (fx 当作一个统一的一阶近似来预测任意方向。
平面梯度和曲面法向量不是同一支箭头
对 z=f(x,y),∇f=(fx,fy 在 平面里;曲面的法向量可取 。前者说“在底面朝哪儿走最陡”,后者说“在三维空间中哪支箭头垂直于切平面”。维数都不同,不能直接画成同一支箭头。
做题时最常见的三个失误可以连着检查:方向有没有取反,方向向量有没有单位化,最后求的是“方向”还是“方向导数数值”。这三处任何一处含糊,后面的点积即使算对了也可能答非所问。
一套能反复使用的解题顺序
遇到方向导数、最陡方向、等值线法向或切平面题,可以沿同一条主线处理。
先写清研究点 P 和方向来源。若方向来自 P 指向 Q,先算 Q−P;若只给非零向量 v,先确认朝向是否正确。
练习
练习 1:指定方向
设
f(x,y)=x2y+3y2
求 f 在点 (2,−1) 沿 v=(1,2) 所指方向的方向导数,并解释符号。
梯度为
∇f(x,y)=(2xy,x2+6y)在 (2,−1) 处,
练习 2:三维最快增长
设
f(x,y,z)=xy+yz+zx
求 f 在点 (1,2,−1) 处最快增长的单位方向、最大方向导数和最快下降的单位方向。
梯度为
∇f=(y+z,x+z,x+y)代入 (1,2,−1):
练习 3:从一点指向另一点
设
f(x,y)=ln(x2+y2)
求 f 在点 P=(1,1) 沿着指向原点 Q=(0,0) 的方向导数。
先算方向:
Q−P=(−1,−1)对应单位向量为
u=(−
练习 4:等值线的切线
函数
f(x,y)=ex−y
过点 (0,0) 的等值线是哪一条?求该点的一个单位切向量,并核验沿这个方向的方向导数为零。
因为 f(0,0)=1,过原点的等值线满足
ex−y=1也就是 x−y,即直线 。一个单位切向量可取
练习 5:路径速度与方向导数
设
f(x,y)=x2+y2
粒子沿
r(t)=(3t,4t)
运动。求 t=1 时每秒的函数值变化率 df/dt,再求沿路径每单位路程的变化率 df/ds。
在 t=1 时,粒子位于 (3,4),速度为
v=(3,4),∥v∥=5梯度为
练习 6:等值面的切平面
曲面由
F(x,y,z)=x2+2y2+3z
给出。求它在点 (1,1,1) 处的法向量和切平面方程。
先检查点确实在曲面上:1+2+3=6。梯度为
∇F=(2x,4y,6z)在 处,法向量可取
练习 7:零梯度意味着什么
比较
f(x,y)=x2+y2
与
g(x,y)=x2−y2
在原点的梯度和任意方向导数。仅靠这些一阶信息,能否判断原点是哪一类点?
两者的梯度分别为
∇f=(2x,2y),∇g=(2x,−2y)所以在原点都有
收束:梯度是局部变化的总开关
把本章压缩成一句话:在可微点,函数的一阶变化由梯度完全控制。
Δf≈∇f(P)⋅Δr
当 Δr=uΔs 时,它变成方向导数:
Duf(P)=∇f(P)⋅u=∥∇f(P)∥cosθ
同向给出最陡上升,反向给出最陡下降,垂直给出一阶不变;等值线和等值面的切向量恰好属于“垂直”这一类,所以梯度又成了它们的法向量。对显式曲面 z=f(x,y),再把 f(x,y)−z=0 看成等值面,就得到切平面的三维法向量。
下一章开始研究极值时,我们会先解
∇f=0
原因现在已经很清楚:如果一个可微函数在内部点取得局部最大或最小,那么从该点朝任何方向出发,一阶变化都不能偏向上升或下降,梯度只能先归零。只是“归零”还不够,接下来还要看曲面在不同方向上怎样弯。