方向导数与梯度
上一章的链式法则告诉我们:如果沿着一条路径走进函数 f(x,y) 的定义域,函数值会按路径的速度变化。本章把这个想法压缩到一个更局部的问题:站在点 P,如果只迈出很小一步,朝哪个方向函数值升得最快?
偏导数只回答两个固定方向:沿 x 轴怎样变,沿 y 轴怎样变。方向导数把方向改成任意单位向量;梯度则把所有方向的一阶变化集中到一个向量里。学会这两个概念后,等高线、温度场、地形坡度和后面要学的优化条件会连成一条线。

从同一点出发,不同方向的高度变化不同。方向导数测量“沿某个方向的瞬时变化率”。
从偏导数到任意方向
设 z=f(x,y),点 P=(a,b) 在定义域内。偏导数 fx(a,b) 可以看成沿着水平向量 (1,0) 走时的瞬时变化率;fy(a,b) 是沿着 (0,1) 走时的瞬时变化率。
但平面上可走的方向远不止横向和纵向。例如在地形图上,从同一个位置可以向东北、正北、西南或任意角度移动。每个方向都对应一条穿过点 P 的直线:
r(t)=(a,b)+tu
其中 u 是方向向量。把这条直线代入 f,得到一个单变量函数:
g(t)=f((a,b)+tu)
于是沿 u 的变化率就是 g′(0)。这就是方向导数的基本想法:先把多变量函数限制在一条直线上,再使用单变量导数。
方向导数不是新的求导世界,它仍然是在做“差商取极限”。新地方在于,差商里的自变量沿着平面或空间中的指定方向移动。
单位方向向量
方向导数中的方向向量通常必须取单位向量。原因很简单:如果向量长度不同,差商里的 t 就不再表示同样的实际距离,计算出来的变化率会被步长比例放大或缩小。
若给定非零向量 v=(v1,v2),它对应的单位方向向量是
u=∥v∥v=v12+v22(v1,v2)
在三维或更高维空间中也一样:
u=∥v∥v

方向导数只关心方向。先把非零方向向量归一化,才能比较不同方向的变化率。
题目如果给的是 v=(3,4),不要直接把 (3,4) 代入方向导数公式。应先化为单位向量 u=(3/5,4/5)。漏掉这一步,答案通常会差一个 ∥v∥ 倍。
方向导数的定义
函数 f(x,y) 在点 P=(a,b) 沿单位方向 u=(u1,u2) 的方向导数定义为
Duf(a,b)=h→0limhf(a+hu1,b+hu2)−f(a,b)
只要这个极限存在,它就表示从 P 出发沿 u 方向移动时,函数值对距离的瞬时变化率。
如果 Duf(a,b)>0,函数值沿这个方向先增加;如果小于 0,函数值先减少;如果等于 0,这个方向上的一阶变化为零。这里说的是“刚离开点 P 时”的局部行为,不是沿整条射线一直增加或一直减少。
例题:先归一化,再求方向导数
设
f(x,y)=x2y+ey
求 f 在点 (1,0) 沿方向 v=(3,4) 的方向导数。
先把方向向量化为单位向量。因为 ∥v∥=32+42=5,所以方向向量对应的单位向量是 u=(3/5,4/5)。
求偏导数。对 x 求偏导得到 fx(x,y)=2xy;对 y 求偏导得到 fy(x,y)=x2+ey。
在点 (1,0) 代入,得到 fx(1,0)=0,fy(1,0)=2。因此梯度是 ∇f(1,0)=(0,2)。
用点积计算方向导数:
Duf(1,0)=∇f(1,0)⋅u=(0,2)⋅(53,54)=58所以沿 v=(3,4) 指向的方向,函数值的瞬时增加率是 8/5。
梯度把所有偏导数放在一个向量里
如果 f 在点 (a,b) 附近可微,那么方向导数可以由偏导数直接算出:
Duf(a,b)=fx(a,b)u1+fy(a,b)u2
右边正是一个点积。于是我们把偏导数组成的向量叫作梯度:
∇f(a,b)=(fx(a,b),fy(a,b))
方向导数公式可以写成更紧凑的形式:
Duf(a,b)=∇f(a,b)⋅u
三变量函数 f(x,y,z) 的梯度是
∇f(x,y,z)=(fx(x,y,z),fy(x,y,z),fz(x,y,z))
n 个变量时,梯度就是由 n 个一阶偏导数组成的向量。

方向导数是梯度在单位方向上的投影。夹角越小,沿该方向的增加率越大。
在可微点,梯度 ∇f(P) 不是只多存了一组偏导数。它给出一个规则:任意单位方向 u 的方向导数都等于 ∇f(P)⋅u。
这个交互固定了一个梯度向量,让你旋转单位方向 u。当 u 接近梯度方向时,方向导数变大;当 u 与梯度垂直时,方向导数接近 0;当 u 反向时,方向导数变为最负。
最陡上升方向
方向导数公式还有一个直接结论。若 θ 是梯度 ∇f(P) 与单位方向 u 的夹角,则
Duf(P)=∇f(P)⋅u=∥∇f(P)∥cosθ
因为 u 是单位向量,所以 cosθ 的最大值是 1,最小值是 −1。因此:
- 最陡上升方向是梯度方向 ∇f(P)。
- 最大方向导数是 ∥∇f(P)∥。
- 最陡下降方向是 −∇f(P)。
- 最小方向导数是 −∥∇f(P)∥。
如果 ∇f(P)=0,就没有唯一的“梯度方向”。这时所有方向的一阶方向导数都为 0,但函数在该点附近仍可能有极大、极小或鞍点;这些要到下一章用二阶信息判断。
例题:找最快增长方向
设
f(x,y)=x2+xy+y2
求 f 在点 (1,2) 的最快增长方向、最大方向导数和最陡下降方向。
先求梯度。因为 fx=2x+y,fy=x+2y,所以
∇f(1,2)=(2⋅1+2,1+2⋅2)=(4,5)最快增长方向是梯度的单位方向:
∥∇f(1,2)∥∇f(1,2)=42+52(4,5)=(414,415)最大方向导数是梯度长度:
∥∇f(1,2)∥=41最陡下降方向与梯度方向相反:
−∥∇f(1,2)∥∇f(1,2)=(−414,−415)
梯度与等值线垂直
等值线是满足 f(x,y)=c 的点组成的曲线。沿着同一条等值线移动时,函数值保持不变,所以沿等值线切向方向的方向导数应为 0。
设等值线上有一条参数曲线
r(t)=(x(t),y(t))
并且
f(x(t),y(t))=c
对 t 求导,链式法则给出
∇f(r(t))⋅r′(t)=0
这说明梯度与等值线的切向量垂直。只要 ∇f=0,梯度就指向等值线的法向方向,也指向函数值升高最快的一侧。

沿等值线移动时函数值不变,切向方向的方向导数为 0;梯度垂直于等值线。
三维中也有同样的说法。若 F(x,y,z)=c 表示一个等值面,那么 ∇F 垂直于这个等值面。这个事实会在后面处理曲面法向量、约束优化和通量时反复出现。
“梯度垂直于等值线”有一个前提:所在点的梯度不为零。如果梯度为零,等值线可能交叉、尖锐或局部退化,此时不能用一个明确的梯度箭头代表法向方向。
应用:温度场中的最快升温方向
把 T(x,y) 看成房间地面上每一点的温度。若人在点 P 附近移动,方向导数 DuT(P) 表示沿方向 u 走时温度的瞬时变化率。温度梯度 ∇T(P) 指向升温最快的方向,长度表示最大升温率。

温度梯度垂直于等温线,并指向温度升高最快的一侧。
例题:判断移动方向是升温还是降温
某房间地面附近的温度可近似写成
T(x,y)=22+0.4x−0.3y+0.02xy
其中 x,y 的单位是米,T 的单位是摄氏度。求在点 (5,10) 沿西北方向移动时温度的瞬时变化率,并找出最快升温方向。
先求温度梯度:
Tx=0.4+0.02y,Ty=−0.3+0.02x在点 (5,10) 处,
∇T(5,10)=(0.6,−0.2)西北方向可以表示为 v=(−1,1),对应单位方向
u=2(−1,1)计算方向导数:
DuT(5,10)=(0.6,−0.2)⋅2(−1,1)=2−0.8≈−0.57单位是摄氏度每米。负号说明朝西北方向刚开始移动时温度下降。
最快升温方向是梯度方向:
∥∇T(5,10)∥∇T(5,10)=0.62+(−0.2)2(0.6,−0.2)=(103,−101)
常见误区
方向导数和梯度很容易被算成机械公式。真正做题时,下面几个点更容易出错。

函数值高不代表梯度大。梯度描述的是局部变化快慢,不是当前位置的高度。
不要把“函数值大”和“梯度大”混为一谈。f(P) 是点 P 处的高度或数值;∥∇f(P)∥ 是点 P 附近最大的一阶变化率。一个高平台可以很平,一个低洼边缘也可以很陡。
方向向量没有单位化
这是计算题里最常见的错误。方向导数用单位方向向量 u,不是随便给出的非零向量 v。若题目说“沿 (2,−1) 的方向”,应先写
u=5(2,−1)
再计算 ∇f⋅u。
只知道偏导数存在还不够
公式
Duf(P)=∇f(P)⋅u
通常在 f 于 P 可微时使用。偏导数存在,甚至所有方向导数都存在,并不自动保证函数可微。
例如定义
f(x,y)=⎩⎨⎧x2+y2x3,0,(x,y)=(0,0)(x,y)=(0,0)
在原点沿单位方向 u=(u1,u2) 的方向导数是 u13。所有方向导数都存在,但它们不能由某个固定向量与 u 点积得到,因为 u13 不是关于 u 的线性函数。因此这个函数在原点不可微。
在常规教材题中,若函数由多项式、指数、三角函数、对数等光滑函数组合而成,并且点在定义域内部,通常可以直接使用梯度公式。遇到分段函数、尖点、绝对值或分母趋零时,要先检查可微性或直接回到方向导数的极限定义。
解题流程
遇到方向导数和梯度题,可以按下面的顺序处理。
先确认题目给的是二维、三维还是更高维函数,并写出研究点 P。如果题目给出的是方向向量,先判断它是否已经是单位向量。
求梯度 ∇f(P)。对每个变量分别求偏导,再把研究点代入。不要先代点再求偏导,除非题目本来只给出了点附近的一阶近似。
若要求某个方向的方向导数,把方向向量归一化为 u,再计算 ∇f(P)⋅u。
若要求最快增长方向,直接取梯度方向;若要求最大变化率,取梯度长度。若梯度为零,要说明一阶信息不能给出唯一方向。
若题目涉及等值线或等值面,把“沿等值对象移动时函数值不变”翻译为点积为零,从而得到梯度与切向量垂直。
练习
练习 1
设 f(x,y)=x2y+3y2。求 f 在点 (2,−1) 沿方向 v=(1,2) 的方向导数。
先求梯度:
∇f(x,y)=(2xy,x2+6y)在点 (2,−1) 处,
∇f(2,−1)=(−4,−2)方向 v=(1,2) 的单位向量是
u=5(1,2)所以
Duf(2,−1)=(−4,−2)⋅5(1,2)=−58
练习 2
设 f(x,y,z)=xy+yz+zx。求 f 在点 (1,2,−1) 的最快增长方向和最大方向导数。
梯度为
∇f=(y+z,x+z,x+y)代入点 (1,2,−1) 得
∇f(1,2,−1)=(1,0,3)最快增长方向是
10(1,0,3)=(101,0,103)最大方向导数是
10
练习 3
设 f(x,y)=ex−y。在点 (0,0),哪个单位方向能让函数值下降最快?最小方向导数是多少?
先求梯度:
∇f(x,y)=(ex−y,−ex−y)在 (0,0) 处,
∇f(0,0)=(1,−1)下降最快方向与梯度方向相反:
−∥∇f(0,0)∥∇f(0,0)=(−21,21)最小方向导数是
−∥∇f(0,0)∥=−2
练习 4
函数 f(x,y)=x2+4y2 的等值线是一族椭圆。说明在点 (2,1) 处,梯度与等值线切向方向垂直。
梯度为
∇f(x,y)=(2x,8y)所以
∇f(2,1)=(4,8)过点 (2,1) 的等值线满足
x2+4y2=8对这条曲线隐式求导:
2x+8ydxdy=0在 (2,1) 处,切线斜率是
dxdy=−8y2x=−21一个切向量可以取 t=(2,−1)。点积为
(4,8)⋅(2,−1)=8−8=0因此梯度与切向量垂直。
练习 5
设某成本函数在点 P 的梯度为 ∇C(P)=(6,−8)。若生产策略沿单位方向 u=(3/5,4/5) 调整,成本的瞬时变化率是多少?哪个方向能让成本下降最快?
方向导数是
DuC(P)=(6,−8)⋅(53,54)=518−532=−514负号说明沿该方向调整时成本先下降。成本下降最快方向是负梯度方向:
−62+(−8)2(6,−8)=−10(6,−8)=(−53,54)
练习 6
设 f(x,y)=ln(x2+y2)。求 f 在点 (1,1) 沿从 (1,1) 指向原点方向的方向导数。
梯度为
∇f(x,y)=(x2+y22x,x2+y22y)在 (1,1) 处,
∇f(1,1)=(1,1)从 (1,1) 指向原点的方向向量是 (−1,−1),单位方向是
u=(−21,−21)所以
Duf(1,1)=(1,1)⋅(−21,−21)=−2
小结
方向导数把“某一点附近沿指定方向变化多快”写成一个数。梯度把所有一阶偏导数组织成一个向量,并通过点积给出任意单位方向上的方向导数。
本章最重要的几句话可以合在一起看:
Duf(P)=∇f(P)⋅u=∥∇f(P)∥cosθ
梯度方向是最陡上升方向,梯度长度是最大方向导数;负梯度方向是最陡下降方向;在等值线或等值面上,梯度与切向方向垂直。下一章讨论极值时,我们会反复用到这些局部方向信息。