本篇文章我们从一般化的 Rn\mathbb{R}^nRn 空间回到我们生活的 R2,R3\mathbb{R}^2,\mathbb{R}^3R2,R3空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式。
最后引入环绕数的概念,讲讲怎么数曲线转了多少圈。

4.1 二维空间中的曲线

二维空间中的曲线(plane curves)的Frenet运动方程:
ddt(e1(t)e2(t))=(0ω(t)−ω(t)0)⋅(e1(t)e2(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)=e1′(t)⋅e2(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)=e1′(s)=ω(s)e2(s)=κ(s)e2(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)∣

这里我们可以看到平面曲线曲率正负的意义:
首先最主要的一点是,因为在每一点曲率是一个数而已,这说明曲线二阶导的方向,与 e2(s)e_2(s)e2​(s)的方向相同或者相反,总之他们在一条直线上!
(我写完之后几天又绕回了这个问题,发现这是相当本质的一个结论,nnn维欧式空间中,非退化的曲线,自身前 nnn 阶导数就是正交的!)

因为二阶导数的正负,决定了曲线的凹凸性,二阶导大于0,曲线下凸;二阶导小于0,曲线上凸;二阶导等于0,曲线没有凸性。
再结合由Frenet标架自身性质所决定的,e1(s)e_1(s)e1​(s)为曲线的切线方向,e2(s)e_2(s)e2​(s)由e1(s)e_1(s)e1​(s)逆时针旋转 90∘90^{\circ}90∘ 得到(为了和R2\mathbb{R}^2R2空间中的基底保持相同定向。)所以我们知道,κ(s)>0\kappa (s)>0κ(s)>0 表示e2(s)e_2(s)e2​(s)与曲线弯曲方向相同,反之,则相反;若κ(s)=0\kappa(s)=0κ(s)=0自然表示曲线在这一点处不弯曲。(不同的参数 sss 或者 ttt 并不改变上述向量的方向,只是在大小上相差个常数倍。)

接下来,我们来算一算,如果不对曲线进行弧长参数化,用最原本的参数,曲率的表达式是怎样的:

Proposition 4.1.1   c:I→R2c:I\rightarrow \mathbb{R}^2c: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 \phic=c~∘ϕ的形式,这里 s=ϕ(t)=∫x0t∣c′(τ)∣dτ,∴ϕ′=∣c′(t)∣s=\phi (t)= \int^t_{x_0}|c'(\tau)|d\tau,\therefore \phi'=|c'(t)|s=ϕ(t)=∫x0​t​∣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)(100κ~)(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​)(10​0κ~​)(e~1​(t)e~2​(t)​)由于曲率在参数变换下不变,上式两边取行列式便得到了结果。

事实上,曲线为平面圆周,当且仅当曲率恒为非零常数;当曲率恒为零时,对应的曲线退化为一条直线。

4.2 三维空间中的曲线

类似的,我们可以计算一般非弧长参数曲线的曲率。在三维空间中,“曲率”含有两部分,曲率κ(t)\kappa (t)κ(t) 和挠率 τ(t)\tau(t)τ(t),分别计算下:
Proposition 4.2.1   c:I→R3c:I\rightarrow \mathbb{R}^3c: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 \phic=c~∘ϕ,然后求导,写成矩阵形式:
(c′(t)c′′(t)c′′′(t))=(ϕ′ϕ′′ϕ′2ϕ′′′3ϕ′ϕ′′(ϕ′)3)(10κ~(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)∣3k~(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))=(10κ(s)−κ2(s)κ′(s)κ(s)τ(s))(e1(s)e2(s)e3(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(s0+s)≈c(s0)+sc′(s0)+s22c′′(s0)+s36c′′′(s0)=c(s0)+(s−κ26s3)e1+(κ2s2+κ′6s3)e2+κτ6s3e3\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​)+2s2​c′′(s0​)+6s3​c′′′(s0​)=c(s0​)+(s−6κ2​s3)e1​+(2κ​s2+6κ′​s3)e2​+6κτ​s3e3​​

因为 sss 是小量,其高阶可以扔掉,所以在 e1−e2e_1-e_2e1​−e2​ 平面上,曲线的改变近似为(s,κ2s2)(s,\frac{\kappa}{2}s^2)(s,2κ​s2);
在 e1−e3e_1-e_3e1​−e3​ 平面上,曲线的改变近似为(s,κτ6s3)(s,\frac{\kappa \tau}{6}s^3)(s,6κτ​s3);
在 e2−e3e_2-e_3e2​−e3​ 平面上,曲线的改变近似为(κ2s2,κτ6s3)(\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)
这里TTT是Tangent vector的简写,对应e1e_1e1​;
NNN 是Normal vector,对应e2e_2e2​;
BBB 是Binormal vector,对应e3e_3e3​.

4.3 环绕数定理

这个是平面曲线的全局性质(Global Theory),之前讲的标架,曲率都是对曲线的局部而言,那么对全局我们可以先考虑,比方说,曲线转了多少圈。
这一章在Klingenberg的书中语言叙述还是挺繁琐的,直观理解就好。

先说下什么是闭曲线:
用好理解的说法,这条曲线具有周期性,且处处都是光滑的(特别是在相同两部分连接的地方)。在傅里叶分析里我们还会见到他,圆上的曲线。
简单就是一一映射的意思。
所以简单闭曲线就是一条光滑周期参数曲线,且在每个周期上,都是一一映射的。

接下来是环绕数的概念:
在平面上一个光滑参数曲线的切向量是会随着曲线的方向转的,取定一个固定的坐标系,把切向量和 xxx-坐标轴的夹角定义为θ(t)\theta(t)θ(t) ,其中 ttt 为曲线的参数,那么显然这个 θ(t)\theta(t)θ(t) 除了在 π\piπ 和 2π2\pi2π 这两个零界点附近都是光滑的。

拿圆举例子,在起始位置,它的切向量和x轴夹角为π2\frac{\pi}{2}2π​,继续逆时针前进,到它的正上方时,夹角为π\piπ,快到正下方,却还没到时,夹角接近 2π2\pi2π ,当到了正下方后,与xxx-轴夹角从新从0算起。
所以我们总可以通过给夹角加一个2π2\pi2π的整数倍,使得这个夹角函数θ(t)\theta(t)θ(t)是连续且可导的,比方说刚说的例子,本来过了圆周的正下方,夹角重新回到0,我们只要对他加2π2\pi2π,使得夹角变成 2π+θ2\pi+\theta2π+θ,变成全局的连续可导函数即可。

环绕数,对光滑参数曲线,定义为在曲线的两个端点[a,b][a,b][a,b]的角度之差再除2π2\pi2π:nc=θ(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​,表示对于一个分段光滑节点 aia_iai​ 左右两端点角度的差值:即从c′(ai−)c'(a_i^-)c′(ai−​)到c′(ai+)c'(a_i^+)c′(ai+​)的角度差值,规定逆时针为正,顺时针为负,−π<αi<π-\pi<\alpha_i<\pi−π<αi​<π.
所以对分段光滑参数曲线的环绕数就定义为:nc=12π∑i(θi(bi)−θi(ai))+12π∑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π1​i∑​(θi​(bi​)−θi​(ai​))+2π1​i∑​αi​.
这里的ai,bia_i,b_iai​,bi​表示分段光滑区间的端点。

接下来是看起来很显然,但很有用的环绕数定理(Umlaufsatz),这是他的德语名字。
Theorem 4.3.1 假设c:I→Rnc:I\rightarrow \mathbb{R}^nc:I→Rn是一条分段光滑的,正则的简单闭曲线,则它的环绕数nc=±1.n_c=\pm1.nc​=±1.

这里的简单闭曲线其实可以很复杂:
比如简单光滑曲线可以不简单:

再比如简单分断光滑曲线可以相当复杂:

但他们的环绕数其实都是111或者−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

微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数相关推荐

  1. 光滑曲线_微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数

     本篇文章我们从一般化的 空间回到我们生活的 空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式. 最后引入环绕数的概念,讲讲怎么数曲线转了多少圈. 4.1 ...

  2. 《剑指0ffer》刷题笔记 -01 二维数组中的查找

    参考链接 :https://cuijiahua.com/blog/2017/11/basis_1.html https://blog.csdn.net/wang454592297/article/de ...

  3. 萌萌媛の【剑指offer笔记】二维数组中的查找

    题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  4. 剑指offer笔记(四)二维数组中的查找

    二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右的顺序递增,每一列都按照从上到下的顺序递增,判断一个数是否在数组中 例如: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 ...

  5. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  6. 遍历二维数组_Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  7. 将一串随机数输入到二维坐标轴中,不断刷新JPanel,实现动态显示的效果微笑

    将一串随机数输入到二维坐标轴中,不断刷新JPanel,实现动态显示的效果 import java.awt.BasicStroke; import java.awt.BorderLayout; impo ...

  8. 【二分法】剑指offer:二维数组中的查找

    对于二维数组中每一个一维数组,用二分查找,判断能否找到该数 leetcode专题笔记:二分法查找(1)(附leetcode题)_m0_52043808的博客-CSDN博客 代码: class Solu ...

  9. 1.2 二维三维空间向量组的线性组合

    二维三维空间向量组的线性组合 向量的基本运算法则,构成了整个线性代数的基础.在物理学中,特别是求系统平衡时,经常碰到这类问题,给定若干矢量,这些矢量和能与某特定矢量平衡吗?这就需要研究向量组的线性组合 ...

最新文章

  1. 简单明了!OLTP场景下的数据分布式设计原则
  2. 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
  3. 热更新--动态加载framework
  4. java中上转型概念_在java 中,什么叫向上转型?
  5. synchronized不能锁静态变量_肝了一下午的 Synchronized 解析!
  6. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 Excel Services中新功能...
  7. ReflectionLabel(倒影控件)
  8. MySQL CAST与CONVERT 函数的用法
  9. 如何精通java_如何精通java技术
  10. 2.5 结构化程序设计的方法
  11. 监测 Linux 上失败的登录尝试方法分享
  12. windows系统怎么用注册表修改桌面文件路径
  13. LeetCode 206. 反转链表(c语言实现)
  14. 那些年学过的古诗谚语名句俗语
  15. 区分英文句号和数字中的正则表达式
  16. 如何避免字节流读取文本乱码
  17. 汇编条件判断 eq neq
  18. 一插usb接口计算机就重启,电脑故障分析:主机一插USB设备就死机,故障原因令人很无语...
  19. matlab中contourf函数怎么用_有人可以解释如何使用contourf在MATLAB中绘制这个总和吗?...
  20. 墨者学院—Webmin未经身份验证的远程代码执行(简单复习)

热门文章

  1. 学习笔记|数据挖掘中的数据
  2. DDNS工具功能对比---金万维
  3. html表格不会自动变形,CSS 解决td里面内容太多把表格弄变形的原因,设置 自动换行。...
  4. java simpledateformat星期_Java中随心所欲格式化时间 SimpleDateFormat
  5. Ucloud云主机无法yum安装处理办法
  6. Python入门300行代码
  7. 【观察】锦州这座城高质量发展新动能,成长在华为的“黑土地”之上
  8. 周鸿祎:我和中国互联网的沸腾二十年
  9. maya计算机内存不足请保存,maya怎么渲染_Maya内存不足不能渲染怎么优化场景
  10. PS4怪物猎人世界服务器稳定吗,怪物猎人世界pc好还是ps4好