1. 方向余弦
在二维空间中(X-Y平面),向量 l = ( a , b ) \boldsymbol{l}=(a,b) l=(a,b),这个向量 l \boldsymbol{l} l 与坐标轴x和y的夹角分别为 α \alpha α 和 β \beta β ,如下图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+b2a、 cos β = b a 2 + b 2 \cos\beta=\frac{b}{\sqrt{a^2+b^2}} cosβ=a2+b2b,且 ( 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+b2a,a2+b2b)=(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.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} ∂l∂f∣(x0,y0)=t→0+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)。
所以函数 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} ∂l∂f∣(x0,y0)=t→0+limt△z=t→0+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) ∂l∂f∣(x0,y0)=t→0+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) ∂l∂f∣(x0,y0)=t→0+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 ∂l∂f∣(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*} ∂l∂f∣(x0,y0)====t→0+limtf(x0+tcosα,y0+tcosβ)−f(x0,y0)t→0+limtf(x0+tcosα,y0+tcosβ)−f(x0,y0+tcosβ)+t→0+limtf(x0,y0+tcosβ)−f(x0,y0)(此处,令△x=tcosα,△y=tcosβ,由此可得到:)△x→0+lim△xf(x0+△x,y0+tcosβ)−f(x0,y0+tcosβ)cosα+△y→0+lim△yf(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 ∂l∂f∣(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 的偏导数。
经过我上面的解释,相信大家应该能看懂下面的例题解答。
3.梯度
3.1 梯度定义
梯度是一个向量,它既有大小(其大小为最大的方向导数),也有方向。梯度指向函数增长最快的方向,即梯度的方向就是函数变化率(切线的斜率,偏导数)最大的方向。我在网上找到的梯度的定义如下:
从上面的定义可知:梯度 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} i、j、k 是什么意思。
在三维空间直角坐标系中, i 、 j 、 k \boldsymbol{i}、\boldsymbol{j}、\boldsymbol{k} i、j、k 分别表示与 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} i、j、k)的线性组合来表示。例如:一个向量表示为 A = 2 i + 3 j − k A=2\boldsymbol{i}+3\boldsymbol{j}-\boldsymbol{k} A=2i+3j−k,表明 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+3j−k 看成是从原点 ( 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} i、j、k 的描述,我们应该知道梯度 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:
简单解释一下上面的描述:方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 , z 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,z_0)}=grad f(x_0,y_0) \cdot e_l=|grad f(x_0,y_0)| \cos\theta ∂l∂f∣(x0,y0,z0)=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 都是向量)。我们知道计算向量的点乘有两种方式:
(1)点积表示: 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 a⋅b=a1b1+a2b2+⋯+anbn;
(2)几何表示: a ⋅ b = ∣ a ∣ ⋅ ∣ b ∣ cos θ \boldsymbol{a} \cdot \boldsymbol{b}=|a|\cdot|b|\cos\theta a⋅b=∣a∣⋅∣b∣cosθ。
关于向量的描述可以参考:向量——通俗地解释
基于向量点乘的几何表示法,我们可知: 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)∣⋅∣el∣cosθ,由于 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θ。
- 对了,我再说明一下为什么 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β)。所有上述等式成立。
扩展理解:依然采用下山的例子来解释。我们想要走到山下,道路有千万条,但总有一条可以让我们以最快的速度下山。当然,这里的最快速度仅仅作用在当前的位置点上(局部最优并不是全局最优),也就是说在当前位置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=(∂x∂f,∂y∂f,∂z∂f,…)。
(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=▽f⋅u
以后遇见这些特殊的符号能知道啥意思就行,我觉得反正本质上并没有啥区别,但符号表示就是不一样(吐槽一下:明明很简单、通俗易懂的东西,有时候就非得用一些所谓高大上、装B的数学符号、数学公式来描述、来表示,因为这样才会显得有水平。唉,难搞啊,搞不懂为什么会这样。我只是发个牢骚,简单吐槽一下,没有别的意思。其实既然存在,那么应该有它存在的道理)。
参考文章:
终于理解了方向导数与梯度
如何理解梯度(方向导数的最大值)
方向导数和梯度的直观理解,为什么梯度方向函数变化最快?