这篇文章为方向导数与梯度的学习笔记,原视频为https://www.bilibili.com/video/BV1vZfKYeEii/
方向导数
定义
学习方向导数我们首先要从偏导数开始。在高数中我们都学习过偏导数。偏导数的几何含义是一个点朝向某一个坐标轴方向的导数。例如对 x x x的偏导数就是一个点在与 x x x轴平行的方向上的导数。几何图像和数学表达式如下:

现在类比偏导数,如果要推到更一般的情况,要的不是沿着坐标轴方向,而是任意方向的导数呢(也就是曲面上某一点沿着任意方向的切线斜率)?这就是要学习的方向导数。
为了给方向导数下一个定义,我们依旧来类比偏导数的定义。偏导数的数学定义为
lim Δ x → 0 f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) Δ x \lim_{\Delta x \to 0}\frac{f(x_0+\Delta x,y_0)-f(x_0,y_0)}{\Delta x} Δx→0limΔxf(x0+Δx,y0)−f(x0,y0)
用大白话来说就是极限情况下沿 x x x轴方向函数值的变化量除自变量的变化量(如果是对 y y y轴的偏导数就是沿 y y y轴方向)。
类比到方向导数中,也是在方向 l l l上极限情况下函数值的变化量除自变量的变化量。

由此我们可以给出方向导数的定义:
定义 :设 l l l 为 x O y xOy xOy 平面上以点 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 以起点的一条射线, e l = ( cos α , cos β ) \boldsymbol{e}_l = (\cos\alpha,\cos\beta) el=(cosα,cosβ) 是与 l l l 同方向的单位向量,射线 l l l 的参数方程为
{ x = x 0 + t cos α , y = y 0 + t cos β , \begin{cases} x = x_0 + t\cos\alpha,\\ y = y_0 + t\cos\beta, \end{cases} {x=x0+tcosα,y=y0+tcosβ,
若极限
lim t → 0 + f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) t \lim_{t\to 0^+}\frac{f\left(x_0 + t\cos\alpha,\,y_0 + t\cos\beta\right)-f\left(x_0,y_0\right)}{t} t→0+limtf(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 l l 方向的方向导数 ,记为
∂ f ∂ l ∣ ( x 0 , y 0 ) \left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)} ∂l∂f (x0,y0)
在这个定义中我们用 t t t表示自变量在 l l l 方向上的变化量, t cos α , t cos β t\cos\alpha, t\cos\beta tcosα,tcosβ分别为 x , y x,y x,y轴上的变化量, f ( x 0 + t cos α , y 0 + t cos β ) f\left(x_0 + t\cos\alpha,\,y_0 + t\cos\beta\right) f(x0+tcosα,y0+tcosβ)就是函数的变化量。对应的几何图像如下:

注 :
(1) 方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 ) \displaystyle\left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)} ∂l∂f (x0,y0) 是函数在 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 处沿指定方向 l l l 的变化率。
(2) 习惯上 l l l 为射线,而非向量,无需写向量符号。
(3)偏导数需要看双侧导数,都存在才能得出偏导数存在。而方向导数只需要看射线 l l l 对应的方向上导数存在即可得到方向导数存在。
定理
定理 :如果函数 f ( x , y ) f(x,y) f(x,y) 在 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 点可微分,那么函数在该点沿任一方向 l l l 的方向导数存在,且有
∂ f ∂ l ∣ ( x 0 , y 0 ) = f x ( x 0 , y 0 ) cos α + f y ( x 0 , y 0 ) cos β \left.\frac{\partial f}{\partial l}\right|_{(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 β \cos\alpha,\cos\beta cosα,cosβ 是 l l l 方向的方向余弦。(二元情况下)
方向余弦部分的知识如下:
方向角
非零向量 a = ( a x , a y , a z ) \boldsymbol{a}=(a_x,a_y,a_z) a=(ax,ay,az) 与 x , y , z x,y,z x,y,z 轴正向的夹角 α , β , γ \alpha,\beta,\gamma α,β,γ,称为向量 a \boldsymbol{a} a 的方向角。

方向余弦
向量 a = ( a x , a y , a z ) \boldsymbol{a}=(a_x,a_y,a_z) a=(ax,ay,az) 的方向余弦为
{ cos α = a x ∣ a ∣ = a x a x 2 + a y 2 + a z 2 cos β = a y ∣ a ∣ = a y a x 2 + a y 2 + a z 2 cos γ = a z ∣ a ∣ = a z a x 2 + a y 2 + a z 2 \begin{cases} \cos\alpha = \dfrac{a_x}{|\boldsymbol{a}|} = \dfrac{a_x}{\sqrt{a_x^2+a_y^2+a_z^2}}\\6pt \cos\beta = \dfrac{a_y}{|\boldsymbol{a}|} = \dfrac{a_y}{\sqrt{a_x^2+a_y^2+a_z^2}}\\6pt \cos\gamma = \dfrac{a_z}{|\boldsymbol{a}|} = \dfrac{a_z}{\sqrt{a_x^2+a_y^2+a_z^2}} \end{cases} ⎩ ⎨ ⎧cosα=∣a∣ax=ax2+ay2+az2 axcosβ=∣a∣ay=ax2+ay2+az2 aycosγ=∣a∣az=ax2+ay2+az2 az
注:
- 向量 e = ( cos α , cos β , cos γ ) \boldsymbol{e}=(\cos\alpha,\cos\beta,\cos\gamma) e=(cosα,cosβ,cosγ) 是与 a \boldsymbol{a} a 同方向的单位向量。
- cos 2 α + cos 2 β + cos 2 γ = 1 \cos^2\alpha + \cos^2\beta + \cos^2\gamma = 1 cos2α+cos2β+cos2γ=1。
定理的证明
函数 f ( x , y ) f(x,y) f(x,y) 在点 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 可微
由可微定义:
Δ z = f ( x 0 + Δ x , y 0 + Δ y ) − f ( x 0 , y 0 ) = f x ′ ( x 0 , y 0 ) Δ x + f y ′ ( x 0 , y 0 ) Δ y + o ( ( Δ x ) 2 + ( Δ y ) 2 ) \begin{align*} \Delta z &= f(x_0+\Delta x,y_0+\Delta y)-f(x_0,y_0) \\ &= f_x'(x_0,y_0)\Delta x + f_y'(x_0,y_0)\Delta y + o\left(\sqrt{(\Delta x)^2+(\Delta y)^2}\right) \end{align*} Δz=f(x0+Δx,y0+Δy)−f(x0,y0)=fx′(x0,y0)Δx+fy′(x0,y0)Δy+o((Δx)2+(Δy)2 )
令 Δ x = t cos α , Δ y = t cos β \Delta x = t\cos\alpha,\ \Delta y = t\cos\beta Δx=tcosα, Δy=tcosβ,其中 t = ( Δ x ) 2 + ( Δ y ) 2 t=\sqrt{(\Delta x)^2+(\Delta y)^2} t=(Δx)2+(Δy)2 。
方向导数定义:
∂ f ∂ l ∣ ( x 0 , y 0 ) = lim t → 0 + f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) t \left.\frac{\partial f}{\partial l}\right|{(x_0,y_0)} =\lim{t\to 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)
代入增量公式:
= lim t → 0 + f x ′ ( x 0 , y 0 ) ⋅ t cos α + f y ′ ( x 0 , y 0 ) ⋅ t cos β + o ( t ) t =\lim_{t\to 0^+}\frac{f_x'(x_0,y_0)\cdot t\cos\alpha + f_y'(x_0,y_0)\cdot t\cos\beta + o(t)}{t} =t→0+limtfx′(x0,y0)⋅tcosα+fy′(x0,y0)⋅tcosβ+o(t)
约去 t t t 取极限:
= f x ′ ( x 0 , y 0 ) cos α + f y ′ ( x 0 , y 0 ) cos β = f_x'(x_0,y_0)\cos\alpha + f_y'(x_0,y_0)\cos\beta =fx′(x0,y0)cosα+fy′(x0,y0)cosβ
梯度
定义
前面关于方向导数的内容中可知方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 ) \displaystyle\left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)} ∂l∂f (x0,y0) 是函数在 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 处沿指定射线方向 l l l 的变化率。
那么从一点出发的射线有无数条,能否全面掌握函数在一点的变化情况呢?比如沿哪个方向变化率最大?最大变化率是多少?因此定义了梯度的概念:
定义 :设函数 f ( x , y ) f(x,y) f(x,y) 在平面区域 D D D 内具有一阶连续偏导数,对于每一点 P 0 ( x 0 , y 0 ) ∈ D P_0(x_0,y_0) \in D P0(x0,y0)∈D,都可以定出一个向量
f x ′ ( x 0 , y 0 ) i + f y ′ ( x 0 , y 0 ) j , f_x'(x_0,y_0)\boldsymbol{i} + f_y'(x_0,y_0)\boldsymbol{j}, fx′(x0,y0)i+fy′(x0,y0)j,
称为 f ( x , y ) f(x,y) f(x,y) 在点 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 的梯度 ,记为 g r a d f ( x 0 , y 0 ) \mathbf{grad}f(x_0,y_0) gradf(x0,y0) 或 ∇ f ( x 0 , y 0 ) \nabla f(x_0,y_0) ∇f(x0,y0),即
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 = ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) \mathbf{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}=\big(f'_x(x_0,y_0),\ f'_y(x_0,y_0)\big) gradf(x0,y0)=∇f(x0,y0)=fx′(x0,y0)i+fy′(x0,y0)j=(fx′(x0,y0), fy′(x0,y0))
注: ( f x ′ ( x 0 , y 0 ) , f y ′ ( x 0 , y 0 ) ) \big(f'_x(x_0,y_0),\ f'_y(x_0,y_0)\big) (fx′(x0,y0), fy′(x0,y0))是表示向量的另一种书写形式。
其中 ∇ = ∂ ∂ x i + ∂ ∂ y j \nabla = \dfrac{\partial}{\partial x}\boldsymbol{i}+\dfrac{\partial}{\partial y}\boldsymbol{j} ∇=∂x∂i+∂y∂j 称为(二维的)向量微分算子或 Nabla 算子,
∇ f = ∂ f ∂ x i + ∂ f ∂ y j . \nabla f = \frac{\partial f}{\partial x}\boldsymbol{i}+\frac{\partial f}{\partial y}\boldsymbol{j}. ∇f=∂x∂fi+∂y∂fj.
同理,三元函数梯度:
g r a d f ( x 0 , y 0 , z 0 ) = ∇ f ( x 0 , y 0 , z 0 ) = f x ′ ( x 0 , y 0 , z 0 ) i + f y ′ ( x 0 , y 0 , z 0 ) j + f z ′ ( x 0 , y 0 , z 0 ) k \mathbf{grad}f(x_0,y_0,z_0)=\nabla f(x_0,y_0,z_0) =f_x'(x_0,y_0,z_0)\boldsymbol{i}+f_y'(x_0,y_0,z_0)\boldsymbol{j}+f_z'(x_0,y_0,z_0)\boldsymbol{k} gradf(x0,y0,z0)=∇f(x0,y0,z0)=fx′(x0,y0,z0)i+fy′(x0,y0,z0)j+fz′(x0,y0,z0)k
从定义可以看出梯度是一个向量,简单来说就是把各个坐标轴的偏导数和向量拼到一起 。
梯度与等位线的关系
将三元函数同一个值连起来的线投影到平面上,即为等位线(类似于地理地图中的等高线)

而梯度就是等位线上点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 的法向量 n \boldsymbol{n} n,且指向 f ( x , y ) f(x,y) f(x,y) 增大的方向(对应上坡的方向)。

那么为什么梯度就是法向量呢?假设有这么一个函数 F ( x , y ) = c F(x,y)=c F(x,y)=c,其图像如下:

如果要求 P 0 P_0 P0点的法向量,我们知道法向量是和切线垂直的,所以先求这个点的切线。根据隐函数求导定理,这个点切线斜率 y ′ ( x ) = − F x ′ F y ′ y'(x) = -\dfrac{F_x'}{F_y'} y′(x)=−Fy′Fx′,对应垂直的法线斜率为 = F y ′ F x ′ =\dfrac{F_y'}{F_x'} =Fx′Fy′
建立个坐标轴并令法向量对应的 x x x轴值为1

则法向量可以表示为 O P 0 → = ( 1 , F y ′ F x ′ ) \overrightarrow{OP_0} = \left(1,\dfrac{F_y'}{F_x'}\right) OP0 =(1,Fx′Fy′),即 n ⃗ = ( F x ′ , F y ′ ) \vec{n}=(F_x',F_y') n =(Fx′,Fy′),而这正好就是梯度的定义形式
方向导数与梯度
如果 f ( x , y ) f(x,y) f(x,y) 在 P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 可微分, e l = ( cos α , cos β ) \boldsymbol e_l=(\cos\alpha,\cos\beta) el=(cosα,cosβ) 是与 l l l 同向的单位向量,那么
∂ f ∂ l ∣ ( x 0 , y 0 ) = 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 0 , y 0 ) ⋅ e l = ∣ ∇ f ( x 0 , y 0 ) ∣ cos ⟨ ∇ f ( x 0 , y 0 ) , e l ⟩ \begin{aligned} \left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)} &= f_x(x_0,y_0)\cos\alpha + f_y(x_0,y_0)\cos\beta \\ &=\big(f_x(x_0,y_0), f_y(x_0,y_0)\big)\cdot \big(\cos\alpha,\cos\beta\big) \\10pt &=\nabla f(x_0,y_0)\cdot \boldsymbol e_l =\big|\nabla f(x_0,y_0)\big|\cos\big\langle\nabla f(x_0,y_0),\boldsymbol e_l\big\rangle \end{aligned} ∂l∂f (x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ=(fx(x0,y0),fy(x0,y0))⋅(cosα,cosβ)=∇f(x0,y0)⋅el= ∇f(x0,y0) cos⟨∇f(x0,y0),el⟩
注:上述计算过程用到了向量的乘积: a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ⋅ ∣ b ⃗ ∣ cos ⟨ a ⃗ , b ⃗ ⟩ \vec a \cdot \vec b = |\vec a|\cdot|\vec b|\cos\langle\vec a,\vec b\rangle a ⋅b =∣a ∣⋅∣b ∣cos⟨a ,b ⟩
可知,当 ⟨ ∇ f ( x 0 , y 0 ) , e l ⟩ = 0 \big\langle\nabla f(x_0,y_0),\boldsymbol e_l\big\rangle=0 ⟨∇f(x0,y0),el⟩=0时,即方向 l l l 与梯度 ∇ f ( x 0 , y 0 ) \nabla f(x_0,y_0) ∇f(x0,y0) 的方向相同时,方向导数 ∂ f ∂ l ∣ ( x 0 , y 0 ) \displaystyle\left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)} ∂l∂f (x0,y0) 最大,
函数 f ( x , y ) f(x,y) f(x,y) 增加最快。这个最大值为梯度 ∇ f ( x 0 , y 0 ) \nabla f(x_0,y_0) ∇f(x0,y0) 的模,即
∂ f ∂ l ∣ ( x 0 , y 0 ) = ∣ ∇ f ( x 0 , y 0 ) ∣ \left.\frac{\partial f}{\partial l}\right|_{(x_0,y_0)}=\big|\nabla f(x_0,y_0)\big| ∂l∂f (x0,y0)= ∇f(x0,y0)
