本篇文章我们从一般化的 R n \mathbb{R}^n Rn 空间回到我们生活的 R 2 , R 3 \mathbb{R}^2,\mathbb{R}^3 R2,R3空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式。
最后引入环绕数的概念,讲讲怎么数曲线转了多少圈。
二维空间中的曲线(plane curves)的Frenet运动方程:
d d t ( e 1 ( t ) e 2 ( t ) ) = ( 0 ω ( t ) − ω ( t ) 0 ) ⋅ ( e 1 ( t ) e 2 ( t ) ) \frac{d}{dt}\begin{pmatrix} e_1(t)\\ e_2(t) \end{pmatrix}= \begin{pmatrix} 0&\omega (t)\\ -\omega (t)& 0 \end{pmatrix}\cdot \begin{pmatrix} e_1(t)\\e_2(t) \end{pmatrix} dtd(e1(t)e2(t))=(0−ω(t)ω(t)0)⋅(e1(t)e2(t))
这里 ω ( t ) = ω 1 , 2 ( t ) = e 1 ′ ( t ) ⋅ e 2 ( t ) \omega (t)=\omega_{1,2}(t) =e_1'(t)\cdot e_2(t) ω(t)=ω1,2(t)=e1′(t)⋅e2(t) ,曲率 κ ( t ) ≜ ω ( t ) ∣ c ′ ( t ) ∣ \kappa(t)\triangleq \frac{\omega (t)}{|c'(t)|} κ(t)≜∣c′(t)∣ω(t),详细的定义写在之前一篇笔记中。
进一步,在弧长参数下有 c ′ ′ ( s ) = e 1 ′ ( s ) = ω ( s ) e 2 ( s ) = κ ( s ) e 2 ( s ) c''(s)=e'_1(s)=\omega(s)e_2(s)=\kappa(s)e_2(s) c′′(s)=e1′(s)=ω(s)e2(s)=κ(s)e2(s) 所以有 ∣ c ′ ′ ( s ) ∣ = ∣ κ ( s ) ∣ |c''(s)|=|\kappa(s)| ∣c′′(s)∣=∣κ(s)∣
这里我们可以看到平面曲线曲率正负的意义:
首先最主要的一点是,因为在每一点曲率是一个数而已,这说明曲线二阶导的方向,与 e 2 ( s ) e_2(s) e2(s)的方向相同或者相反,总之他们在一条直线上!
(我写完之后几天又绕回了这个问题,发现这是相当本质的一个结论, n n n维欧式空间中,非退化的曲线,自身前 n n n 阶导数就是正交的!)
因为二阶导数的正负,决定了曲线的凹凸性,二阶导大于0,曲线下凸;二阶导小于0,曲线上凸;二阶导等于0,曲线没有凸性。
再结合由Frenet标架自身性质所决定的, e 1 ( s ) e_1(s) e1(s)为曲线的切线方向, e 2 ( s ) e_2(s) e2(s)由 e 1 ( s ) e_1(s) e1(s)逆时针旋转 9 0 ∘ 90^{\circ} 90∘ 得到(为了和 R 2 \mathbb{R}^2 R2空间中的基底保持相同定向。)所以我们知道, κ ( s ) > 0 \kappa (s)>0 κ(s)>0 表示 e 2 ( s ) e_2(s) e2(s)与曲线弯曲方向相同,反之,则相反;若 κ ( s ) = 0 \kappa(s)=0 κ(s)=0自然表示曲线在这一点处不弯曲。(不同的参数 s s s 或者 t t t 并不改变上述向量的方向,只是在大小上相差个常数倍。)
接下来,我们来算一算,如果不对曲线进行弧长参数化,用最原本的参数,曲率的表达式是怎样的:
Proposition 4.1.1 c : I → R 2 c:I\rightarrow \mathbb{R}^2 c:I→R2 为一条满足Frenet条件的参数化平面曲线,则其曲率 κ ( t ) = det ( c ′ ( t ) , c ′ ′ ( t ) ) ∣ c ′ ( t ) ∣ 3 \kappa(t)=\frac{\text{det}(c'(t),c''(t))}{|c'(t)|^3} κ(t)=∣c′(t)∣3det(c′(t),c′′(t))
Proof:
对任意参数曲线,都可以写成 c = c ~ ∘ ϕ c = \tilde{c} \circ \phi c=c~∘ϕ的形式,这里 s = ϕ ( t ) = ∫ x 0 t ∣ c ′ ( τ ) ∣ d τ , ∴ ϕ ′ = ∣ c ′ ( t ) ∣ s=\phi (t)= \int^t_{x_0}|c'(\tau)|d\tau,\therefore \phi'=|c'(t)| s=ϕ(t)=∫x0t∣c′(τ)∣dτ,∴ϕ′=∣c′(t)∣(证明写在笔记(2)中的命题2.2.5)
那么
c ′ ( t ) = ϕ ′ ( c ~ ′ ∘ ϕ ) , c ′ ′ ( t ) = ϕ ′ ′ ( c ~ ′ ∘ ϕ ) + ( ϕ ′ ) 2 ( c ~ ′ ′ ∘ ϕ ) c'(t)=\phi'(\tilde{c}' \circ \phi), c''(t)=\phi''(\tilde{c}' \circ \phi)+(\phi')^2(\tilde{c}'' \circ \phi) c′(t)=ϕ′(c~′∘ϕ),c′′(t)=ϕ′′(c~′∘ϕ)+(ϕ′)2(c~′′∘ϕ)
注意这里 c ~ ′ ∘ ϕ = c ~ ′ ( s ) = e ~ 1 , c ~ ′ ′ ∘ ϕ = c ~ ′ ′ ( s ) = κ ~ ( s ) e ~ 2 ( s ) \tilde{c}' \circ \phi=\tilde{c}'(s)=\tilde{e}_1, \tilde{c}'' \circ \phi=\tilde{c}''(s)=\tilde{\kappa}(s)\tilde{e}_2(s) c~′∘ϕ=c~′(s)=e~1,c~′′∘ϕ=c~′′(s)=κ~(s)e~2(s)
写成矩阵的形式:
( c ′ ( t ) c ′ ′ ( t ) ) = ( ϕ ′ 0 ϕ ′ ′ ϕ ′ 2 ) ( 1 0 0 κ ~ ) ( e ~ 1 ( t ) e ~ 2 ( t ) ) \begin{pmatrix} c'(t)\\ c''(t) \end{pmatrix}= \begin{pmatrix} \phi'& 0\\ \phi''& \phi^{'2} \end{pmatrix} \begin{pmatrix} 1&0\\ 0&\tilde{\kappa} \end{pmatrix} \begin{pmatrix} \tilde{e}_1(t)\\ \tilde{e}_2(t) \end{pmatrix} (c′(t)c′′(t))=(ϕ′ϕ′′0ϕ′2)(100κ~)(e~1(t)e~2(t))由于曲率在参数变换下不变,上式两边取行列式便得到了结果。
事实上,曲线为平面圆周,当且仅当曲率恒为非零常数;当曲率恒为零时,对应的曲线退化为一条直线。
类似的,我们可以计算一般非弧长参数曲线的曲率。在三维空间中,“曲率”含有两部分,曲率 κ ( t ) \kappa (t) κ(t) 和挠率 τ ( t ) \tau(t) τ(t),分别计算下:
Proposition 4.2.1 c : I → R 3 c:I\rightarrow \mathbb{R}^3 c:I→R3 为一条满足Frenet条件的参数化空间曲线,则其曲率 κ ( t ) = ∣ c ′ ( t ) × c ′ ′ ( t ) ∣ ∣ c ′ ( t ) ∣ 3 \kappa(t)=\frac{|c'(t)\times c''(t)|}{|c'(t)|^3} κ(t)=∣c′(t)∣3∣c′(t)×c′′(t)∣, τ ( t ) = det ( c ′ ( t ) , c ′ ′ ( t ) , c ′ ′ ′ ( t ) ) ∣ c ′ ( t ) × c ′ ′ ( t ) ∣ 2 \tau(t)=\frac{\text{det}(c'(t),c''(t),c'''(t))}{|c'(t)\times c''(t)|^2} τ(t)=∣c′(t)×c′′(t)∣2det(c′(t),c′′(t),c′′′(t)).
Proof:
与二维情况类似,将曲线写为 c = c ~ ∘ ϕ c = \tilde{c} \circ \phi c=c~∘ϕ,然后求导,写成矩阵形式:
( c ′ ( t ) c ′ ′ ( t ) c ′ ′ ′ ( t ) ) = ( ϕ ′ ϕ ′ ′ ϕ ′ 2 ϕ ′ ′ ′ 3 ϕ ′ ϕ ′ ′ ( ϕ ′ ) 3 ) ( 1 0 κ ~ ( s ) − κ ~ 2 ( s ) κ ~ ′ ( s ) κ ~ ( s ) τ ~ ( s ) ) ( e ~ 1 ( t ) e ~ 2 ( t ) e ~ 3 ( t ) ) \begin{pmatrix} c'(t)\\ c''(t)\\c'''(t) \end{pmatrix}= \begin{pmatrix} \phi'&&\\ \phi''& \phi^{'2}&\\ \phi'''& 3\phi' \phi''& (\phi')^3 \end{pmatrix} \begin{pmatrix} 1& &\\ 0&\tilde{\kappa}(s)&\\ -\tilde{\kappa}^2(s) & \tilde{\kappa}'(s) &\tilde{\kappa}(s) \tilde{\tau}(s) \end{pmatrix} \begin{pmatrix} \tilde{e}_1(t)\\ \tilde{e}_2(t)\\ \tilde{e}_3(t) \end{pmatrix} ⎝⎛c′(t)c′′(t)c′′′(t)⎠⎞=⎝⎛ϕ′ϕ′′ϕ′′′ϕ′23ϕ′ϕ′′(ϕ′)3⎠⎞⎝⎛10−κ~2(s)κ~(s)κ~′(s)κ~(s)τ~(s)⎠⎞⎝⎛e~1(t)e~2(t)e~3(t)⎠⎞
先计算曲率 κ ( t ) \kappa(t) κ(t): c ′ ( t ) × c ′ ′ ( t ) = ϕ ′ ( t ) e ~ 1 ( s ) × ( ϕ ′ ′ e ~ 1 ( s ) + ( ϕ ′ ) 2 κ ~ ( s ) e ~ 2 ( s ) ) = ∣ c ′ ( t ) ∣ 3 k ~ ( s ) e ~ 3 ( s ) c'(t)\times c''(t)=\phi'(t)\tilde{e}_1(s)\times (\phi'' \tilde{e}_1(s)+(\phi')^2\tilde{\kappa}(s)\tilde{e}_2(s))=|c'(t)|^3\tilde{k}(s)\tilde{e}_3(s) c′(t)×c′′(t)=ϕ′(t)e~1(s)×(ϕ′′e~1(s)+(ϕ′)2κ~(s)e~2(s))=∣c′(t)∣3k~(s)e~3(s)
由曲率的参数变换不变性, κ ( t ) = ∣ c ′ ( t ) × c ′ ′ ( t ) ∣ ∣ c ′ ( t ) ∣ 3 \kappa(t)=\frac{|c'(t)\times c''(t)|}{|c'(t)|^3} κ(t)=∣c′(t)∣3∣c′(t)×c′′(t)∣.
再在上面矩阵两边取行列式,就得到: τ ( t ) = det ( c ′ ( t ) , c ′ ′ ( t ) , c ′ ′ ′ ( t ) ) ∣ c ′ ( t ) × c ′ ′ ( t ) ∣ 2 \tau(t)=\frac{\text{det}(c'(t),c''(t),c'''(t))}{|c'(t)\times c''(t)|^2} τ(t)=∣c′(t)×c′′(t)∣2det(c′(t),c′′(t),c′′′(t))
空间曲线由曲率和挠率唯一决定,假若二者均为常数(注意在空间中,曲率 κ > 0 \kappa>0 κ>0):
1.当 τ ≠ 0 \tau \neq 0 τ=0时,曲线为螺旋线(Helix);
2.当 τ \tau τ恒为非零常数时,曲线退化为平面圆周。
证明也很简单,一方面螺旋线的曲率挠率恒为常数;另一方面,任意恒为常数的曲率挠率,总可以写成螺旋线所对应的形式。
接下来我们再来看一看Frenet标架,是如何唯一决定曲线的.
我们试图对一条弧长参数化曲线进行泰勒展开来做,这就涉及到用Frenet标架来表示曲线的导数,这个也好办,上方矩阵形式的最后两个矩阵就是我们要的:
( c ′ ( s ) c ′ ′ ( s ) c ′ ′ ′ ( s ) ) = ( 1 0 κ ( s ) − κ 2 ( s ) κ ′ ( s ) κ ( s ) τ ( s ) ) ( e 1 ( s ) e 2 ( s ) e 3 ( s ) ) \begin{pmatrix} c'(s)\\ c''(s)\\c'''(s) \end{pmatrix}= \begin{pmatrix} 1& &\\ 0&\kappa(s)&\\ -\kappa^2(s) & \kappa'(s) &\kappa(s) \tau(s) \end{pmatrix} \begin{pmatrix} e_1(s)\\ e_2(s)\\ e_3(s) \end{pmatrix} ⎝⎛c′(s)c′′(s)c′′′(s)⎠⎞=⎝⎛10−κ2(s)κ(s)κ′(s)κ(s)τ(s)⎠⎞⎝⎛e1(s)e2(s)e3(s)⎠⎞
我们现在可以用泰勒公式了:
c ( s 0 + s ) ≈ c ( s 0 ) + s c ′ ( s 0 ) + s 2 2 c ′ ′ ( s 0 ) + s 3 6 c ′ ′ ′ ( s 0 ) = c ( s 0 ) + ( s − κ 2 6 s 3 ) e 1 + ( κ 2 s 2 + κ ′ 6 s 3 ) e 2 + κ τ 6 s 3 e 3 \begin{aligned} c(s_0+s)&\approx c(s_0)+sc'(s_0)+\frac{s^2}{2}c''(s_0)+\frac{s^3}{6}c'''(s_0)\\ &=c(s_0)+(s-\frac{\kappa^2}{6}s^3)e_1+(\frac{\kappa}{2}s^2+\frac{\kappa'}{6}s^3)e_2+\frac{\kappa \tau}{6}s^3e_3\\ \end{aligned} c(s0+s)≈c(s0)+sc′(s0)+2s2c′′(s0)+6s3c′′′(s0)=c(s0)+(s−6κ2s3)e1+(2κs2+6κ′s3)e2+6κτs3e3
因为 s s s 是小量,其高阶可以扔掉,所以在 e 1 − e 2 e_1-e_2 e1−e2 平面上,曲线的改变近似为 ( s , κ 2 s 2 ) (s,\frac{\kappa}{2}s^2) (s,2κs2);
在 e 1 − e 3 e_1-e_3 e1−e3 平面上,曲线的改变近似为 ( s , κ τ 6 s 3 ) (s,\frac{\kappa \tau}{6}s^3) (s,6κτs3);
在 e 2 − e 3 e_2-e_3 e2−e3 平面上,曲线的改变近似为 ( κ 2 s 2 , κ τ 6 s 3 ) (\frac{\kappa}{2}s^2,\frac{\kappa \tau}{6}s^3) (2κs2,6κτs3).
这里刚好说到第三个曲线,被成为Neil抛物线,其特点是在尖点(cusp)处连续可导,当然在这里他就不满足函数的定义了。
将他们画在三维坐标系中:
(图来自 UTM Calculus and Analysis in Euclidean Space p402)
这里 T T T是Tangent vector的简写,对应 e 1 e_1 e1;
N N N 是Normal vector,对应 e 2 e_2 e2;
B B B 是Binormal vector,对应 e 3 e_3 e3.
这个是平面曲线的全局性质(Global Theory),之前讲的标架,曲率都是对曲线的局部而言,那么对全局我们可以先考虑,比方说,曲线转了多少圈。
这一章在Klingenberg的书中语言叙述还是挺繁琐的,直观理解就好。
先说下什么是闭曲线:
用好理解的说法,这条曲线具有周期性,且处处都是光滑的(特别是在相同两部分连接的地方)。在傅里叶分析里我们还会见到他,圆上的曲线。
简单就是一一映射的意思。
所以简单闭曲线就是一条光滑周期参数曲线,且在每个周期上,都是一一映射的。
接下来是环绕数的概念:
在平面上一个光滑参数曲线的切向量是会随着曲线的方向转的,取定一个固定的坐标系,把切向量和 x x x-坐标轴的夹角定义为 θ ( t ) \theta(t) θ(t) ,其中 t t t 为曲线的参数,那么显然这个 θ ( t ) \theta(t) θ(t) 除了在 π \pi π 和 2 π 2\pi 2π 这两个零界点附近都是光滑的。
拿圆举例子,在起始位置,它的切向量和x轴夹角为 π 2 \frac{\pi}{2} 2π,继续逆时针前进,到它的正上方时,夹角为 π \pi π,快到正下方,却还没到时,夹角接近 2 π 2\pi 2π ,当到了正下方后,与 x x x-轴夹角从新从0算起。
所以我们总可以通过给夹角加一个 2 π 2\pi 2π的整数倍,使得这个夹角函数 θ ( t ) \theta(t) θ(t)是连续且可导的,比方说刚说的例子,本来过了圆周的正下方,夹角重新回到0,我们只要对他加 2 π 2\pi 2π,使得夹角变成 2 π + θ 2\pi+\theta 2π+θ,变成全局的连续可导函数即可。
环绕数,对光滑参数曲线,定义为在曲线的两个端点 [ a , b ] [a,b] [a,b]的角度之差再除 2 π 2\pi 2π: n c = θ ( b ) − θ ( a ) 2 π n_c=\frac{\theta(b)-\theta(a)}{2\pi} nc=2πθ(b)−θ(a).
比方说对单位圆周 c = ( cos θ , sin θ ) , θ ∈ [ 0 , 2 π ] c=(\cos \theta,\sin \theta), \theta\in[0,2\pi] c=(cosθ,sinθ),θ∈[0,2π]的环绕数,按定义为1;
单位圆周 c = ( cos 2 θ , sin 2 θ ) , θ ∈ [ 0 , 2 π ] c=(\cos2 \theta,\sin 2\theta), \theta\in[0,2\pi] c=(cos2θ,sin2θ),θ∈[0,2π]的环绕数,按定义为2;
单位圆周 c = ( cos ( − θ ) , sin ( − θ ) ) , θ ∈ [ 0 , 2 π ] c=(\cos{(- \theta)},\sin{(- \theta)}), \theta\in[0,2\pi] c=(cos(−θ),sin(−θ)),θ∈[0,2π]的环绕数,按定义为-1.
更进一步,对于分段光滑的参数曲线,定义一个外角(exterior angle),记为 α i \alpha_i αi,表示对于一个分段光滑节点 a i a_i ai 左右两端点角度的差值:即从 c ′ ( a i − ) c'(a_i^-) c′(ai−)到 c ′ ( a i + ) c'(a_i^+) c′(ai+)的角度差值,规定逆时针为正,顺时针为负, − π < α i < π -\pi<\alpha_i<\pi −π<αi<π.
所以对分段光滑参数曲线的环绕数就定义为: n c = 1 2 π ∑ i ( θ i ( b i ) − θ i ( a i ) ) + 1 2 π ∑ i α i . n_c=\frac{1}{2\pi}\sum_i(\theta_i(b_i)-\theta_i(a_i))+\frac{1}{2\pi}\sum_i\alpha_i. nc=2π1i∑(θi(bi)−θi(ai))+2π1i∑αi.
这里的 a i , b i a_i,b_i ai,bi表示分段光滑区间的端点。
接下来是看起来很显然,但很有用的环绕数定理(Umlaufsatz),这是他的德语名字。
Theorem 4.3.1 假设 c : I → R n c:I\rightarrow \mathbb{R}^n c:I→Rn是一条分段光滑的,正则的简单闭曲线,则它的环绕数 n c = ± 1. n_c=\pm1. nc=±1.
这里的简单闭曲线其实可以很复杂:
比如简单光滑曲线可以不简单:
再比如简单分断光滑曲线可以相当复杂:
但他们的环绕数其实都是 1 1 1或者 − 1 -1 −1,即绕着走到起点,其实都只绕了一圈。
参考:
[1]W. Klingenberg. A course in differential geometry. Translated from the German by David Hoffman. Graduate Texts in Mathematics, Vol. 51. Springer-Verlag, 1978.
[2]J. Shurman. Calculus and Analysis in Euclidean Space Undergraduate Texts in Mathematics,Springer-Verlag, 2016.
[3]厦门大学杨波老师的讲义:http://math.xmu.edu.cn/group/ga/dg_files/surface_notes.pdf