方向导数和梯度——概念和公式整理

1. 方向余弦

  在二维空间中(X-Y平面),向量 l = ( a , b ) \boldsymbol{l}=(a,b) l=(a,b),这个向量 l \boldsymbol{l} l 与坐标轴x和y的夹角分别为 α \alpha α β \beta β ,如下图1所示。
在这里插入图片描述

图1 方向余弦

其中 α \alpha α β \beta β为向量 l \boldsymbol{l} l 的方向角。向量 l \boldsymbol{l} l 的方向余弦为: cos ⁡ α = a a 2 + b 2 \cos\alpha=\frac{a}{\sqrt{a^2+b^2}} cosα=a2+b2 a cos ⁡ β = b a 2 + b 2 \cos\beta=\frac{b}{\sqrt{a^2+b^2}} cosβ=a2+b2 b,且 ( cos ⁡ α ) 2 + ( cos ⁡ β ) 2 = 1 (\cos\alpha)^2+(\cos\beta)^2=1 (cosα)2+(cosβ)2=1。(方向余弦是该向量 l \boldsymbol{l} l 对应的单位向量的坐标)。假设 l 0 \boldsymbol{l_0} l0 为向量 l \boldsymbol{l} l 对应的单位向量,则
l 0 = ( a a 2 + b 2 , b a 2 + b 2 ) = ( cos ⁡ α , cos ⁡ β ) \boldsymbol{l_0}=(\frac{a}{\sqrt{a^2+b^2}},\frac{b}{\sqrt{a^2+b^2}})=(\cos\alpha,\cos\beta) l0=(a2+b2 a,a2+b2 b)=(cosα,cosβ)
单位向量 l 0 \boldsymbol{l_0} l0的模: ∣ l 0 ∣ = ( cos ⁡ α ) 2 + ( cos ⁡ β ) 2 = 1 |\boldsymbol{l_0}|=\sqrt{(\cos\alpha)^2+(\cos\beta)^2}=1 l0=(cosα)2+(cosβ)2 =1

2. 方向导数

2.1 初识方向导数

  方向导数本质上是一个数值,可理解为一个函数 f ( x , y ) f(x,y) f(x,y)在某个点A( x 0 , y 0 , z 0 x_0,y_0,z_0 x0,y0,z0)处沿指定方向的变化率(切线的斜率,偏导数)。因此,构建方向导数需要两个元素:函数、指定方向(方向向量)。 对于二元函数 f ( x , y ) f(x,y) f(x,y),对 x x x 的偏导数 f x ′ ( x 0 , y 0 ) f^{'}_x (x_0,y_0) fx(x0,y0)指的是:函数 f ( x , y ) f(x,y) f(x,y) 在点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)处沿着 x x x 坐标轴的变化率;对 y y y 的偏导数 f y ′ ( x 0 , y 0 ) f^{'}_y (x_0,y_0) fy(x0,y0)指的是:函数 f ( x , y ) f(x,y) f(x,y) 在点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)处沿着 y y y 坐标轴的变化率。这里的 x x x y y y 坐标轴可看作是方向向量,那么 x x x 坐标轴对应的方向向量可以是 ( 1 , 0 ) (1,0) (1,0) y y y 坐标轴对应的方向向量可以是 ( 0 , 1 ) (0,1) (0,1)

  上面我们也说了,对 x x x, y y y的偏导数其实就是二元函数 f ( x , y ) f(x,y) f(x,y)在某个点( x 0 , y 0 , z 0 x_0,y_0,z_0 x0,y0,z0)处沿着 x x x, y y y坐标轴的变化率。先看下图2,从图2中可知:显然从点 A ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)出发,可不止一个方向,而是360°都有方向,且每个方向都有方向导数。那么可以这样说:方向导数是沿着任意一指定方向的变化率,不一定是沿着 x x x, y y y坐标轴。简而言之,方向导数是沿着各个方向上的导数。当然,与普通函数的导数类似,方向导数也不是百分之百存在,需要函数满足在某点处可微,才能计算出该函数在该点的方向导数。

在这里插入图片描述

图 2 方向导数1

2.2 通俗理解方向导数

  对于这个函数 z = f ( x , y ) z=f(x,y) z=f(x,y),在点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0) 处的方向导数不唯一,沿着不同的方向都可以确定一个方向导数。这就好比我们现在处于山中的某一点,如果我们想下山,道路并不是唯一的,而是可以沿任何方向移动的。区别在于有些方向可以让我们下山的速度更快,有些方向让我们下山的速度更慢,有些方向甚至引导我们往山顶走(也可以理解为下山速度时负的)。这里的"速度的值"就是方向导数的直观理解。
(这一段话来自:终于理解了方向导数与梯度

2.3 和方向导数相关的公式

2.3.1 方向导数的定义公式

  假设向量 l \boldsymbol{l} l单位方向向量 l 0 = ( cos ⁡ α , cos ⁡ β ) \boldsymbol{l_0}=(\cos\alpha,\cos\beta) l0=(cosα,cosβ),若下列极限存在,则该极限称为函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处沿着方向 l \boldsymbol{l} l (也就是沿着向量 l \boldsymbol{l} l的方向) 的方向导数,记作:
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim ⁡ t → 0 + f ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 ) t \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}= \lim_{t \rightarrow 0^+} \frac{f(x_0+t\cos \alpha,y_0+t\cos \beta)-f(x_0,y_0)}{t} lf(x0,y0)=t0+limtf(x0+tcosα,y0+tcosβ)f(x0,y0)

  我们可以结合下图3来理解上面的公式。从图3可以得出:方向向量 l = ( t cos ⁡ α , t cos ⁡ β ) \boldsymbol{l}=(t\cos\alpha,t\cos\beta) l=(tcosα,tcosβ),那么单位方向向量 l 0 = ( cos ⁡ α , cos ⁡ β ) \boldsymbol{l_0}=(\cos\alpha,\cos\beta) l0=(cosα,cosβ);点A坐标 ( x 0 , y 0 ) (x_0,y_0) (x0,y0);点B坐标 ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) (x_0+t\cos\alpha,y_0+t\cos\beta) (x0+tcosα,y0+tcosβ) t t t表示向量 l \boldsymbol{l} l 的模(大小)。自变量 ( x , y ) (x,y) (x,y)从A点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)走到了B点 ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) (x_0+t\cos\alpha,y_0+t\cos\beta) (x0+tcosα,y0+tcosβ),那么因变量 z = f ( x , y ) z=f(x,y) z=f(x,y)也会发生改变,即变化量 △ z = f ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 ) \triangle z=f(x_0+t\cos \alpha,y_0+t\cos \beta)-f(x_0,y_0) z=f(x0+tcosα,y0+tcosβ)f(x0,y0)

在这里插入图片描述

图 3 方向导数2

所以函数 f ( x , y ) f(x,y) f(x,y) 在某点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处沿着方向向量 l \boldsymbol{l} l 的方向导数(变化率)可以写成:
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim ⁡ t → 0 + △ z t = lim ⁡ t → 0 + f ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 ) t \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}= \lim_{t \rightarrow 0^+} \frac{\triangle z}{t}= \lim_{t \rightarrow 0^+} \frac{f(x_0+t\cos \alpha,y_0+t\cos \beta)-f(x_0,y_0)}{t} lf(x0,y0)=t0+limtz=t0+limtf(x0+tcosα,y0+tcosβ)f(x0,y0)

  对于上面的公式,如果 α = 0 , β = 90 ° \alpha=0,\beta=90° α=0,β=90°,那么方向向量 l = ( t , 0 ) \boldsymbol{l}=(t,0) l=(t,0),则方向向量 l \boldsymbol{l} l 平行于 x x x 轴,此时就变成了对 x x x 的偏导数了。如下公式所示:
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim ⁡ t → 0 + f ( x 0 + t , y 0 ) − f ( x 0 , y 0 ) t = f x ′ ( x 0 , y 0 ) \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}= \lim_{t \rightarrow 0^+} \frac{f(x_0+t,y_0)-f(x_0,y_0)}{t}=f^{'}_x(x_0,y_0) lf(x0,y0)=t0+limtf(x0+t,y0)f(x0,y0)=fx(x0,y0)
同理,如果 α = 90 ° , β = 0 \alpha=90°,\beta=0 α=90°,β=0,那么方向向量 l = ( 0 , t ) \boldsymbol{l}=(0,t) l=(0,t),则方向向量 l \boldsymbol{l} l 平行于 y y y 轴,此时就变成了对 y y y 的偏导数了。如下公式所示:
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim ⁡ t → 0 + f ( x 0 , y 0 + t ) − f ( x 0 , y 0 ) t = f y ′ ( x 0 , y 0 ) \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}= \lim_{t \rightarrow 0^+} \frac{f(x_0,y_0+t)-f(x_0,y_0)}{t}=f^{'}_y(x_0,y_0) lf(x0,y0)=t0+limtf(x0,y0+t)f(x0,y0)=fy(x0,y0)

2.3.2 方向导数的计算公式

  如果函数 z = f ( x , y ) z=f(x,y) z=f(x,y) 在点 A ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处可微,则函数 z = f ( x , y ) z=f(x,y) z=f(x,y) 在点 A ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处沿着任意方向的方向导数都存在,且方向导数为:
∂ f ∂ l ∣ ( x 0 , y 0 ) = f x ′ ( x 0 , y 0 ) cos ⁡ α + f y ′ ( x 0 , y 0 ) cos ⁡ β \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}= f^{'}_x(x_0,y_0)\cos\alpha+f_y^{'}(x_0,y_0)\cos\beta lf(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ
其中, cos ⁡ α \cos\alpha cosα cos ⁡ β \cos\beta cosβ 是方向向量 l \boldsymbol{l} l 的方向余弦,或者说 cos ⁡ α \cos\alpha cosα cos ⁡ β \cos\beta cosβ 是单位向量 l 0 = ( cos ⁡ α , cos ⁡ β ) \boldsymbol{l_0}=(\cos\alpha,\cos\beta) l0=(cosα,cosβ) 对应的 x x x y y y的坐标; f x ′ ( x 0 , y 0 ) f^{'}_x(x_0,y_0) fx(x0,y0)是在 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处对 x x x 的偏导数; f y ′ ( x 0 , y 0 ) f^{'}_y(x_0,y_0) fy(x0,y0)是在 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处对 y y y 的偏导数。

  下面我推导一下上面的公式是怎样得到的(下面的推导看不看都行)。
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim ⁡ t → 0 + f ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 ) t = lim ⁡ t → 0 + f ( x 0 + t cos ⁡ α , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 + t cos ⁡ β ) t + lim ⁡ t → 0 + f ( x 0 , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 ) t ( 此处,令 △ x = t cos ⁡ α , △ y = t cos ⁡ β , 由此可得到: ) = lim ⁡ △ x → 0 + f ( x 0 + △ x , y 0 + t cos ⁡ β ) − f ( x 0 , y 0 + t cos ⁡ β ) △ x cos ⁡ α + lim ⁡ △ y → 0 + f ( x 0 , y 0 + △ y ) − f ( x 0 , y 0 ) △ y cos ⁡ β = f x ′ ( x 0 , y 0 ) cos ⁡ α + f y ′ ( x 0 , y 0 ) cos ⁡ β \begin{align*} \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)} =&\lim_{t \rightarrow 0^+} \frac{f(x_0+t\cos \alpha,y_0+t\cos \beta)-f(x_0,y_0)}{t} \\ =&\lim_{t \rightarrow 0^+} \frac{f(x_0+t\cos \alpha,y_0+t\cos \beta)-f(x_0,y_0+t\cos \beta)}{t} \\ & +\lim_{t \rightarrow 0^+} \frac{f(x_0,y_0+t\cos \beta)-f(x_0,y_0)}{t} \\ &(此处,令\triangle x=t\cos \alpha,\triangle y=t\cos \beta,由此可得到:) \\ =&\lim_{\triangle x \rightarrow 0^+} \frac{f(x_0+\triangle x,y_0+t\cos \beta)-f(x_0,y_0+t\cos \beta)}{\triangle x} \cos \alpha \\ & +\lim_{\triangle y \rightarrow 0^+} \frac{f(x_0,y_0+\triangle y)-f(x_0,y_0)}{\triangle y}\cos \beta \\ =& f^{'}_x(x_0,y_0)\cos\alpha+f_y^{'}(x_0,y_0)\cos\beta \end{align*} lf(x0,y0)====t0+limtf(x0+tcosα,y0+tcosβ)f(x0,y0)t0+limtf(x0+tcosα,y0+tcosβ)f(x0,y0+tcosβ)+t0+limtf(x0,y0+tcosβ)f(x0,y0)(此处,令x=tcosα,y=tcosβ,由此可得到:)x0+limxf(x0+x,y0+tcosβ)f(x0,y0+tcosβ)cosα+y0+limyf(x0,y0+y)f(x0,y0)cosβfx(x0,y0)cosα+fy(x0,y0)cosβ

2.3.2 方向导数的例题

  上面讲的都是二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y),对于三元函数 u = f ( x , y , z ) u=f(x,y,z) u=f(x,y,z), 其方向导数公式如下:
∂ f ∂ l ∣ ( x 0 , y 0 , z 0 ) = f x ′ ( x 0 , y 0 , z 0 ) cos ⁡ α + f y ′ ( x 0 , y 0 , z 0 ) cos ⁡ β + f z ′ ( x 0 , y 0 , z 0 ) cos ⁡ γ \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0,z_0)}= f^{'}_x(x_0,y_0,z_0)\cos\alpha+f_y^{'}(x_0,y_0,z_0)\cos\beta+f^{'}_z(x_0,y_0,z_0)\cos\gamma lf(x0,y0,z0)=fx(x0,y0,z0)cosα+fy(x0,y0,z0)cosβ+fz(x0,y0,z0)cosγ

其中, cos ⁡ α \cos\alpha cosα cos ⁡ β \cos\beta cosβ cos ⁡ γ \cos\gamma cosγ 是方向向量 l \boldsymbol{l} l 的方向余弦,或者说 cos ⁡ α \cos\alpha cosα cos ⁡ β \cos\beta cosβ cos ⁡ γ \cos\gamma cosγ 是单位向量 l 0 = ( cos ⁡ α , cos ⁡ β , cos ⁡ γ ) \boldsymbol{l_0}=(\cos\alpha,\cos\beta,\cos\gamma) l0=(cosα,cosβ,cosγ) 对应的 x x x y y y z z z 的坐标; f x ′ ( x 0 , y 0 , z 0 ) f^{'}_x(x_0,y_0,z_0) fx(x0,y0,z0)是在 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0) 处对 x x x 的偏导数; f y ′ ( x 0 , y 0 , z 0 ) f^{'}_y(x_0,y_0,z_0) fy(x0,y0,z0)是在 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0) 处对 y y y 的偏导数; f z ′ ( x 0 , y 0 , z 0 ) f^{'}_z(x_0,y_0,z_0) fz(x0,y0,z0)是在 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0) 处对 z z z 的偏导数。

   经过我上面的解释,相信大家应该能看懂下面的例题解答。

在这里插入图片描述

图 4 例题

3.梯度

3.1 梯度定义

  梯度是一个向量,它既有大小(其大小为最大的方向导数),也有方向。梯度指向函数增长最快的方向,即梯度的方向就是函数变化率(切线的斜率,偏导数)最大的方向。我在网上找到的梯度的定义如下:在这里插入图片描述

图 5 梯度的定义

从上面的定义可知:梯度 g r a d f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = f x ′ ( x 0 , y 0 ) i + f y ′ ( x 0 , y 0 ) j grad f(x_0,y_0)=\nabla f(x_0,y_0)=f^{'}_x(x_0,y_0)\boldsymbol{i}+f^{'}_y(x_0,y_0)\boldsymbol{j} gradf(x0,y0)=f(x0,y0)=fx(x0,y0)i+fy(x0,y0)j。下面简单说一下,在向量表示中经常遇到的 i 、 j 、 k \boldsymbol{i}、\boldsymbol{j}、\boldsymbol{k} ijk 是什么意思。

  在三维空间直角坐标系中, i 、 j 、 k \boldsymbol{i}、\boldsymbol{j}、\boldsymbol{k} ijk 分别表示与 x x x 轴、 y y y 轴、 z z z方向相同的单位向量,是表示空间向量的一组基底,坐标表示为: i = ( 1 , 0 , 0 ) 、 j = ( 0 , 1 , 0 ) 、 k = ( 0 , 0 , 1 ) \boldsymbol{i}=(1,0,0)、\boldsymbol{j}=(0,1,0)、\boldsymbol{k}=(0,0,1) i=(1,0,0)j=(0,1,0)k=(0,0,1)在三维空间中,任何一个向量都可以通过这三个基向量( i 、 j 、 k \boldsymbol{i}、\boldsymbol{j}、\boldsymbol{k} ijk)的线性组合来表示。例如:一个向量表示为 A = 2 i + 3 j − k A=2\boldsymbol{i}+3\boldsymbol{j}-\boldsymbol{k} A=2i+3jk,表明 A A A 向量在 x x x 轴方向上延伸了2个单位;在 y y y 轴方向上延伸了3个单位;在 z z z 轴方向上缩短(负方向)了1个单位。直观理解就是:你可以把向量 A = 2 i + 3 j − k A=2\boldsymbol{i}+3\boldsymbol{j}-\boldsymbol{k} A=2i+3jk 看成是从原点 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 到点 ( 2 , 3 , − 1 ) (2,3,-1) (2,3,1) 的一个箭头(或一个向量),这些系数 ( 2 , 3 , − 1 ) (2,3,-1) (2,3,1) 分别表示该箭头(向量)在三个坐标轴上的投影长度,在对应轴上的投影长度分别是 2、3 和 -1。

  通过上面对 i 、 j 、 k \boldsymbol{i}、\boldsymbol{j}、\boldsymbol{k} ijk 的描述,我们应该知道梯度 g r a d f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) grad f(x_0,y_0)=\nabla f(x_0,y_0) gradf(x0,y0)=f(x0,y0) 表示在 x x x 轴的投影长度为 f x ′ ( x 0 , y 0 ) f^{'}_x(x_0,y_0) fx(x0,y0),在 y y y 轴的投影长度为 f y ′ ( x 0 , y 0 ) f^{'}_y(x_0,y_0) fy(x0,y0)。我们还可以用另外一种方式来表示梯度,即 g r a d f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) ( i , j ) grad f(x_0,y_0)=\nabla f(x_0,y_0)=(f^{'}_x(x_0,y_0),f^{'}_y(x_0,y_0))(\boldsymbol{i},\boldsymbol{j}) gradf(x0,y0)=f(x0,y0)=(fx(x0,y0),fy(x0,y0))(i,j)向量 ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) (f^{'}_x(x_0,y_0),f^{'}_y(x_0,y_0)) (fx(x0,y0),fy(x0,y0))就是函数 f ( x , y ) f(x,y) f(x,y)在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处的梯度 g r a d f ( x 0 , y 0 ) grad f(x_0,y_0) gradf(x0,y0)

  最后总结一下:多元函数 f ( x , y , z , … ) f(x,y,z,\ldots) f(x,y,z,) 在点 ( x 0 , y 0 , z 0 , … ) (x_0,y_0,z_0,\ldots) (x0,y0,z0,)处每个变量方向上的偏导数所组成的向量就是梯度,即 ∇ f ( x 0 , y 0 , z 0 , … ) = ( f x ′ , f y ′ , f z ′ , … ) \nabla f(x_0,y_0,z_0,\ldots) = (f^{'}_x,f^{'}_y,f^{'}_z,\ldots) f(x0,y0,z0,)=(fx,fy,fz,)

3.2 梯度和方向导数的关系

  方向导数是一个标量(数值),描述函数在特定方向上的变化率,是梯度与该单位方向向量的点积(或者说是梯度在单位方向向量上的投影)。函数在某点处的梯度是一个向量,在梯度方向上的方向导数最大,而梯度的模(大小)为方向导数的最大值。梯度的方向就是二元函数 f ( x , y ) f(x,y) f(x,y) 在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处增长最快的方向。二者之间的关系可以参考下图6:
在这里插入图片描述

图 6 梯度和方向导数的区别

(1)先解释一下:为什么 f x ′ ( x 0 , y 0 ) cos ⁡ α + f y ′ ( x 0 , y 0 ) cos ⁡ β = g r a d f ( x 0 , y 0 ) ⋅ e l f^{'}_x(x_0,y_0)\cos\alpha+f_y^{'}(x_0,y_0)\cos\beta=grad f(x_0,y_0)\cdot e_l fx(x0,y0)cosα+fy(x0,y0)cosβ=gradf(x0,y0)el

  这是因为 f x ′ ( x 0 , y 0 ) cos ⁡ α + f y ′ ( x 0 , y 0 ) cos ⁡ β = ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) ⋅ ( cos ⁡ α , cos ⁡ β ) f^{'}_x(x_0,y_0)\cos\alpha+f_y^{'}(x_0,y_0)\cos\beta=(f^{'}_x(x_0,y_0),f_y^{'}(x_0,y_0))\cdot(\cos\alpha,\cos\beta) fx(x0,y0)cosα+fy(x0,y0)cosβ=(fx(x0,y0),fy(x0,y0))(cosα,cosβ),将方向导数的计算转为向量的点积形式。我们从上面可知梯度 g r a d f ( x 0 , y 0 ) = ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) grad f(x_0,y_0)=(f^{'}_x(x_0,y_0),f_y^{'}(x_0,y_0)) gradf(x0,y0)=(fx(x0,y0),fy(x0,y0)) e l = ( cos ⁡ α , cos ⁡ β ) e_l=(\cos\alpha,\cos\beta) el=(cosα,cosβ)。所有上述等式成立。

(2)再解释一下:方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 ) = g r a d f ( x 0 , y 0 ) ⋅ e l = ∣ g r a d f ( x 0 , y 0 ) ∣ cos ⁡ θ \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}=grad f(x_0,y_0) \cdot e_l=|grad f(x_0,y_0)| \cos\theta lf(x0,y0)=gradf(x0,y0)el=gradf(x0,y0)cosθ。即:方向导数是梯度与该单位方向向量的点积(或者说是梯度在单位方向向量上的投影)

  我们知道梯度 g r a d f ( x 0 , y 0 ) grad f(x_0,y_0) gradf(x0,y0) 是一个向量, e l e_l el是单位方向向量。因此方向导数的计算可以转换为两个向量的点乘(点积、内积),计算向量的点乘有两种方式:

  • 点积表示: a ⋅ b = a 1 b 1 + a 2 b 2 + ⋯ + a n b n \boldsymbol{a} \cdot \boldsymbol{b}=a_1b_1+a_2b_2+⋯+a_nb_n ab=a1b1+a2b2++anbn
  • 几何表示: a ⋅ b = ∣ a ∣ ⋅ ∣ b ∣ cos ⁡ θ \boldsymbol{a} \cdot \boldsymbol{b}=|a|\cdot|b|\cos\theta ab=abcosθ
    关于向量的描述可以参考:向量——通俗地解释

  基于向量点乘的几何表示法,我们可知: g r a d f ( x 0 , y 0 ) ⋅ e l = ∣ g r a d f ( x 0 , y 0 ) ∣ ⋅ ∣ e l ∣ cos ⁡ θ grad f(x_0,y_0) \cdot e_l=|grad f(x_0,y_0)| \cdot |e_l| \cos\theta gradf(x0,y0)el=gradf(x0,y0)elcosθ,由于 e l e_l el 是单位向量,所以模 ∣ e l ∣ = 1 |e_l|=1 el=1。进而我们可以得到 g r a d f ( x 0 , y 0 ) ⋅ e l = ∣ g r a d f ( x 0 , y 0 ) ∣ ⋅ cos ⁡ θ grad f(x_0,y_0) \cdot e_l=|grad f(x_0,y_0)| \cdot \cos\theta gradf(x0,y0)el=gradf(x0,y0)cosθ

(3)最后解释一下:梯度方向上的方向导数最大,而梯度的模(大小、值)是方向导数中的最大值
  从下图7我们可以看出:单位方向向量 e l e_l el 指向不同的角度时,向量 e l e_l el 与梯度 g r a d f ( x 0 , y 0 ) grad f(x_0,y_0) gradf(x0,y0)的夹角 θ \theta θ 是不一样的 ,那么 cos ⁡ θ \cos \theta cosθ 的值不同的。从上面可知:方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 ) = g r a d f ( x 0 , y 0 ) ⋅ e l = ∣ g r a d f ( x 0 , y 0 ) ∣ cos ⁡ θ \frac{\partial f}{\partial \boldsymbol{l}} |_{(x_0,y_0)}=grad f(x_0,y_0) \cdot e_l=|grad f(x_0,y_0)| \cos\theta lf(x0,y0)=gradf(x0,y0)el=gradf(x0,y0)cosθ,梯度的模 ∣ g r a d f ( x 0 , y 0 ) ∣ |grad f(x_0,y_0)| gradf(x0,y0)是固定不变的,因此当单位方向向量 e l e_l el 指向不同的角度时,其方向导数是不同的。其中:

  • θ = 0 \theta=0 θ=0时,单位方向向量 e l e_l el与梯度方向处于同一方向,此时方向导数取最大值,且最大值为梯度的模(大小、值)。即:沿着梯度方向上的方向导数最大,而梯度的模(大小、值)是方向导数中的最大值
  • θ = π 2 \theta=\frac{\pi}{2} θ=2π时,单位方向向量 e l e_l el与梯度方向正交(两向量垂直,点积为0),此时方向导数为0;
  • θ = π \theta={\pi} θ=π时,单位方向向量 e l e_l el与梯度方向相反,此时方向导数为最小值。

在这里插入图片描述

图 7 梯度和方向导数的关系

扩展理解:依然采用下山的例子来解释。我们想要走到山下,道路有千万条,但总有一条可以让我们以最快的速度下山。当然,这里的最快速度仅仅作用在当前的位置点上(局部最优并不是全局最优),也就是说在当前位置A我们选择一个方向往山下走,走了一步之后到达了另外一个位置B,然后我们在B位置计算梯度方向,并沿该方向到达位置处c,重复这个过程一直到终点。但是,如果我们把走的每一步连接起来构成下山的完整路线,这条路线可能并不是下山的最快最优路线。

原因是什么?可以用一句古诗来解释:“不识庐山真面目,只缘身在此山中。”因为我们在山上的时候是不知道山的具体形状的,因此无法找到一条全局最优路线。那我们只能关注脚下的路,将每一步走好,这就是梯度下降法的原理。

扩展一下:
(1)对于一个多元函数 f ( x , y , z , … ) f(x,y,z,…) f(x,y,z,),我们通常使用 ▽ f \bigtriangledown f f表示该函数的梯度,包含了函数在每个变量方向上的偏导数。即: ▽ f = ( ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z , … ) \bigtriangledown f=(\frac{\partial f}{\partial \boldsymbol{x}},\frac{\partial f}{\partial \boldsymbol{y}},\frac{\partial f}{\partial \boldsymbol{z}},…) f=(xf,yf,zf,)
(2)对于一个多元函数 f ( x , y , z , … ) f(x,y,z,…) f(x,y,z,)和单位向量 u \boldsymbol{u} u,其在点 P 的方向导数 D u f D_uf Duf 可以表示为
D u f = ▽ f ⋅ u D_uf=\bigtriangledown f \cdot \boldsymbol{u} Duf=fu
以后遇见这些特殊的符号能知道啥意思就行,我觉得反正本质上并没有啥区别,但符号表示就是不一样(吐槽一下:明明很简单、通俗易懂的东西,有时候就非得用一些所谓高大上、装B的数学符号、数学公式来描述、来表示,因为这样才会显得有水平。唉,难搞啊,搞不懂为什么会这样。我只是发个牢骚,简单吐槽一下,没有别的意思。其实既然存在,那么应该有它存在的道理)。

参考文章:

终于理解了方向导数与梯度
如何理解梯度(方向导数的最大值)
方向导数和梯度的直观理解,为什么梯度方向函数变化最快?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值