方向导数
在多元函数中,我们不仅关心函数沿坐标轴方向的变化率(偏导数),还关心函数沿任意方向的变化率。方向导数就是描述函数在某个点沿给定方向的变化率。
为什么需要方向导数?
- 偏导数只告诉我们沿坐标轴方向的变化
- 实际应用中,我们可能需要沿任意方向移动
- 方向导数帮助我们理解函数在任意方向上的变化趋势
- 梯度下降法等优化算法需要找到最优方向
方向导数的定义
直观理解
想象你在一个三维空间中,站在点 $(x_0, y_0)$ 处,函数值 $z = f(x, y)$ 表示你所在位置的高度。
- 偏导数 $\frac{\partial f}{\partial x}$:如果你只沿 $x$ 轴方向移动,高度的变化率
- 偏导数 $\frac{\partial f}{\partial y}$:如果你只沿 $y$ 轴方向移动,高度的变化率
- 方向导数:如果你沿 $xy$ 平面内的任意方向移动,高度的变化率
数学定义
对于函数 $f(x, y)$ 在点 $(x_0, y_0)$ 处,沿单位向量 $\vec{u} = (u_1, u_2)$ 的方向导数定义为:
$$D_{\vec{u}} f(x_0, y_0) = \lim_{h \to 0} \frac{f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)}{h}$$
关键点:
- $\vec{u} = (u_1, u_2)$ 必须是单位向量,即 $u_1^2 + u_2^2 = 1$
- $h$ 是一个很小的正数,表示沿方向 $\vec{u}$ 移动的距离
- 方向导数表示函数值沿该方向的瞬时变化率
方向导数的含义:
- 从点 $(x_0, y_0)$ 出发,沿方向 $\vec{u} = (u_1, u_2)$ 移动距离 $h$
- 新位置:$(x_0 + hu_1, y_0 + hu_2)$
- 计算函数值的变化:$\Delta z = f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)$
- 计算变化率:$\frac{\Delta z}{h} = \frac{f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)}{h}$
- 取极限:$\lim_{h \to 0} \frac{\Delta z}{h}$ 得到瞬时变化率
为什么必须是单位向量?
如果 $\vec{u}$ 不是单位向量,方向导数的值会随 $\vec{u}$ 的长度变化,失去“方向”的意义。使用单位向量可以:
- 统一比较不同方向的变化率
- 使方向导数只依赖于方向,不依赖于向量的长度
与偏导数的关系
偏导数是方向导数的特例:
-
沿 $x$ 轴正方向:$\vec{u} = (1, 0)$
$$D_{(1,0)} f = \frac{\partial f}{\partial x}$$ -
沿 $y$ 轴正方向:$\vec{u} = (0, 1)$
$$D_{(0,1)} f = \frac{\partial f}{\partial y}$$ -
沿 $x$ 轴负方向:$\vec{u} = (-1, 0)$
$$D_{(-1,0)} f = -\frac{\partial f}{\partial x}$$ -
沿 $y$ 轴负方向:$\vec{u} = (0, -1)$
$$D_{(0,-1)} f = -\frac{\partial f}{\partial y}$$
梯度向量的方向性
-
梯度向量是一个向量
- 梯度向量 $\nabla f = (a, b)$ 不仅包含大小(模长),还包含方向
- 它的方向是从原点 $(0, 0)$ 指向点 $(a, b)$ 的方向
- 这个方向就是函数值增长最快的方向
-
梯度方向的几何意义
- 在 $xy$ 平面上,梯度向量 $(a, b)$ 的方向角度为:$\theta = \arctan\left(\frac{b}{a}\right)$
- 例如:梯度向量 $(2, 2)$ 的方向是 45°(东北方向)
- 例如:梯度向量 $(2, 0)$ 的方向是 0°(正东方向,沿 $x$ 轴)
-
为什么梯度方向很重要?
- 梯度方向指向函数值增长最快的方向
- 负梯度方向指向函数值下降最快的方向
- 这是梯度下降法的理论基础
示例说明
假设在点 $(1, 1)$ 处:
- $\frac{\partial f}{\partial x} = 2$
- $\frac{\partial f}{\partial y} = 2$
则梯度向量为:$\nabla f = (2, 2)$
这个向量 $(2, 2)$ 是有方向的:
- 方向:从原点指向点 $(2, 2)$,即 45° 方向(东北方向)
- 大小:$|\nabla f| = \sqrt{2^2 + 2^2} = 2\sqrt{2} \approx 2.83$
- 单位方向向量:$\frac{(2, 2)}{2\sqrt{2}} = \left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}\right) \approx (0.707, 0.707)$
关键理解:
- 梯度向量 $(2, 2)$ 不是"没有方向的数值组合"
- 它是一个有方向的向量,方向就是 45°(函数值增长最快的方向)
- 我们可以选择任意方向 $\vec{u}$ 来计算方向导数
- 方向导数 = 梯度向量在该方向上的投影 = $\nabla f \cdot \vec{u}$

方向导数的计算思路
方向导数的直观理解
方向导数的核心思想:沿某个方向移动单位距离,看函数值 $z$ 的变化量,这个变化率就是方向导数。
详细计算思路
步骤1:确定观察点和梯度向量
假设在点 $(x_0, y_0) = (1, 1)$ 处:
- 计算偏导数:$\frac{\partial f}{\partial x} = 2$,$\frac{\partial f}{\partial y} = 2$
- 得到梯度向量:$\nabla f = (2, 2)$
重要: 梯度向量 $(2, 2)$ 是有方向的,方向是 45°(函数值增长最快的方向)。
步骤2:选择任意方向
我们可以选择任意方向 $\vec{u} = (u_1, u_2)$,但必须是单位向量(长度为1):
- 例如:$\vec{u} = (1, 0)$(沿 $x$ 轴正方向)
- 例如:$\vec{u} = (0, 1)$(沿 $y$ 轴正方向)
- 例如:$\vec{u} = \left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}\right)$(45°方向,与梯度同向)
- 例如:$\vec{u} = \left(-\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}\right)$(135°方向,与梯度垂直)
步骤3:沿选定方向移动单位距离
沿方向 $\vec{u}$ 移动单位距离($h = 1$),新位置为:
- $x_{new} = x_0 + 1 \cdot u_1 = 1 + u_1$
- $y_{new} = y_0 + 1 \cdot u_2 = 1 + u_2$
步骤4:计算函数值的变化
- 原位置函数值:$f(1, 1) = 1^2 + 1^2 = 2$
- 新位置函数值:$f(1 + u_1, 1 + u_2) = (1 + u_1)^2 + (1 + u_2)^2$
- 函数值变化:$\Delta z = f(1 + u_1, 1 + u_2) - f(1, 1)$
步骤5:计算方向导数(变化率)
方向导数 = 函数值变化量 / 移动距离 = $\frac{\Delta z}{1} = \Delta z$
更精确的定义(使用极限):
$$D_{\vec{u}} f(1, 1) = \lim_{h \to 0} \frac{f(1 + hu_1, 1 + hu_2) - f(1, 1)}{h}$$
当 $h$ 很小时,这个比值就是方向导数。
步骤6:使用梯度向量计算(更简单的方法)
实际上,我们可以直接用梯度向量和方向向量的点积来计算:
$$D_{\vec{u}} f = \nabla f \cdot \vec{u} = (2, 2) \cdot (u_1, u_2) = 2u_1 + 2u_2$$
为什么可以这样计算?
- 梯度向量 $(2, 2)$ 包含了函数在 $x$ 和 $y$ 方向上的变化率
- 方向向量 $(u_1, u_2)$ 表示我们要移动的方向
- 点积 $\nabla f \cdot \vec{u}$ 就是梯度在方向 $\vec{u}$ 上的投影
- 这个投影值就是沿该方向的方向导数
具体计算示例
示例1:沿 $x$ 轴正方向
- 方向向量:$\vec{u} = (1, 0)$
- 方向导数:$D_{\vec{u}} f = (2, 2) \cdot (1, 0) = 2 \times 1 + 2 \times 0 = 2$
- 含义: 沿 $x$ 轴正方向移动单位距离,$z$ 值增加 2
示例2:沿 $y$ 轴正方向
- 方向向量:$\vec{u} = (0, 1)$
- 方向导数:$D_{\vec{u}} f = (2, 2) \cdot (0, 1) = 2 \times 0 + 2 \times 1 = 2$
- 含义: 沿 $y$ 轴正方向移动单位距离,$z$ 值增加 2
示例3:沿梯度方向(45°方向)
- 方向向量:$\vec{u} = \left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}\right) \approx (0.707, 0.707)$
- 方向导数:$D_{\vec{u}} f = (2, 2) \cdot (0.707, 0.707) = 2 \times 0.707 + 2 \times 0.707 = 2\sqrt{2} \approx 2.83$
- 含义: 沿梯度方向移动单位距离,$z$ 值增加最多(2.83),这是增长最快的方向
示例4:沿负梯度方向
- 方向向量:$\vec{u} = \left(-\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}}\right) \approx (-0.707, -0.707)$
- 方向导数:$D_{\vec{u}} f = (2, 2) \cdot (-0.707, -0.707) = -2\sqrt{2} \approx -2.83$
- 含义: 沿负梯度方向移动单位距离,$z$ 值减少最多(-2.83),这是下降最快的方向
关键理解总结
-
梯度向量是有方向的:$\nabla f = (2, 2)$ 的方向是 45°,指向函数值增长最快的方向
-
可以选择任意方向:我们可以选择任意单位方向向量 $\vec{u}$ 来计算方向导数
-
方向导数的计算:
- 方法1(直观):沿方向移动单位距离,计算函数值变化量
- 方法2(公式):$D_{\vec{u}} f = \nabla f \cdot \vec{u}$(梯度向量与方向向量的点积)
-
方向导数的意义:
- 正值:沿该方向移动,函数值增加
- 负值:沿该方向移动,函数值减少
- 绝对值越大:变化越快
- 最大正值:梯度方向(增长最快)
- 最小负值:负梯度方向(下降最快)

方向导数的计算公式推导
推导过程
假设函数 $f(x, y)$ 在点 $(x_0, y_0)$ 处可微,那么:
$$f(x_0 + \Delta x, y_0 + \Delta y) = f(x_0, y_0) + \frac{\partial f}{\partial x}\Delta x + \frac{\partial f}{\partial
y}\Delta y + o(\sqrt{(\Delta x)^2 + (\Delta y)^2})$$
其中 $o(\cdot)$ 表示高阶无穷小。
步骤1:沿方向移动
沿单位方向向量 $\vec{u} = (u_1, u_2)$ 移动距离 $h$,则:
$$\Delta x = hu_1, \quad \Delta y = hu_2$$
步骤2:代入线性近似
$$f(x_0 + hu_1, y_0 + hu_2) = f(x_0, y_0) + \frac{\partial f}{\partial x}hu_1 + \frac{\partial f}{\partial y}hu_2 + o(
h)$$
步骤3:计算方向导数
$$D_{\vec{u}} f(x_0, y_0) = \lim_{h \to 0} \frac{f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)}{h}$$
$$= \lim_{h \to 0} \frac{\frac{\partial f}{\partial x}hu_1 + \frac{\partial f}{\partial y}hu_2 + o(h)}{h}$$
$$= \frac{\partial f}{\partial x}u_1 + \frac{\partial f}{\partial y}u_2 + \lim_{h \to 0} \frac{o(h)}{h}$$
$$= \frac{\partial f}{\partial x}u_1 + \frac{\partial f}{\partial y}u_2$$
步骤4:向量形式
$$D_{\vec{u}} f = \nabla f \cdot \vec{u}$$
其中:
- $\nabla f = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right)$ 是梯度向量
- $\vec{u} = (u_1, u_2)$ 是单位方向向量
- $\cdot$ 表示向量点积
重要结论
方向导数 = 梯度向量 · 方向向量
$$D_{\vec{u}} f = \nabla f \cdot \vec{u} = |\nabla f| \cdot |\vec{u}| \cdot \cos\theta = |\nabla f| \cos\theta$$

其中 $\theta$ 是梯度向量与方向向量的夹角。
$\cos\theta$ 的取值范围是$[-1, 1]$,取值为 0 时夹角为 $\pi/2$,取值为 1 时夹角为 0,取值为 -1 时夹角为 $\pi$。
| 夹角 $\theta$ | $\cos(\theta)$ | 几何意义 |
|---|---|---|
| $0°$ ($\theta = 0$) | $1$ | 两向量同向 |
| $90°$ ($\theta = \pi/2$) | $0$ | 两向量垂直 |
| $180°$ ($\theta = \pi$) | $-1$ | 两向量反向 |
特殊情况:
- $\cos(\theta) = 1$:两向量完全同向
- $\cos(\theta) = 0$:两向量垂直(正交)
- $\cos(\theta) = -1$:两向量完全反向
- $\cos(\theta) > 0$:夹角为锐角($0° < \theta < 90°$)
- $\cos(\theta) < 0$:夹角为钝角($90° < \theta < 180°$)
关键观察:
- 当 $\theta = 0$(方向与梯度同向)时,方向导数最大:$D_{\vec{u}} f = |\nabla f|$
- 当 $\theta = \pi$(方向与梯度反向)时,方向导数最小:$D_{\vec{u}} f = -|\nabla f|$
- 当 $\theta = \frac{\pi}{2}$(方向与梯度垂直)时,方向导数为 0

方向导数的几何理解:平面切割曲面
核心思想
方向导数可以理解为:在任意方向上用平面切割曲面,得到一条曲线,然后求这条曲线在该点的导数。
几何解释
1. 偏导数的几何意义
偏导数 $\frac{\partial f}{\partial x}$:
- 用垂直于 $y$ 轴的平面($y = y_0$,常数)切割曲面 $z = f(x, y)$
- 得到一条曲线:$z = f(x, y_0)$,这是 $x$ 的函数
- 求这条曲线在 $x_0$ 处的导数,就是 $\frac{\partial f}{\partial x}$
偏导数 $\frac{\partial f}{\partial y}$:
- 用垂直于 $x$ 轴的平面($x = x_0$,常数)切割曲面 $z = f(x, y)$
- 得到一条曲线:$z = f(x_0, y)$,这是 $y$ 的函数
- 求这条曲线在 $y_0$ 处的导数,就是 $\frac{\partial f}{\partial y}$
2. 方向导数的几何意义
方向导数 $D_{\vec{u}} f$:
- 用通过方向向量 $\vec{u}$ 且垂直于 $xy$ 平面的平面切割曲面
- 得到一条曲线(沿方向 $\vec{u}$ 的截面曲线)
- 求这条曲线在该点的导数,就是方向导数 $D_{\vec{u}} f$
关键理解
- 偏导数是方向导数的特例:偏导数是沿坐标轴方向的方向导数
- 方向导数是更一般的概念:可以沿任意方向计算
- 几何上统一:都是通过平面切割曲面,得到曲线,再求导数
数学关系
- 偏导数 $\frac{\partial f}{\partial x} = D_{(1,0)} f$(沿 $x$ 轴正方向)
- 偏导数 $\frac{\partial f}{\partial y} = D_{(0,1)} f$(沿 $y$ 轴正方向)
- 方向导数 $D_{\vec{u}} f = \nabla f \cdot \vec{u}$(沿任意方向 $\vec{u}$)

方向导数与梯度下降法的关系
方向导数的理论为梯度下降法提供了数学基础。
关键结论
-
梯度方向是函数值增长最快的方向
- 当方向向量与梯度方向一致时,方向导数最大
- $D_{\nabla f/|\nabla f|} f = |\nabla f|$
-
负梯度方向是函数值下降最快的方向
- 当方向向量与梯度方向相反时,方向导数最小
- $D_{-\nabla f/|\nabla f|} f = -|\nabla f|$
-
与梯度垂直的方向,方向导数为0
- 沿这些方向移动,函数值不变
梯度下降法的更新公式
在梯度下降法中,我们使用:
$$x_{new} = x_{old} - \alpha \cdot \nabla f(x_{old})$$
这个公式的含义:
- 沿负梯度方向(函数值下降最快的方向)移动
- 移动距离由学习率 $\alpha$ 控制
- 这样可以最快地减小函数值
