高维曲面: 方向导数, 梯度, 切平面, 法向量

多个变量的函数

  1. 比如, w = f ( x , y ) w=f(x,y) w=f(x,y)是三维空间中的曲面, w = f ( x , y , z ) w=f(x,y,z) w=f(x,y,z)是四维空间中的曲面.
  2. 对于定义域是平面的函数 f ( x , y ) f(x,y) f(x,y), 我们定义 等高线(level curve, contour curve) f ( x , y ) = k f(x,y)=k f(x,y)=k 为二维曲线, 可以由 w = k w=k w=k 得到, 其中 k k k 是一个常数.
  3. 对于定义域是三维的函数 f ( x , y , z ) f(x,y,z) f(x,y,z), 我们相应的可以定义 等高面(level surfaces) f ( x , y , z ) = k f(x,y,z)=k f(x,y,z)=k.
  4. 等高线是 z = f ( x , y ) z=f(x,y) z=f(x,y) z = k z=k z=k两个曲面的交叉, 另一个定义traces是 z = f ( x , y ) z=f(x,y) z=f(x,y) x = k x=k x=k y = k y=k y=k的交叉.

See https://tutorial.math.lamar.edu/classes/calciii/MultiVrbleFcns.aspx#LevelCurve example 4 for more visual illustrations.

偏导数

偏导数的定义很简单,比如说对于一个函数 f ( x 1 , x 2 , . . . , x n ) f(x_1,x_2,...,x_n) f(x1,x2,...,xn), f f f x i x_i xi 的偏导即为
∂ f ∂ x i = lim ⁡ α → 0 f ( x 1 , x 2 , . . . , x i + α , . . . , x n ) − f ( x 1 , x 2 , . . . , x n ) α \frac{\partial f}{\partial x_i}=\lim_{\alpha\rightarrow 0}\frac{f(x_1,x_2, ..., x_i+\alpha,...,x_n)-f(x_1,x_2,...,x_n)}{\alpha} xif=α0limαf(x1,x2,...,xi+α,...,xn)f(x1,x2,...,xn)
即,当沿着 [ 0 , . . . , α , . . . , 0 ] [0,...,\alpha,...,0] [0,...,α,...,0]的方向移动时, f f f的变化快慢. 注意对于偏导数而言, 方向固定为 [ 0 , . . . , α , . . . , 0 ] [0,...,\alpha,...,0] [0,...,α,...,0]这是在 R n \mathbb{R}^n Rn中移动的. 如果 n = 2 n=2 n=2,那实际上方向是二维的,就只在水平面上移动, 这个偏导数的大小就是沿着给定方向变化的快慢.

方向导数

那么如果我们想看 f f f沿着 R n \mathbb{R}^n Rn任一方向的变化快慢 (而不仅仅是bases的方向), 就得用到方向导数了. 定义如下:

f ( x 1 , x 2 , . . . , x n ) f(x_1,x_2,...,x_n) f(x1,x2,...,xn) 沿着方向 t = ( t 1 , t 2 , . . . , t n ) ⊤ \bm{t}=(t_1,t_2,...,t_n)^\top t=(t1,t2,...,tn) (通常 t \bm{t} t模长为1) 的方向导数为
D t f ( x 1 , x 2 , . . . , x n ) = lim ⁡ α → 0 f ( x 1 + t 1 α , x 2 + t 2 α , . . . , x n + t n α ) − f ( x 1 , x 2 , . . . , x n ) α D_\bm{t} f(x_1,x_2,...,x_n)=\lim_{\alpha\rightarrow 0}\frac{f(x_1+t_1\alpha,x_2+t_2\alpha, ...,x_n+t_n\alpha)-f(x_1,x_2,...,x_n)}{\alpha} Dtf(x1,x2,...,xn)=α0limαf(x1+t1α,x2+t2α,...,xn+tnα)f(x1,x2,...,xn)
= ∂ f ∂ x 1 t 1 + ∂ f ∂ x 2 t 2 + . . . + ∂ f ∂ x n t n =\frac{\partial f}{\partial x_1}t_1+\frac{\partial f}{\partial x_2}t_2+...+\frac{\partial f}{\partial x_n}t_n =x1ft1+x2ft2+...+xnftn

定义gradient
∇ f = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x n ] ⊤ \nabla f=\left[\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ...,\frac{\partial f}{\partial x_n}\right]^\top f=[x1f,x2f,...,xnf]
f ( x ) f(\bm{x}) f(x)沿着 t \bm{t} t 的方向导数可以更简洁的写为
D t f ( x ) = ( ∇ f ) ⊤ ⋅ t D_t f(\bm{x})=(\nabla f)^\top \cdot \bm{t} Dtf(x)=(f)t
where x , t   ∈ R n \bm{x}, \bm{t}\ \in\mathbb{R}^n x,t Rn.

注意:梯度gradient是一个方向(且只在 R n \mathbb{R}^n Rn上), 方向导数则是一个数(沿着某一方向的变化率).

  • t \bm{t} t ∇ f \nabla f f同向时,方向导数最大, 函数上升速度最快; 反向时,方向导数最小(负的),
    函数下降速度最快.
  • 对于 f ( x 1 , x 2 , . . , x n ) f(x_1,x_2,..,x_n) f(x1,x2,..,xn), 它在 t = ( t 1 , t 2 , . . . , t n ) \bm{t}=(t_1,t_2,...,t_n) t=(t1,t2,...,tn)处的梯度与等高面 f ( x 1 , x 2 , . . , x n ) = k f(x_1,x_2,..,x_n)=k f(x1,x2,..,xn)=k正交,
    其中 f ( x 1 , x 2 , . . , x n ) = k f(x_1,x_2,..,x_n)=k f(x1,x2,..,xn)=k经过 t \bm{t} t.

    => 令等高面为 S \mathcal{S} S, t \bm{t} t S \mathcal{S} S上, 且 S \mathcal{S} S上的任意一条经过 t \bm{t} t的curve都与 ∇ f ( x 1 , x 2 , . . , x n ) \nabla f(x_1,x_2,..,x_n) f(x1,x2,..,xn) 正交

曲面的两种写法

好,最后我们来看看高维曲面的切平面和法向量.

首先, 我们知道一个曲面有两种写法

[第一种写法]
z = f ( x 1 , x 2 , . . . , x n ) z=f(x_1,x_2,...,x_n) z=f(x1,x2,...,xn)

第一种写法表示 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn) 的定义域在一个 n n n 维空间中, 自变量只能在这个空间中到处跑然后 z z z取得不同的值. 所以当我们算任意一点的 gradient 时 – 这里的任意一点指的是 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn), 一般是optimization 问题的定义域
∇ f ( x 1 , x 2 , . . . , x n ) = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯   , ∂ f ∂ x n ] ⊤ \nabla f(x_1,x_2,...,x_n)=\left[ \frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2} , \cdots, \frac{\partial f}{\partial x_n} \right]^\top f(x1,x2,...,xn)=[x1f,x2f,,xnf]

他表示的是一个 n n n维空间的向量, 在任意一点都指示着接下来往哪走是函数上升最快的方向.

[第二种写法]

F ( x 1 , x 2 , . . . , x n , z ) = f ( x 1 , x 2 , . . . , x n ) − z = 0 F(x_1,x_2,...,x_n,z)=f(x_1,x_2,...,x_n)-z=0 F(x1,x2,...,xn,z)=f(x1,x2,...,xn)z=0

不同于第一种写法,这种写法是将 f ( x 1 , x 2 , . . . , x n ) f(x_1,x_2,...,x_n) f(x1,x2,...,xn) 描述为 一个 n + 1 n+1 n+1 维空间中一个图形 F ( x 1 , x 2 , . . . , x n , z ) F(x_1,x_2,...,x_n,z) F(x1,x2,...,xn,z) 的一个截面: 若令 w = F ( x 1 , x 2 , . . . , x n , z ) w=F(x_1,x_2,...,x_n,z) w=F(x1,x2,...,xn,z), 那么 f ( x 1 , x 2 , . . . , x n ) f(x_1,x_2,...,x_n) f(x1,x2,...,xn) w = F ( x 1 , x 2 , . . . , x n , z ) w= F(x_1,x_2,...,x_n,z) w=F(x1,x2,...,xn,z) w = 0 w=0 w=0 的截面.

若对 F F F 求gradient, 那么这个 gradient 实际上是一个 n + 1 n+1 n+1 维的向量 – “任意一点的梯度” 这句话中的任意一点是 ( x 1 , x 2 , . . . , x n , z ) (x_1,x_2,...,x_n,z) (x1,x2,...,xn,z)
∇ F ( x 1 , x 2 , . . . , x n , z ) = [ ∂ F ∂ x 1 , ∂ F ∂ x 2 , ⋯   , ∂ F ∂ x n , ∂ F ∂ z ] ⊤ \nabla F(x_1,x_2,...,x_n,z)=\left[ \frac{\partial F}{\partial x_1},\frac{\partial F}{\partial x_2} , \cdots, \frac{\partial F}{\partial x_n}, \frac{\partial F}{\partial z} \right]^\top F(x1,x2,...,xn,z)=[x1F,x2F,,xnF,zF]

= [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯   , ∂ f ∂ x n , − 1 ] ⊤ = \left[ \frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2} , \cdots, \frac{\partial f}{\partial x_n}, -1 \right]^\top =[x1f,x2f,,xnf,1]

注意,这个梯度的前 n n n 项与 第一种写法下的梯度 ∇ f ( x 1 , x 2 , . . . , x n ) \nabla f(x_1,x_2,...,x_n) f(x1,x2,...,xn) 是完全一致的, 是同一个方向, 因此,

  • ∇ f ( x 1 , x 2 , . . . , x n ) \nabla f(x_1,x_2,...,x_n) f(x1,x2,...,xn) ∇ F ( x 1 , x 2 , . . . , x n , z ) \nabla F(x_1,x_2,...,x_n,z) F(x1,x2,...,xn,z) R n \mathbb{R}^n Rn 上的投影

切平面, 法向量, 法线

现在让我们想想, 对于 f f f上任意一点 ( t 1 , t 2 , . . . , t n , t z ) (t_1,t_2,...,t_n, t_z) (t1,t2,...,tn,tz), where t z = f ( t 1 , t 2 , . . . , t n ) t_z=f(t_1,t_2,...,t_n) tz=f(t1,t2,...,tn), 我们怎么写出它的切平面 tangent (hyper) plane) 和 法线 normal line. 显然, 如果我们用第一种写法, 是得不到的因为他只限于 n n n 维空间. 而切平面 和 法线 实际上都是 n + 1 n+1 n+1 维空间的. 所以我们采用第二种写法.

已知:

  1. 曲面上任意一点的 gradient 与 该surface垂直. 所以这个gradient是法向量.
    => 这个可以由上一节最后的结论推出: n + 1 n+1 n+1 维函数 F F F k = 0 k=0 k=0.
  2. 曲面上任意一点的切平面由 所有与法向量垂直的高维直线 构成.

则有: 切平面
[ ∇ F ( x , z ) ] ⊤ [ x 1 − t 1 , x 2 − t 2 , . . . , x n − t n , z − t z ] ⊤ = 0 \left[\nabla F(\bm{x},z)\right]^\top [x_1-t_1,x_2-t_2,...,x_n-t_n, z-t_z]^\top= 0 [F(x,z)][x1t1,x2t2,...,xntn,ztz]=0

[ ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯   , ∂ f ∂ x n , − 1 ] [ x 1 − t 1 , x 2 − t 2 , . . . , x n − t n , z − t z ] ⊤ = 0 \left[ \frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2} , \cdots, \frac{\partial f}{\partial x_n}, -1 \right] [x_1-t_1,x_2-t_2,...,x_n-t_n, z-t_z]^\top=0 [x1f,x2f,,xnf,1][x1t1,x2t2,...,xntn,ztz]=0

从这个式子中,我们也能得到第一种表达方式下的切平面方程. Let x = ( x 1 , x 2 , . . . , x n , z ) ⊤ \bm{x} = (x_1,x_2,...,x_n, z)^\top x=(x1,x2,...,xn,z), t = ( t 1 , t 2 , . . . , t n , t z ) ⊤ \bm{t} = (t_1,t_2,...,t_n, t_z)^\top t=(t1,t2,...,tn,tz),

[ ∇ f ( x 1 , x 2 , . . . , x n ) ] ⊤ ( x − t ) + f ( t 1 , t 2 , . . . , t n ) = z [\nabla f(x_1,x_2,...,x_n) ]^\top (\bm{x}-\bm{t}) + f(t_1,t_2,...,t_n) = z [f(x1,x2,...,xn)](xt)+f(t1,t2,...,tn)=z

最后我们来求法线. 已知,

  1. 法向量是 ∇ F ( x 1 , x 2 , . . . , x n , z ) \nabla F(x_1,x_2,...,x_n,z) F(x1,x2,...,xn,z)
  2. 法线过点 ( t 1 , t 2 , . . . , t n , t z ) (t_1,t_2,...,t_n, t_z) (t1,t2,...,tn,tz)

hyperplane中的一条线可以用参数方程表示: 任意一个向量, 比如 ∇ F ( x 1 , x 2 , . . . , x n , z ) \nabla F(x_1,x_2,...,x_n,z) F(x1,x2,...,xn,z), scale之后可以用来表示穿过原点的一条直线上的所有点, 若我们在这个向量上再加一个vector,就可以让他平行的移动了. 所以, 法线的参数方程为

( t 1 , t 2 , . . . , t n , t z ) + t ∇ F ( x 1 , x 2 , . . . , x n , z ) (t_1,t_2,...,t_n, t_z)+t\nabla F(x_1,x_2,...,x_n,z) (t1,t2,...,tn,tz)+tF(x1,x2,...,xn,z)

Reference:
https://tutorial.math.lamar.edu/classes/calciii/DirectionalDeriv.aspx#Gradient_Defn
https://tutorial.math.lamar.edu/classes/calciii/gradientvectortangentplane.aspx

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页