行莫
行莫
发布于 2025-12-29 / 37 阅读
0
0

方向导数

方向导数

在多元函数中,我们不仅关心函数沿坐标轴方向的变化率(偏导数),还关心函数沿任意方向的变化率。方向导数就是描述函数在某个点沿给定方向的变化率。

为什么需要方向导数?

  • 偏导数只告诉我们沿坐标轴方向的变化
  • 实际应用中,我们可能需要沿任意方向移动
  • 方向导数帮助我们理解函数在任意方向上的变化趋势
  • 梯度下降法等优化算法需要找到最优方向

方向导数的定义

直观理解

想象你在一个三维空间中,站在点 $(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}$ 移动的距离
  • 方向导数表示函数值沿该方向的瞬时变化率

方向导数的含义:

  1. 从点 $(x_0, y_0)$ 出发,沿方向 $\vec{u} = (u_1, u_2)$ 移动距离 $h$
  2. 新位置:$(x_0 + hu_1, y_0 + hu_2)$
  3. 计算函数值的变化:$\Delta z = f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)$
  4. 计算变化率:$\frac{\Delta z}{h} = \frac{f(x_0 + hu_1, y_0 + hu_2) - f(x_0, y_0)}{h}$
  5. 取极限:$\lim_{h \to 0} \frac{\Delta z}{h}$ 得到瞬时变化率

为什么必须是单位向量?
如果 $\vec{u}$ 不是单位向量,方向导数的值会随 $\vec{u}$ 的长度变化,失去“方向”的意义。使用单位向量可以:

  1. 统一比较不同方向的变化率
  2. 使方向导数只依赖于方向,不依赖于向量的长度

与偏导数的关系

偏导数是方向导数的特例:

  • 沿 $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}$$

梯度向量的方向性

  1. 梯度向量是一个向量

    • 梯度向量 $\nabla f = (a, b)$ 不仅包含大小(模长),还包含方向
    • 它的方向是从原点 $(0, 0)$ 指向点 $(a, b)$ 的方向
    • 这个方向就是函数值增长最快的方向
  2. 梯度方向的几何意义

    • 在 $xy$ 平面上,梯度向量 $(a, b)$ 的方向角度为:$\theta = \arctan\left(\frac{b}{a}\right)$
    • 例如:梯度向量 $(2, 2)$ 的方向是 45°(东北方向)
    • 例如:梯度向量 $(2, 0)$ 的方向是 0°(正东方向,沿 $x$ 轴)
  3. 为什么梯度方向很重要?

    • 梯度方向指向函数值增长最快的方向
    • 负梯度方向指向函数值下降最快的方向
    • 这是梯度下降法的理论基础

示例说明

假设在点 $(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),这是下降最快的方向

关键理解总结

  1. 梯度向量是有方向的:$\nabla f = (2, 2)$ 的方向是 45°,指向函数值增长最快的方向

  2. 可以选择任意方向:我们可以选择任意单位方向向量 $\vec{u}$ 来计算方向导数

  3. 方向导数的计算

    • 方法1(直观):沿方向移动单位距离,计算函数值变化量
    • 方法2(公式):$D_{\vec{u}} f = \nabla f \cdot \vec{u}$(梯度向量与方向向量的点积)
  4. 方向导数的意义

    • 正值:沿该方向移动,函数值增加
    • 负值:沿该方向移动,函数值减少
    • 绝对值越大:变化越快
    • 最大正值:梯度方向(增长最快)
    • 最小负值:负梯度方向(下降最快)

方向导数的计算公式推导

推导过程

假设函数 $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$

关键理解

  1. 偏导数是方向导数的特例:偏导数是沿坐标轴方向的方向导数
  2. 方向导数是更一般的概念:可以沿任意方向计算
  3. 几何上统一:都是通过平面切割曲面,得到曲线,再求导数

数学关系

  • 偏导数 $\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}$)


方向导数与梯度下降法的关系

方向导数的理论为梯度下降法提供了数学基础。

关键结论

  1. 梯度方向是函数值增长最快的方向

    • 当方向向量与梯度方向一致时,方向导数最大
    • $D_{\nabla f/|\nabla f|} f = |\nabla f|$
  2. 负梯度方向是函数值下降最快的方向

    • 当方向向量与梯度方向相反时,方向导数最小
    • $D_{-\nabla f/|\nabla f|} f = -|\nabla f|$
  3. 与梯度垂直的方向,方向导数为0

    • 沿这些方向移动,函数值不变

梯度下降法的更新公式

在梯度下降法中,我们使用:

$$x_{new} = x_{old} - \alpha \cdot \nabla f(x_{old})$$

这个公式的含义:

  • 沿负梯度方向(函数值下降最快的方向)移动
  • 移动距离由学习率 $\alpha$ 控制
  • 这样可以最快地减小函数值


评论