本篇文章我们从一般化的

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

4.1 二维空间中的曲线

二维空间中的曲线(plane curves)的Frenet运动方程:

这里

,曲率
,详细的定义写在之前一篇笔记中。 进一步,在弧长参数下有
所以有

这里我们可以看到平面曲线曲率正负的意义: 首先最主要的一点是,因为在每一点曲率是一个数而已,这说明曲线二阶导的方向,与

的方向相同或者相反,总之他们在一条直线上!

(我写完之后几天又绕回了这个问题,发现这是相当本质的一个结论,

维欧式空间中,非退化的曲线,在弧长参数下,自身前
阶导数就是正交的!)(那么对于k>n,k阶导数呢?)

因为二阶导数的正负,决定了曲线的凹凸性,二阶导大于0,曲线下凸;二阶导小于0,曲线上凸;二阶导等于0,曲线没有凸性。 再结合由Frenet标架自身性质所决定的,

为曲线的切线方向,
逆时针旋转
得到(为了和
空间中的基底保持相同定向。)所以我们知道,
表示
与曲线弯曲方向相同,反之,则相反;若
自然表示曲线在这一点处不弯曲。

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

Proposition 4.1.1

为一条满足Frenet条件的参数化平面曲线,则其曲率
.

Proof: 对任意参数曲线,都可以写成

的形式,这里
(证明写在笔记(2)中的命题2.2.5)

那么

注意这里

写成矩阵的形式:

由于曲率在参数变换下不变,上式两边取行列式便得到了结果。

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

4.2 三维空间中的曲线

类似的,我们可以计算一般非弧长参数曲线的曲率。在三维空间中,“曲率”含有两部分,曲率

和挠率
,分别计算下:

Proposition 4.2.1

为一条满足Frenet条件的参数化空间曲线,则其曲率
,
.

Proof: 与二维情况类似,将曲线写为

,然后求导,写成矩阵形式:

先计算曲率

由曲率的参数变换不变性,

.

再在上面矩阵两边取行列式,就得到:

空间曲线由曲率和挠率唯一决定,假若二者均为常数(注意在空间中,曲率

):

1.当

时,曲线为螺旋线(Helix);

2.当

恒为非零常数时,曲线退化为平面圆周。

证明也很简单,一方面螺旋线的曲率挠率恒为常数;另一方面,任意恒为常数的曲率挠率,总可以写成螺旋线所对应的形式。

接下来我们再来看一看Frenet标架,是如何唯一决定曲线的. 我们试图对一条弧长参数化曲线进行泰勒展开来做,这就涉及到用Frenet标架来表示曲线的导数,这个也好办,上方矩阵形式的最后两个矩阵就是我们要的:

我们现在可以用泰勒公式了:

因为

是小量,其高阶可以扔掉,所以在
平面上,曲线的改变近似为
; 在
平面上,曲线的改变近似为
; 在
平面上,曲线的改变近似为
.

这里刚好说到第三个曲线,被称为Neil抛物线,其特点是在尖点(cusp)处连续可导,当然在这里他就不满足函数的定义了。

将他们画在三维坐标系中:

(图来自 UTM Calculus and Analysis in Euclidean Space p402)

这里T是Tangent vector的简写,对应

; N for Normal vector,对应
; B for Binormal vector,对应
.

4.3 环绕数定理

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

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

接下来是环绕数的概念: 在平面上一个光滑参数曲线的切向量是会随着曲线的方向转的,取定一个固定的坐标系,把切向量和 x-坐标轴的夹角定义为

,其中 t 为曲线的参数,那么显然这个
除了在
这两个零界点附近都是光滑的。

拿圆举例子,在起始位置,它的切向量和x轴夹角为

,继续逆时针前进,到它的正上方时,夹角为
,快到正下方,却还没到时,夹角接近
,当到了正下方后,与x-轴夹角从新从0算起。 所以我们总可以通过给夹角加一个
的整数倍,使得这个夹角函数
是连续可导的,比方说刚说的例子,本来过了圆周的正下方,夹角重新回到0,我们只要对他加
,使得夹角变成
,变成全局的连续可导函数即可。

环绕数,对光滑参数曲线,定义为在曲线的两个端点

的角度之差再除

比方说对单位圆周

的环绕数,按定义为1;

单位圆周

的环绕数,按定义为2;

单位圆周

的环绕数,按定义为-1.

更进一步,对于分段光滑的参数曲线,定义一个外角(exterior angle),记为

,表示对于一个分段光滑节点
左右两端点角度的差值:即从
的角度差值,规定逆时针为正,顺时针为负,
. 所以对分段光滑参数曲线的环绕数就定义为:

这里的

表示分段光滑区间的端点。

接下来是看起来很显然,但很有用的环绕数定理(Umlaufsatz),这是他的德语名字。

Theorem 4.3.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) —— 二维三维空间中曲线的曲率以及环绕数

    本篇文章我们从一般化的 Rn\mathbb{R}^nRn 空间回到我们生活的 R2,R3\mathbb{R}^2,\mathbb{R}^3R2,R3空间,看看低维空间中的曲线有哪些性质,主要计算下在非 ...

  2. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

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

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

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

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

  5. 光滑曲线_微分几何笔记(2) —— 曲线的参数化

    第二周讲完了Klingenberg的第一章Curves,做一点微小的笔记. 分成三个部分,本篇讲曲线的弧长参数:下一篇讲一般的Frenet标架及方程组:再下一篇讲二维三维空间曲线的curvature ...

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

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

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

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

  8. Java编程基础阶段笔记 day06 二维数组

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

  9. 剑指offer_第1题_二维数组中的查找

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

最新文章

  1. unity game和scene效果不一样_都说水泥漆和乳胶漆只是叫法不一样,对房子装修效果一样,事实呢...
  2. PLSQL远程连接oracle数据库
  3. sizeof和gcvt转换双精度函数的函数不是小结的小结
  4. html里table的遍历,js遍历table中的tr
  5. 广播网关GPC为MDS多媒体调度再添虎翼
  6. 如何在腾讯云上安装Cloud Foundry
  7. C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties
  8. itextsharp c# asp.net 生成 pdf 文件
  9. Javascript面向对象编程(一):对象的产生
  10. openssh升级_Redhat 6.5源码编译升级openssh到7.8版本
  11. mysql 登录的权限设置_MySQL 登录权限设置SQL语句
  12. Tomcat 配置https证书
  13. 布丰投针试验的仿真和误差估计
  14. 解决机关内外部办公网络故障
  15. Mac中mvn命令安装配置command not found
  16. eyoucms使用入门 三
  17. ios epub电子书阅读器demo
  18. vfio概述(vfio/iommu/device passthrough)
  19. java画星星_用java画色彩斑斓的星星
  20. if ‘youtube.com/‘ in url or ‘youtu.be/‘ in url:TypeError: argument of type ‘int‘ is not iterable

热门文章

  1. 【100题】给定入栈序列,判断一个序列是否可能为输出序列
  2. (FortiGate)飞塔防火墙IPS(***防御)解决方案
  3. Android 上面实现红外解析(NEC编码)
  4. vue+element树形控件实现根据条件(例id)禁用选项
  5. amazon账号关联|我做了这些不在关联了
  6. frp服务实现内网穿透SSH远程内网虚拟机
  7. 【图像处理】双线性插值法扩展图像像素及其代码实现(亚像素)
  8. PyTorch:torch.nonzero——非零元素的定位
  9. ​​​LabVIEW视觉软件使用什么算法
  10. mysql 合计 小计_用SQL实现统计报表中的小计与合计的方法详解