空间曲线

来自集智百科
跳转到: 导航搜索

空间曲线是微分几何中一个非常基础,而又非常重要的概念。下面,我们将以三维空间中的空间曲线为主体讨论相关的一些概念,然后再考虑推广到n维空间。

目录

定义

空间曲线

所谓的一条三维空间曲线,就是一个映射\alpha: I\rightarrow R^3,这里 I是实数轴上的某种区间(如(0,1), (a,b), [a,b], (-\infty,a],[0,1]等等)。由于\alpha的值域是R^3,那么\alpha的输出就包含三个坐标。我们可以将\alpha写成参数化的形式:


\alpha(t)=(\alpha^1(t),\alpha^2(t),\alpha^3(t))

这里\alpha^i本身都是一个函数,即\alpha^i:I\rightarrow R。我们可以将t理解成时间,这样\alpha(t)就是一个粒子在空间中的运动轨迹。

速度

如果\alpha理解为粒子的轨迹,那么\alpha'(t_0)就是粒子在时刻t_0的速度。我们可以推广这个概念,对于任意空间曲线\alpha(t),我们定义速度向量为:


\alpha'(t_0)=\left ( \frac{d \alpha^1 }{dt}\Big |_{t=t_0},\frac{d \alpha^2 }{dt}\Big |_{t=t_0},\frac{d \alpha^3}{dt}\Big |_{t=t_0}\right )

弧长参数化

在空间曲线的定义中,参数t可以是任意的实数区间。在这里,我们可以选择一个特殊的参数s为从曲线某点出发,沿着曲线运动的自然弧长。这样,用这个弧长来作为参数的曲线方程\alpha(s)就为曲线的弧长参数化表示。

可以证明,用弧长参数化方法定义的曲线方程在任意点上的速度都是1。下面给出证明。首先,根据微积分,对于定义在任意参数t上的曲线\alpha(t)的弧长计算公式为:


s(t)=\int_0^t |\alpha'(u)|du

其中,t为任意的时刻,s(t)为粒子从a时刻运动到t时刻所经历的弧长。这样,我们有:


\frac{ds}{dt}=|\alpha'(t)|>0

所以,s为I上的严格增函数,s也是一个一一映射,所以s必然存在着反函数,我们将反函数记为t(s),同时t(s)的导数就与s(t)的导数存在着如下的关系:


\frac{dt}{ds}(s)=\frac{1}{\frac{ds}{dt}(t(s))}>0

我们设\beta(s)=\alpha(t(s))。这样,由于\beta'(s)=\alpha'(t(s))\frac{dt}{ds}(s)。但是,我们有:


|\beta'(s)|=|\alpha'(t(s))|\cdot |\frac{dt}{ds}(s)|=\frac{ds}{dt}(t(s))\frac{dt}{ds}(s)=\frac{ds}{dt}(t(s))\frac{1}{\frac{ds}{dt}(t(s))}=1

这里\beta(s)实际上就是该曲线的弧长参数化表示。因此,我们知道它在整个定义区间上都有常数速度。

Frenet框架

下面我们考虑随着s的增长,弧长参数化的曲线\beta(s)将如何随之变化,我们定义三个向量分别是曲线的切向量、法向量和副法向量。

切向量

首先,切向量就定义为曲线运动的瞬时方向,也即曲线在t时刻的瞬时速度。


T=\frac{d\beta(s)}{d s}

由于s是弧长参数,所以|T|=1,即T是一个单位向量。

法向量

其次,我们定义曲线在s点处的法向量为:


T'=\frac{dT(s)}{ds}

可以证明法向量T'与切向量T相垂直。下面给出证明:

因为0=(T\cdot T)'=T'\cdot T+T\cdot T'=2T\cdot T',于是T\cdot T'=0也就是说T和T'垂直。

另外,我们定义T'的长度


\kappa(s)=|T'(s)|

为曲线在s处的曲率。一般情况下T'(s)并不是单位向量,这不方便我们的讨论,我们将归一化的法向量定义为曲线在s处的主法向向量:


N(s)=\frac{1}{\kappa(s)}T'(s)

N就是曲线的主法向向量。

副法向量

最后,我们定义T和N的叉乘为副法向量:


B=T\times N

不难验证B和T以及N都垂直,而且B是单位向量。

Frenet 框架

我们不难看到无论s取什么数值,T,N,B都是彼此垂直的单位向量。因此,这三个变量一起可以构成一个直角坐标系,我们称\{T,N,B\}为Frenet框架。可以想象,曲线在随着s运动的过程中,这个框架就会随之扭转,它们标示出来曲线的几何性质。

我们也可以将这三个变量所张成的框架理解为一个新的向量空间,所有的变量都可以写成这三个向量的线性组合。例如,我们可以将向量B'写成这三个向量的线性组合。


B'=a T+b N + c B

其中a,b,c就是线性组合的相应系数。下面,我们就来求出这三个系数。

根据线性代数,a就是B'与T的内积。由于T\cdot B=0,所以0=(T\cdot B)'=T'\cdot B+T\cdot B'。于是T\cdot B'=-T'\cdot B=-\kappa N \cdot B=0。所以a=0.

运用类似的技巧,我们可以求出c=0,而b=B'\cdot N却不为0。我们定义


\tau=-B'\cdot N

为曲线的挠度(torsion)。所以,总结来看:


B'=-\tau N

运用同样的道理,我们可以获得T',N',B'这三个向量在Frenet框架下的线性表达:


\begin{align}
&T'=\kappa N \\
&N'=-\kappa T +\tau B\\
&B'=-\tau N\\
\end{align}

这是曲线理论中的一个基本定理,该公式被称为Frenet公式。

例子

让我们考虑一条空间螺旋线: \beta(s)=(a \cos(s/c), a \sin(s/c), bs/c),其中c=\sqrt{a^2+b^2}

这里的a代表螺旋曲线在XY平面投影上的圆的旋转半径,b对应了在z轴上上升的速度。当s=2\pi c的时候,XY投影上的圆就刚好转一圈。沿着z轴刚好上升2\pi b,而在XY面上投影的圆的运行弧长刚好是2 \pi a,所以这三者之间应该满足关系c^2=a^2+b^2

根据这个方程,我们可以计算得到:


T=\beta'(s)=(-(a/c) \sin (s/c), (a/c) \cos(s/c),b/c)

以及


T'=(-(a/c^2) \cos(s/c),-(a/c^2) \sin(s/c),0)=(a/c^2)(-\cos(s/c),-\sin(s/c),0)=(a/c^2)N

于是,曲线的曲率为常数\kappa=a/c^2=\frac{a}{a^2+b^2}

最后,我们可以得到:


\begin{align}
&T=(-\frac{a}{c} \sin (\frac{s}{c}), \frac{a}{c} \cos (\frac{s}{c}), \frac{b}{c})\\
&N=(-\cos(\frac{s}{c}),-\sin(\frac{s}{c}),0)\\
&B=T\times N=(\frac{b}{c} \sin(\frac{s}{c}), -(\frac{b}{c} \cos(\frac{s}{c})), \frac{a}{c})\\
\end{align}

与此类似,我们可以计算出曲线的挠度为:


\tau=b/c^2

下面的动画展示了随着时间参数t变化,三种不同的向量:切向量T(蓝色)、法向量N(绿色),和副法向量B(红色)的演化。

SpatialCurvebyAnimationMathematica.gif

特殊情况

下面,我们考虑两种特殊情况。

  • 首先,我们不妨设b=0,此时我们发现,曲线就退化成了一个平面上的圆,而且,曲线的挠度就是0,曲率刚好是1/a,即圆的半径倒数。
  • 其次,我们可以让a无限趋近于0,这样的话,曲线就趋近为一条z=\frac{b}{c}s的直线。此时,曲率等于0,挠度也等于0。

关于曲率与挠度的直观认识

一般的,我们可以证明,当且仅当空间曲线为一条直线的时候,曲线的曲率才为0;而当且仅当曲线位于一张平面的时候,曲线的挠度才是0。所以,总结来看,曲率衡量的是一条曲线偏离直线的程度,而挠度计算的是一条曲线偏离一张平面的程度。

非单位速度下的曲线

当我们采用一般参数方程\alpha(t)的时候,曲线的速度就不是单位速度了。那么这种情况下的Frenet公式就变成了:


\begin{align}
&T'(t)=\kappa \nu N\\
&N'(t)=-\kappa \nu T + \tau \nu B\\
&B'(t)=-\tau\nu N
\end{align}

这里,其它参数的含义不变,而\nu=ds/dt为曲线的速度。

参考文献

  1. John Oprea: Differential Geometry and Its Applications,Pearson Education, 2004
个人工具
名字空间
操作
导航
工具箱