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

您所在的位置:网站首页 曲面和平面的概念 高维曲面: 方向导数, 梯度, 切平面, 法向量

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

2024-05-24 00:56| 来源: 网络整理| 查看: 265

多个变量的函数 比如, 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)是四维空间中的曲面.对于定义域是平面的函数 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 是一个常数.对于定义域是三维的函数 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.等高线是 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} ∂xi​∂f​=α→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} Dt​f(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 =∂x1​∂f​t1​+∂x2​∂f​t2​+...+∂xn​∂f​tn​

定义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=[∂x1​∂f​,∂x2​∂f​,...,∂xn​∂f​]⊤ 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} Dt​f(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​)=[∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​]⊤

他表示的是一个 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)=[∂x1​∂F​,∂x2​∂F​,⋯,∂xn​∂F​,∂z∂F​]⊤

= [ ∂ 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 =[∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​,−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 维空间的. 所以我们采用第二种写法.

已知:

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

则有: 切平面 [ ∇ 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)]⊤[x1​−t1​,x2​−t2​,...,xn​−tn​,z−tz​]⊤=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 [∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​,−1][x1​−t1​,x2​−t2​,...,xn​−tn​,z−tz​]⊤=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​)]⊤(x−t)+f(t1​,t2​,...,tn​)=z

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

法向量是 ∇ F ( x 1 , x 2 , . . . , x n , z ) \nabla F(x_1,x_2,...,x_n,z) ∇F(x1​,x2​,...,xn​,z)法线过点 ( 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​)+t∇F(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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3