
微分几何(一):空间中的曲线 —— 曲率、挠率和 Frenet 标架
参数化曲线、弧长、曲率、挠率和 Frenet-Serret 装置——完整的空间曲线局部理论。
我第一次在课本里看到"曲率"这个词,配的图是一条蜷成圈的螺旋线,旁边写着 $\kappa = $ 这个 $\tau = $ 那个,公式带一堆叉积。我当时的反应是:“为什么不是直接说这条线弯得有多厉害?“用尺子量行不行?为什么要这么多记号?
后来才明白,问题不在记号上,而在我自己对"弯"这个字想得太轻巧。如果只看一张静态图,“弯"是显而易见的。可一旦要把它变成一个数,就得回答几个细节:在哪个点弯?沿着哪个方向看?换一种参数化(比如把曲线画快一点)这个数会不会变?三维曲线还有一个二维曲线没有的现象。它不仅会"弯”,还会"扭”,从一个平面跳到另一个平面里去。把"弯"和"扭"分开测量,就需要两个数,而不是一个。
这一章的目标就是把"弯"和"扭"这两件事说清楚,并且做到三件事:(1) 给出一对内蕴的标量 $\kappa$ (曲率)和 $\tau$ (挠率),它们不依赖于参数化;(2) 在每个点上构造一个跟着曲线走的标架 $(\mathbf{T}, \mathbf{N}, \mathbf{B})$ ,让"弯"和"扭"有具体的方向感;(3) 证明 $(\kappa, \tau)$ 这两个函数,在差一个刚体运动的意义下,完全决定了曲线。最后这一条是这章最值得记的一句话:一根曲线,在我们关心的几何意义上,就是"每个点上两个数”。
这是高维微分几何的小型预演。后面会出现的所有大词,Gauss 映射、第二基本形式、联络、Riemann 曲率张量,本质都是把今天对"一维对象"做的事情升级到"高维对象"。如果觉得后面那些概念抽象,可以一直回到这一章看:“哦,原来当初对一根曲线就是这么干的。”
如果你想要一张在阅读时保持在脑海中的图片,请记住这张。

你看到的三支箭头,切向量、法向量、副法向量,像一个小陀螺仪一样沿着螺旋线滑动。曲率表示切向量转动的速度;挠率表示这个陀螺仪绕切向量扭转的速度。每个点两个数。这就是全部的故事。
开始之前先交代一下语气。这个系列偏向计算,少讲修辞。我会仔细推导,也会动手算数,因为微分几何有个老毛病:定理写得很漂亮,可一旦要举具体例子,读者手里就糊成一团。直觉藏在数字里。所以后面会有大量螺旋线、抛物面和球面,坐标写明,答案算到底。哪里算起来麻烦,我会直说。
空间中的曲线#
一个常见的初学者疑问:曲线和它的图像是同一回事吗?严格说不是。‘曲线’指的是参数化映射 $\alpha: I \to \mathbb{R}^3$ 这个函数本身;‘图像’指的是 $\alpha(I) \subset \mathbb{R}^3$ 这个点集。同一条图像可以有无数种参数化(走得快、走得慢、倒着走、停一下再走)。微分几何里我们关心的几乎所有量(弧长、曲率、挠率)都是图像的属性,而不是任何具体参数化的属性。这就是为什么后面要花一整节讨论弧长参数化:它从一堆’平等的’参数化里挑出一个’内禀的代表’,让所有公式都简洁起来。


通俗地讲,曲线就是一个动点画出的路径。但这里有个微妙之处:说的是图像(路径上的点集),还是参数化(描述运动的那个函数)?两者都要管。早期不少基础工作,正是为了让定义能把图像的性质和某一套"速度读数"的性质分开。
$$\alpha(t) = \bigl(x(t),\, y(t),\, z(t)\bigr),$$每个分量都是 $C^\infty$ 的。
$t$ 处的速度是 $\alpha'(t) = (x'(t), y'(t), z'(t))$ ,速度大小是 $|\alpha'(t)|$ 。
如果对于每一个 $t$ 都有 $\alpha'(t) \neq 0$ ,则称 $\alpha$ 是正则的。
正则是最小的非退化条件。它保证了每一点都有明确定义的切方向,并防止坍缩到单个 $t$ 值上。去掉它,你可以轻易构造出尖点:$\alpha(t) = (t^2, t^3, 0)$ 在 $t = 0$ 处有 $\alpha'(0) = 0$ ,并且图像在原点处有一个尖角。曲线作为映射仍然存在,但在 $t = 0$ 处几何出现了中断。
$\alpha$ 的重新参数化是 $\beta = \alpha \circ \phi$ ,其中 $\phi: J \to I$ 是区间的微分同胚。重新参数化有两种类型:保定向的($\phi' > 0$ )和反定向的($\phi' < 0$ )。$\beta$ 和 $\alpha$ 的图像一样,只是点的标记变了。
在整个系列中,我将默认正则性并仅考虑保定向的重新参数化等价。每当看到没有进一步限定的“曲线”时,理解为“正则光滑曲线,直到保定向的重新参数化”。原因纯粹是操作性的:涉及 $\mathbf{T}$ 、$\mathbf{N}$ 或 $\kappa$ 的每个公式都需要在某个阶段除以 $|\alpha'|$ 。
还有一层更深的原因。定义曲率,本就是为了提取只依赖图像、不依赖速度的数。接下来具体看到这一点:在弧长参数化下,$\kappa$ 有一个简洁的公式(就是 $|\alpha''|$ ),但在任意参数化下的公式更复杂,涉及叉积来“消除”依赖于参数化的部分。
数值热身#
$$\alpha(t) = (\cos t,\, \sin t,\, 0.4\, t).$$那么 $\alpha'(t) = (-\sin t, \cos t, 0.4)$ ,且 $|\alpha'(t)| = \sqrt{1 + 0.16} = \sqrt{1.16} \approx 1.0770$ 。速度是恒定的,这是这条螺旋线的一个巧合,正好让后面的计算干净不少。
如果我们重新参数化为 $\beta(s) = \alpha(s / \sqrt{1.16})$ ,那么 $|\beta'(s)| = 1$ 。图像没变(还是同一条螺旋线),变的只是点的标记:以单位速度走曲线,$s$ 恰好每次增加一个单位。这就是弧长参数化,后面会发现它省事得多。
插一句螺旋线的普适性。在所有曲率、挠率都为常数的曲线里,螺旋线是唯一的(差一个刚体运动)。这点本章末尾会证(曲线的基本定理)。微分几何的一个小奇迹就在这里:随便给两个正常数,积分出来就是一条螺旋线,而且基本上就是这两个常数能描述的唯一曲线。
弧长和重新参数化#
为什么要花一整节专门讲弧长参数化?因为它把’参数化的速度’和’曲线的形状’分开。同一条螺旋线,可以参数化得很慢(每秒走 0.1 单位),也可以很快(每秒 10 单位)。两种参数化下,$\alpha'$ 的大小不同,二阶导数 $\alpha''$ 的大小也不同,但两条曲线作为 $\mathbb{R}^3$ 里的图像完全一样。‘曲率 $\kappa$ ’ 应该是图像的属性,而不是某个特定参数化的产物。所以一个负责任的定义需要先把参数化的速度剥掉。弧长 $s$ 就是这个剥掉的结果,一种按曲线自身进度来计量的内禀坐标。一旦切到 $s$ ,所有公式立即简化:$|\alpha'(s)| = 1$ 恒成立,二阶导数直接就是 $\kappa$ 乘以法向量,没有任何额外项要消去。
$$L(\alpha; a, b) = \int_a^b |\alpha'(t)|\, dt.$$ $$\int_a^b |\beta'(s)|\,ds = \int_a^b |\alpha'(\phi(s))|\phi'(s)\,ds = \int_{\phi(a)}^{\phi(b)} |\alpha'(t)|\,dt.$$因此,长度是图像的属性,而不是参数化的属性。

其长度为单位。曲线已被重新标记为“单位速度”。

弧长是曲线作为 $\mathbb{R}^3$ 子集的唯一内蕴参数,它不在乎我们碰巧用多快的速度去追踪它。下面内在定义的曲率和挠率最自然地在弧长参数化下计算。当然,在我们必须对特定曲线进行计算时,通常不想显式地求解积分 $s(t)$ (而且往往不能——椭圆的被积函数已经涉及椭圆积分,这些特殊函数的名字来源)。因此,将推导出适用于任意参数化的实用公式,并使用它们进行实际计算,而在理论推理时使用弧长。
工作示例:螺旋线的弧长#
$$L = \int_0^{2\pi}\sqrt{1.16}\,dt = 2\pi\sqrt{1.16} \approx 6.7298.$$ $$\tilde\alpha(s) = \bigl(\cos(s/\sqrt{1.16}),\, \sin(s/\sqrt{1.16}),\, 0.4\, s/\sqrt{1.16}\bigr).$$工作示例:椭圆和椭圆积分#
$$L = 4 a \int_0^{\pi/2}\sqrt{1 - e^2\cos^2 t}\,dt = 4 a\, E(e),$$这是第二类完全椭圆积分。这是弧长无法用初等函数表达的最简单曲线之一,“椭圆积分"的名字就是这么来的。所以"尽量用弧长参数化"其实是"能用的时候才用”,实际上几乎没有哪条解析曲线的 $s^{-1}$ 有封闭形式。
一句话:弧长在理论上漂亮,算起来却恼人。证明和公式里用它,真到具体例子,大家还是改用对参数友好的叉积公式。
切向量和曲率#
为什么单位切向量是合理的研究起点?因为我们想分离’曲线弯多少’和’曲线参数化得多快’这两件事。如果不归一化,速度向量 $\alpha'(t)$ 里既有形状信息也有参数化信息。除以模长,$\mathbf{T} = \alpha'/|\alpha'|$ 只剩’指向哪’,把’走得多快’扔掉。再看 $\mathbf{T}$ 怎么变:它的变化率(除以弧长,不除以参数 $t$ )才是纯几何的,与我们怎么遍历曲线无关。这就是为什么所有曲率公式都从单位切向量开始:归一化是把’参数化的污染’清掉的第一步。
$$2\mathbf{T}\cdot \mathbf{T}' = 0,$$因此 $\mathbf{T}'(s)$ 与 $\mathbf{T}(s)$ 正交。$\mathbf{T}'$ 的大小衡量了当我们沿曲线行走时单位切向量旋转的速度。

$\kappa(s) = |\mathbf{T}'(s)| = |\alpha''(s)|$ 。
直线的 $\mathbf{T}' = 0$ ,因此 $\kappa = 0$ 恒成立。半径为 $r$ 的圆,曲率 $\kappa = 1/r$ ,半径 $r$ 越小弯得越急,$\kappa$ 越大。“急转弯"的直觉没错,这里把它钉成了一个精确的量:切方向相对于弧长的变化率。

$\mathbf{N}$ 指向曲率中心的方向:它是曲线“试图弯曲”的方向。对于平面上的圆,$\mathbf{N}$ 总是指向圆心。对于螺旋线,$\mathbf{N}$ 水平指向内侧,朝向螺旋线的轴。
任意参数化下的曲率计算#
$$\alpha'' = s''\mathbf{T} + (s')^2 \kappa \mathbf{N}.$$ $$\alpha'\times\alpha'' = (s')^3\kappa\,(\mathbf{T}\times\mathbf{N}),$$ $$\boxed{\kappa = \frac{|\alpha'\times\alpha''|}{|\alpha'|^3}}.$$叉积干净地消掉了依赖参数化的那一项 $s''\mathbf{T}$ (因为 $\mathbf{T}\times\mathbf{T} = 0$ ),只留下参数化不变的几何信息。这一招在经典微分几何里会反复出现,值得记住。
$$\kappa = \frac{\sqrt{1.16}}{1.16^{3/2}} = \frac{1}{1.16} \approx 0.8621.$$果然是常数,因为螺旋运动均匀倾斜。和单位圆($\kappa = 1$ )比一下,螺旋线弯得稍微缓一点,因为向上的漂移"分走"了一部分本可用于弯曲的运动。直观地说:把螺旋线投影到 $xy$ 平面,得到一个单位圆($\kappa = 1$ ),抬到三维就把曲率稀释了。

第二个工作示例:抛物线#
$$\kappa(t) = \frac{2}{(1+4t^2)^{3/2}}.$$在 $t = 0$ (顶点)处,$\kappa = 2$ 。当 $|t|\to\infty$ 时,$\kappa\to 0$ ——抛物线逐渐变直。顶点处的曲率半径是 $1/2$ ;如果你放置一个半径为 $1/2$ 的圆与抛物线在原点相切,它将与抛物线在二阶上匹配。这就是密切圆,拉丁文里的"亲吻圆”,它装着曲率的全部几何含义。
当参数沿曲线扫过时,密切圆的圆心轨迹画出一条新曲线,称为渐屈线。渐屈线记录了所有曲率中心的轨迹,本身也很有看头:椭圆的渐屈线是四尖点的星形线,抛物线的渐屈线是半立方抛物线。

曲率是曲线的第一个几何不变量。它独立于保定向的重新参数化和刚体运动。两条 $\kappa(s)$ 相同的曲线"几乎"一样,差别只在于它们各自怎样扭出平面。这点残余的扭曲,正是下面要捕捉的。
副法向量和挠率#
曲率 $\kappa$ 已经描述了曲线在某个平面里弯多少,但它没有捕捉这个平面本身在三维空间里转不转。一个简单的对比:把一条曲线整个画在一张纸上,然后把这张纸卷起来;曲线变成了三维曲线,但它没有真正离开它原本的二维平面——只不过这个平面随着曲线弯了。这种情况下,挠率 $\tau = 0$ 。挠率非零,意味着曲线确实钻出了它的密切平面,比如螺旋线那个垂直分量,让它每走一段就跳出当前密切平面进入下一个。这就是’挠’字的来历:它量的是曲线扭出当前平面的速度。
$$\mathbf{B}(s) = \mathbf{T}(s) \times \mathbf{N}(s).$$
由 $\mathbf{T}$ 和 $\mathbf{N}$ 张成的平面(密切平面)在评估点处包含曲线的二阶近似。几何上,它是该点处“最佳拟合”曲线的平面。

由 $\mathbf{N}$ 和 $\mathbf{B}$ 张成的平面称为法平面(垂直于运动方向);由 $\mathbf{T}$ 和 $\mathbf{B}$ 张成的平面是整直平面(当曲线投影到该平面上时,在投影点处的曲率为零)。这三个平面——密切平面、法平面、整直平面——有时被画成一个小正交“十字”沿着曲线滑动。
对于平面曲线,密切平面就是曲线所在的平面,$\mathbf{B}$ 是常数。对于真正的三维曲线,$\mathbf{B}$ 会旋转,而这旋转正是挠率所测量的。
$$\mathbf{B}'(s) = -\tau(s)\,\mathbf{N}(s).$$负号是标准约定;在这种情况下,右旋上升的螺旋线将有 $\tau > 0$ 。
$$\boxed{\tau = \frac{(\alpha'\times\alpha'')\cdot\alpha'''}{|\alpha'\times\alpha''|^2}}.$$推导类似于曲率公式的推导。将 $\alpha'''$ 表达在 Frenet 基下并与 $\alpha'\times\alpha'' = (s')^3\kappa\mathbf{B}$ 点积;唯一存活的分量是 $\alpha'''$ 的 $\mathbf{B}$ 分量,它涉及 $\tau$ 。
$$\tau = \frac{0.4}{1.16} \approx 0.3448.$$常数。螺旋线具有常曲率和常挠率。事实上,这几乎是特征化的(见下面的基本定理)。
挠率的符号:一个小但有用的合理性检查#
右旋螺旋线(上面的标准螺旋线,垂直漂移为正)有 $\tau > 0$ 。将螺旋线替换为其镜像——例如,在第三分量中交换 $t\mapsto -t$ ,$\alpha(t) = (\cos t, \sin t, -0.4 t)$ ——翻转 $\tau$ 的符号但 $\kappa$ 不变。因此,挠率是一个带符号的量,对 $\mathbb{R}^3$ 的定向敏感,而曲率是无符号的。这种不对称性直接源于使用叉积,而叉积又依赖于右手规则。
挠率是第二个几何不变量。平面曲线有 $\tau \equiv 0$ ;反之,如果 $\tau \equiv 0$ 则曲线位于固定平面内(证明:$\mathbf{B}$ 是常数,因此函数 $f(s) = (\alpha(s) - \alpha(s_0))\cdot \mathbf{B}$ 导数为零,故恒为零——曲线保持在通过 $\alpha(s_0)$ 且垂直于 $\mathbf{B}$ 的平面内)。曲率和挠率一起区分了平面摆动和真正的三维扭曲。用不变量的语言来说:$\kappa$ 是 $SO(3)$ -不变量,$\tau$ 是 $O(3)$ -伪不变量(它在定向反转时会带上符号)。
Frenet-Serret 公式#
Frenet-Serret 矩阵为什么斜对称?因为标架 $(\mathbf{T}, \mathbf{N}, \mathbf{B})$ 在每一点都正交,构成一个 $\mathrm{SO}(3)$ 矩阵的连续族。$\mathrm{SO}(3)$ 在单位元处的切空间(也就是李代数 $\mathfrak{so}(3)$ )就是斜对称矩阵的空间。所以一个连续变化的正交标架,它的’瞬时角速度’必须落在斜对称矩阵里。这正是 Frenet-Serret 公式不起眼却关键的几何来源,也是后面所有’移动标架’方法(曲面上的 Cartan 标架、流形上的活动标架)的共同模板。
$$\mathbf{N}' = (\mathbf{B}\times\mathbf{T})' = \mathbf{B}'\times\mathbf{T} + \mathbf{B}\times\mathbf{T}' = -\tau\mathbf{N}\times\mathbf{T} + \kappa\mathbf{B}\times\mathbf{N} = -\kappa\mathbf{T} + \tau\mathbf{B},$$得到:

这些是Frenet-Serret 公式。系数矩阵是斜对称的,正好满足正交标架随时间演化的需要。

有特征值 $0$ 和 $\pm i\sqrt{\kappa^2 + \tau^2}$ ,其中零特征值对应于Darboux 向量 $\boldsymbol{\omega} = \tau\mathbf{T} + \kappa\mathbf{B}$ 。几何上,$\boldsymbol{\omega}$ 是 Frenet 标架的瞬时旋转轴。时间 $s + ds$ 处的标架可以通过时间 $s$ 处的标架绕 $\boldsymbol{\omega}$ 旋转一个角度 $|\boldsymbol{\omega}|\,ds = \sqrt{\kappa^2+\tau^2}\,ds$ 得到。因此,标架的总角速度是 $\sqrt{\kappa^2+\tau^2}$ ,分解为“扭转”部分($\tau\mathbf{T}$ ,绕切向量)和“弯曲”部分($\kappa\mathbf{B}$ ,绕副法向量)。
Frenet-Serret 系统是标架的封闭 ODE。给定 $\kappa(s)$ 、$\tau(s)$ 和初始标架 $s = 0$ ,可以向前积分并恢复整个移动标架,然后通过积分 $\mathbf{T}$ 恢复 $\alpha$ 本身。这是下一个定理背后的引擎。
曲线的基本定理#
下面这个结论是核心:设 $\kappa: I \to \mathbb{R}_{>0}$ 和 $\tau: I \to \mathbb{R}$ 是光滑的。存在一条正则曲线 $\alpha: I \to \mathbb{R}^3$ ,按弧长参数化,其曲率为 $\kappa$ 且挠率为 $\tau$ 。此外,这条曲线在 $\mathbb{R}^3$ 的刚体运动下是唯一的。
$$F'(s) = \Omega(s)F(s),\qquad F(0) = I_3,$$其中 $F$ 是一个 $3\times 3$ 矩阵,其行分别是 $\mathbf{T}$ 、$\mathbf{N}$ 、$\mathbf{B}$ ,$\Omega(s)$ 由 $\kappa(s), \tau(s)$ 构建。$\Omega$ 的斜对称性迫使 $F(s)$ 保持正交:$(FF^T)' = F'F^T + F (F')^T = F\Omega^T F^T + F\Omega F^T = F(\Omega + \Omega^T)F^T = 0$ ,因此 $F(s)F(s)^T = F(0)F(0)^T = I$ 。然后 $\alpha(s) = \int_0^s \mathbf{T}(u)\,du$ 是所需的曲线。
唯一性的草图证明: 如果 $\beta$ 是另一条具有相同 $\kappa, \tau$ 的曲线,应用刚体运动使 $\beta(0)$ 与 $\alpha(0)$ 对齐,并使 $\beta$ 在 $0$ 处的 Frenet 标架与 $\alpha$ 的 Frenet 标架对齐。现在两个标架都满足相同的 ODE 且具有相同的初始条件;它们重合。积分后,$\alpha = \beta$ 。$\square$
这是 $(\kappa, \tau)$ “确定”曲线的确切含义。它们是一维对象的度量的类似物:知道它们就等于知道了曲线。
工作推论:从 $(\kappa, \tau)$ 得到螺旋线#
$$\alpha(s) = \biggl(\frac{\kappa}{\kappa^2+\tau^2}\cos(\omega s),\, \frac{\kappa}{\kappa^2+\tau^2}\sin(\omega s),\, \frac{\tau}{\kappa^2+\tau^2}\,\omega s\biggr)$$其中 $\omega = \sqrt{\kappa^2+\tau^2}$ 。这是一个半径为 $r = \kappa/(\kappa^2+\tau^2)$ 且螺距(每圈垂直前进)为 $h = 2\pi\tau/(\kappa^2+\tau^2)$ 的螺旋线。检查:$\kappa^2+\tau^2 = \kappa^2 + \tau^2$ ,且 $r^2 + (h/2\pi)^2 = (\kappa^2+\tau^2)/(\kappa^2+\tau^2)^2 = 1/(\kappa^2+\tau^2) = 1/\omega^2$ ,因此 $r$ 和 $h/2\pi$ 生活在 $(r, h/2\pi)$ 平面上半径为 $1/\omega$ 的圆上。当 $\tau\to 0$ 时,螺旋线扁平化为一个圆(半径 $1/\kappa$ ,无螺距);当 $\kappa\to 0$ 时,它变成一条直线。
设 $\kappa = 1/1.16$ ,$\tau = 0.4/1.16$ ,你将恢复(经过刚体运动)原来的 $\alpha = (\cos t, \sin t, 0.4 t)$ 。
换句话说,在刚体运动下,螺旋线是唯一曲率、挠率都为常数的曲线。正因如此,凑近看,每一根螺丝、每一根弹簧、每一条 DNA 双链都长一个样。
经典曲线之旅#
为什么花一整节算各种经典曲线的 $\kappa$ 和 $\tau$ ?一来把抽象公式落到具体计算上,读者亲手算一遍,才会真信公式是对的;二来这些经典曲线(圆、抛物线、椭圆、心脏线、对数螺线、Viviani 曲线)是后续微分几何里反复出场的’标准测试场’。每当一个新理论被提出,第一件事都是问:它在球面、环面、悬链面这些经典对象上预测什么?如果连这些都对不上,那这个理论就有问题。所以这一节的计算不是装饰,而是把曲线理论的’词汇表’刻进脑子里:以后一听到’对数螺线’,就能立刻想到’$\kappa$ 指数衰减、与位置向量夹角恒定’。
数值示例巩固了这一装置。我将花时间计算一些标准曲线上的 $\kappa$ 和 $\tau$ 。

考虑平面圆:$\alpha(t) = (r\cos t, r\sin t, 0)$ 。那么 $|\alpha'| = r$ ,$\alpha'\times\alpha'' = (0,0,r^2)$ ,$|\alpha'\times\alpha''| = r^2$ ,因此 $\kappa = r^2/r^3 = 1/r$ 。且 $\alpha''' = (r\sin t, -r\cos t, 0)$ 与 $\alpha'\times\alpha''$ 的点积为零(它位于 $xy$ 平面上),因此 $\tau = 0$ 。正如预期的那样。
心脏线:$\alpha(t) = (a(2\cos t - \cos 2t), a(2\sin t - \sin 2t), 0)$ 描绘了一个心形图案,在 $t = 0$ 处有一个尖点。曲线在尖点外是正则的;远离那里,$\kappa$ 可以计算出来,结果是 $\kappa(t) = 3/(8 a |\sin(t/2)|)$ 。注意:当 $t\to 0$ 时,$\kappa\to\infty$ 。尖点是曲率炸开的地方,说得客气点,就是曲线"猛地拐了个向"。
伯努利双纽线:$\alpha(t) = \bigl(\cos t/(1+\sin^2 t), \sin t \cos t/(1+\sin^2 t), 0\bigr)$ 是一个八字形。它是平面的($\tau = 0$ )但在原点处自交。曲线作为参数化曲线是正则的,但图像不是一个嵌入子流形。
对数螺线:$\alpha(t) = (e^{kt}\cos t, e^{kt}\sin t, 0)$ 对于 $k > 0$ 。计算得到 $\kappa(t) = e^{-kt}/\sqrt{1+k^2}$ 。于是曲率指数衰减:螺线越往外展,就越"直"。这也解释了对数螺线为何出现在鹦鹉螺壳、松果和罗马花椰菜上:这种几何增长的对数导数恒定,正是 $e^{kt}$ 的脾性。
对数螺线还有一个性质:切向量 $\mathbf{T}$ 与位置向量 $\alpha$ 的夹角恒定。(计算 $\alpha\cdot\alpha'/|\alpha||\alpha'|$ 。)这是等角性质,它在所有平面曲线中表征了对数螺线。
Viviani 曲线:$\alpha(t) = (1+\cos t, \sin t, 2\sin(t/2))$ 是圆柱 $(x-1)^2+y^2 = 1$ 与球 $x^2+y^2+z^2 = 4$ 的交线。$\kappa$ 和 $\tau$ 在这里都是非平凡的;你自己计算比我在纸上写出来更有收获。形状是在球面上的八字形,有时称为“球面双纽线”。
星形线:$\alpha(t) = (\cos^3 t, \sin^3 t, 0)$ 在 $t = 0, \pi/2, \pi, 3\pi/2$ 处有尖点。尖点之间曲率有限,但在尖点处曲率爆炸。星形线是平面的但充满了角落;它是小圆在大圆内滚动时一个点的轨迹(次摆线)。
环面结:$\alpha(t) = ((R + r\cos pt)\cos qt, (R + r\cos pt)\sin qt, r\sin pt)$ 且互质的 $p, q$ 追踪一个闭合曲线,该曲线缠绕在环面上,小圈缠绕 $p$ 次,大圈缠绕 $q$ 次。$(2,3)$ 结是三叶结;$(3,2)$ 也是三叶结(镜像)。曲率和挠率振荡但保持有界。结是拓扑学的入口,几何和拓扑之间的联系将在我们的 Gauss-Bonnet 章节中变得明确。
极限、推广和下一步#
关于局部理论的一些诚实的注意事项。
当 $\kappa = 0$ 时,Frenet 标架失效。在拐点处,主法向量 $\mathbf{N}$ 未定义。这不是曲线的缺陷而是标架的缺陷。Bishop 标架(一个“相对平行”的替代品)用两个平行传输的法向量代替 $\mathbf{N}$ 和 $\mathbf{B}$ ,并且处处存在。它是计算机图形学和管状/挤压算法的标准工具,因为 Frenet 标架在拐点附近爱打转,会让纹理和挤压截面闪烁。Bishop 标架在初始旋转选择上是唯一的,因此它有一个连续的自由度;Frenet 标架在 $\kappa > 0$ 处是规范的。
在高维空间中,比如 $\mathbb{R}^n$ 中,曲线在每一点都有广义 Frenet 标架 $(\mathbf{e}_1, \ldots, \mathbf{e}_n)$ 和 $n - 1$ 个曲率函数 $\kappa_1, \ldots, \kappa_{n-1}$ ,由一个 $n\times n$ 斜对称导数矩阵相关联。基本定理可以扩展。我们在系列中不需要这个,但要知道这个装置可以干净地推广是好的。
关于光滑性,我到处都假设了 $C^\infty$ 。对于基本定理,我们只需要 $C^3$ (这样 $\alpha'''$ 存在且连续)。对于大多数工程应用,$C^2$ 足够讨论 $\kappa$ 但不足以讨论 $\tau$ 。样条,CAD 中常见的分段多项式曲线,通常在节点处只有 $C^2$ ,即使曲率连续,挠率也可能在那里跳跃。在这种节点上画一个动画化的 Frenet 标架,你会看到 $\mathbf{B}$ 抖一下;那不是数值误差,是曲线本身在那一点上,把"怎么弯"和"怎么扭"两件事接得不够光滑。
关于全局曲线。我整篇都在讲局部理论:在一个点附近 $\kappa, \tau$ 决定了曲线长什么样。全局问题是另一回事,而且要难得多。比如:闭合凸平面曲线的全曲率 $\oint \kappa\,ds$ 等于 $2\pi$ (Hopf 的旋转角定理);空间中的闭合曲线的全曲率至少是 $2\pi$ ,等号成立当且仅当曲线是平面凸的(Fenchel 定理);如果曲线还是打结的,全曲率至少是 $4\pi$ (Fary–Milnor 定理)。这些都是"积起来"的命题:把局部的 $\kappa$ 沿曲线积分,就读出了拓扑信息。这种从局部到全局的过渡是微分几何反复出现的主题,到 Gauss–Bonnet 那一章会成为主旋律。
关于"曲线只是 1 维流形"的视角。从更高的角度看,这一章的全部内容只是一个事实:一维黎曼流形的内蕴几何是平凡的(任何两条等长曲线都内蕴等距),所以所有几何都来自嵌入。$\kappa$ 和 $\tau$ 度量的不是曲线本身,而是它坐在 $\mathbb{R}^3$ 里的方式。这跟二维曲面的情形恰好相反:曲面有内蕴曲率(Gauss 曲率),不依赖于嵌入。所以读完这一章,可以把"曲线"放到一边,下一章我们要研究的是真正有几何的对象:曲面。
更深入的例子与常见误区#
这一节是承重墙。前面几节给出了定义,这里的目的是让你算得足够吃力,好真切感受到定义带来的阻力。我会指出初学者容易踩坑的地方,并把每个抽象概念和它真正发挥作用的场景连起来。
弧长与重新参数化的完整算例#
$$|\gamma'(t)|^2 = 1 + 4t^2 + 4t^4 = (1 + 2t^2)^2,$$ $$s(t) = \int_0^t (1 + 2u^2)\, du = t + \tfrac{2}{3} t^3.$$把 $t=1$ 代进去,弧长 $s = 5/3$ 。你想把 $s = t + \tfrac{2}{3} t^3$ 反解出 $t$ 的显式公式,得用卡尔达诺公式,但只要你给定一个具体的 $s$ ,数值方法马上就能算出对应的 $t$ 。关键点在于:只要 $|\gamma'| > 0$ ,单位速率重新参数化 $\tilde{\gamma}(s) = \gamma(t(s))$ 就一定存在,哪怕显式表达式长得难看。这正是本章所有定理都针对单位速率曲线陈述的原因:你只管假设反函数存在,推导时不用写出它,繁琐的账目自然一笔勾销。
曲率与挠率的完整算例#
螺旋线 $\gamma(t) = (\cos 2t, \sin 2t, t)$ 是检验计算的标准试金石。我们一步步算: $\gamma'(t) = (-2\sin 2t, 2\cos 2t, 1)$ ,速率 $|\gamma'| = \sqrt{4 + 1} = \sqrt{5}$ ,是个常数。 $\gamma''(t) = (-4\cos 2t, -4\sin 2t, 0)$ ,模长 $|\gamma''| = 4$ 。 $\gamma'''(t) = (8\sin 2t, -8\cos 2t, 0)$ 。
曲率公式是 $\kappa = |\gamma' \times \gamma''| / |\gamma'|^3$ 。叉乘结果是 $(4\sin 2t, -4\cos 2t, 8)$ ,模长 $\sqrt{16 + 64} = \sqrt{80} = 4\sqrt{5}$ 。代入得到 $\kappa = 4\sqrt{5} / (\sqrt{5})^3 = 4\sqrt{5} / 5\sqrt{5} = 4/5$ 。曲率恒定。
挠率公式是 $\tau = \det[\gamma', \gamma'', \gamma'''] / |\gamma' \times \gamma''|^2$ 。混合积展开成行列式 $\det\begin{pmatrix} -2\sin 2t & 2\cos 2t & 1 \\ -4\cos 2t & -4\sin 2t & 0 \\ 8\sin 2t & -8\cos 2t & 0 \end{pmatrix} = 1 \cdot (32\cos^2 2t + 32 \sin^2 2t) = 32$ 。于是 $\tau = 32/80 = 2/5$ 。挠率也恒定。
两个不变量都是常数,这正是广义螺旋线的定义特征。取 $t=0$ 时:$T = \gamma' / |\gamma'| = (0, 2, 1)/\sqrt{5}$ ,$N = \gamma'' / |\gamma''| = (-1, 0, 0)$ ,$B = T \times N = (0, -1, 2)/\sqrt{5}$ 。验算正交归一性:$T \cdot N = 0$ ,$T \cdot B = (0 \cdot 0 + 2 \cdot (-1) + 1 \cdot 2)/5 = 0$ ,$N \cdot B = 0$ ,$|T|^2 = (0 + 4 + 1)/5 = 1$ ,$|B|^2 = (0 + 1 + 4)/5 = 1$ 。标架确实正交归一,Frenet 构造保证了这一点。
反例:Frenet 标架何时失效#
Frenet 构造要求 $\kappa > 0$ ,这样才能定义 $N = T'/|T'|$ 。一旦遇到 $\kappa = 0$ 的点,主法线就没了定义。我拿 $\gamma(t) = (t, 0, t^3)$ 举例。算出 $\gamma'' = (0, 0, 6t)$ ,它在 $t = 0$ 处直接为零。曲线在这里经过一个瞬时拐点,局部看起来像直线。哪怕 $\gamma$ 是 $C^\infty$ 光滑的,副法线 $B$ 也会在 $t=0$ 两侧发生不连续的翻转。
解决办法是 Bishop 标架 (极小旋转标架)。它不用二阶导数,改用平行移动把 $N$ 沿着曲线推下去。这里有个教训:Frenet 标架只是 附着在曲线上的坐标系,它和所有坐标系一样,自带奇点。曲线的几何是实实在在的,但标架有时并不是描述它的好地图。
初学者常踩的坑#
初学者经常把平面曲线的 有号曲率 和空间曲线的 无号曲率 混为一谈。有号版本取值在 $\mathbb{R}$ 里,它告诉你曲线相对于选定法线往哪边弯;无号版本取值在 $[0, \infty)$ 里,它只管弯得有多急。你把空间曲线拍扁到平面上,量值对得上,但有号版本多带了一截信息,这截信息取决于定向。直接后果是:对一条封闭平面曲线,$\int \kappa\, ds$ 在有号情形下给出 $2\pi \cdot (\text{turning number})$ ,在无号情形下则给出一个严格更大的数。Whitney-Graustein 定理和 Gauss-Bonnet 定理都依赖有号版本。你要是哪天在教材里看到“简单闭曲线满足 $\int \kappa\, ds = 2\pi$ ",先确认他们说的是有号曲率;拿一条花生形状的曲线去算,无号积分一定严格大于 $2\pi$ 。
第二个坑是把弧长和弦长搞混。对一条从 $a$ 走到 $b$ 的空间曲线,弦长 $|\gamma(b) - \gamma(a)|$ 永远被弧长压着,只有曲线退化成直线时两者才相等。这是把三角不等式套在积分上得到的度量表述。这也解释了为什么用折线逼近曲线时,算出来的结果永远是弧长的 下界,绝不可能给出上界。
物理与工程里的实际用处#
做计算机图形学时,你沿着曲线扫掠一根管子来画电缆或头发丝,必须把一套标架沿着曲线推下去,好给截面定朝向。你要是用 Frenet 标架,只要碰到 $\kappa = 0$ 的地方(比如分段曲线里的直线段),画面就会冒出肉眼可见的翻转。工业级渲染器因此改用 Bishop 标架,也就是平行移动的版本。代价是 Bishop 标架会带一个整体扭转,这个扭转量取决于曲线的挠率积分。画动画无所谓,但做 DNA 建模里的带状结构时,这个扭转量就至关重要了。
航空航天领域里,机动飞机的飞行轨迹也用类似 Frenet 的方程描述。那里的“曲率”对应 过载系数(横向加速度除以重力),“挠率”对应 滚转角速度。把 Frenet-Serret 方程换成这些物理量写出来,直接就是飞机的运动学方程。飞行员受训时,脑子里跑的就是 $T$ 、$N$ 、$B$ 这套逻辑,只是他们从来不用这三个字母。
分子生物学里,闭合 DNA 环的缠绕数(writhe)和扭转数(twist)是积分不变量,它们直接由曲线的挠率和标架构造出来。Calugareanu-Fuller-White 定理(连环数 = 扭转数 + 缠绕数)给闭合带标架曲线加了一条拓扑约束,这条约束有实打实的生物学后果:DNA 复制时,拓扑异构酶管理的正是这些整数不变量。
第二个算例:平面闭曲线与旋转数#
$$\kappa(\theta) = \frac{x' y'' - y' x''}{(x'^2 + y'^2)^{3/2}} = \frac{ab}{(a^2 \sin^2\theta + b^2 \cos^2\theta)^{3/2}}.$$取 $a = 2, b = 1$ ,$\kappa$ 的值域从 $\kappa_{\min} = 1/4$ (长轴端点)一路跑到 $\kappa_{\max} = 2$ (短轴端点)。总转角是 $\int_0^{2\pi} \kappa(\theta) |\gamma'(\theta)|\, d\theta = 2\pi$ ,旋转数定理保证了它分毫不差。在同一个区间上算无号积分,凸曲线给出的结果一样,非凸曲线给出的结果则严格更大。这里最能让你体会到:“总有号曲率”是个 拓扑 不变量——你光滑地捏扁椭圆,它纹丝不动;而“总无号曲率”是几何量,它会跟着变。简单闭曲线不管长成什么样子,$\int \kappa\, ds$ 永远等于 $2\pi$ 。这是你第一次尝到 Gauss-Bonnet 定理的滋味,第五篇文章我们会专门证明它。
带着更尖锐的问题看“下一章”#
下一篇文章要从一维曲线跨到二维曲面。这一步跨度比看起来大得多,因为曲面再也没有典范的参数化——没有自然的弧长,只有 面积形式。为了接住这一步,你脑子里得先存好三个问题:
(1) 曲线上,“速率”是个标量;曲面上,对应的东西是个 双线性形式(第一基本形式),它一次吞下两个切向量。为什么一个数不够用了? (2) 曲线上,曲率靠 $T$ 转得多快来定义;曲面上,根本没有唯一的 $T$ ,对应物是 形状算子,它是切平面上的线性映射。你怎么把一个线性映射压成不变量,就像曲率把导数压成标量那样? (3) 曲线上,内蕴几何和外蕴几何 trivial 地重合(弧长是内蕴的,曲率是外蕴的,故事到此为止)。曲面上,这两者分道扬镳,它们之间的裂缝就是本系列剩余全部文章的主题。你该用什么正确的方式把它们隔开?
你现在手里的 Frenet 机器正是最对口的准备:它教你透过 附着在曲线上的标架 去读曲线。下一篇文章对曲面做同样的事,只不过标架变成二维的,控制它变化的方程也变成了矩阵值。读下一篇文章时,你只管问自己:“如果我把曲面限制在它上面的一条曲线上,这些公式怎么退化回 Frenet-Serret 方程?”它们全都会退化回去。追踪这个退化过程,是把新抽象概念钉在实处的最干净做法。
最后一个算例:摆线与总转角#
单位圆滚动时描出的摆线 $\gamma(t) = (t - \sin t, 1 - \cos t)$ 是个极好的测试用例。算出 $\gamma'(t) = (1 - \cos t, \sin t)$ ,速率平方 $|\gamma'(t)|^2 = (1 - \cos t)^2 + \sin^2 t = 2(1 - \cos t) = 4\sin^2(t/2)$ ,于是 $|\gamma'(t)| = 2|\sin(t/2)|$ 。完整一拱($t \in [0, 2\pi]$ )的弧长是 $\int_0^{2\pi} 2 \sin(t/2)\, dt = -4\cos(t/2)|_0^{2\pi} = 8$ 。一拱的长度正好是 $8$ ,一个干净的整数,尽管这条曲线本身是超越的。这是 Wren 在 1659 年得出的著名结果。
平面有号曲率公式是 $\kappa = (x'y'' - y'x'')/|\gamma'|^3$ 。算出 $x'' = \sin t$ ,$y'' = \cos t$ ,于是 $x'y'' - y'x'' = (1-\cos t)\cos t - \sin t \cdot \sin t = \cos t - \cos^2 t - \sin^2 t = \cos t - 1$ 。代入得到 $\kappa = (\cos t - 1)/(2\sin(t/2))^3 = -2\sin^2(t/2)/(8\sin^3(t/2)) = -1/(4\sin(t/2))$ 。曲率在尖点($t = 0, 2\pi$ )处发散,在拱顶($t = \pi$ )处等于 $-1/4$ 。尖点恰恰是 $|\gamma'| = 0$ 的地方,Frenet-Serret 机器的正则性假设在这里彻底失效。一拱的总有号转角是 $\int_0^{2\pi} \kappa(t) |\gamma'(t)|\, dt = \int_0^{2\pi} -2\sin(t/2) /(4\sin(t/2))\, dt = -\pi$ 。摆线一拱转过了 $\pi$ 弧度——也就是半圈。尖点补上了缺失的转角,让滚动圆的几何图景重新严丝合缝。
下一步#
我先把工具箱合上。这一章攒下的东西是:弧长参数化把"任意曲线"压成"按速度 1 行进的曲线",于是切向量、法向量、副法向量构成一个内禀的标架;$\kappa, \tau$ 是这个标架旋转的速率;Frenet–Serret 公式把它们打包成一个一阶 ODE 系统;基本定理说这两个标量函数完全决定了曲线(差一个刚体运动)。
下一章要把维度提一档。把曲线换成曲面之后,“切向量"变成"切平面”,“切线方向上的运动"变成"两参数的局部坐标图”。我们会先问最朴素的问题:曲面上两点之间走多远?两条切方向夹角多少?一小块面元有多大?这些都不需要任何"曲面在 $\mathbb{R}^3$ 里怎么弯"的信息,只需要第一基本形式,一个 $2\times 2$ 的对称正定矩阵 $\mathrm{I} = \begin{pmatrix} E & F \\ F & G \end{pmatrix}$ 。
第一基本形式是从曲线那里继承下来的弧长概念在 2D 的复活。它告诉我们曲面的内蕴几何,也就是一只完全活在曲面上、不知道外面还有 $\mathbb{R}^3$ 的小蚂蚁所能感受到的全部几何。把内蕴这件事讲清楚之后,再回头处理"曲面如何嵌入",那就是第二基本形式和高斯曲率的地盘,也是这门课真正开始变得有趣的地方。
微分几何 12 篇
- 01 微分几何(一):空间中的曲线 —— 曲率、挠率和 Frenet 标架 当前
- 02 微分几何(二):曲面与第一基本形式 —— 内在测量
- 03 微分几何(三):形状算子——曲面的曲率
- 04 微分几何(四):内蕴几何 —— 惊人定理与测地线
- 05 微分几何(五):高斯-博内定理 —— 几何与拓扑的交汇点
- 06 微分几何(六):光滑流形 —— 超越嵌入曲面的几何
- 07 微分几何(七):向量场、流和李括号
- 08 微分几何(八):微分形式 —— 流形上积分的自然语言
- 09 微分几何(九):流形上的积分与斯托克斯定理
- 10 微分几何(十):黎曼几何 — 度量、联络和平行移动
- 11 微分几何(十一):黎曼几何中的曲率 —— 黎曼、里奇和标量
- 12 微分几何(十二):纤维丛、特征类与物理学