本节摘要:把三个天体的初速全部清零、任其互相坠落——这个极简设定就是下落问题,它是周期解的天然孵化器,也通向 Sitnikov 这类一维混沌的样板间。更深处躺着奇点问题:除碰撞奇点外,夏志宏在 1992 年构造出五体的非碰撞奇点,让质点在有限时间内被甩向无穷远,一举解决了悬置近百年的潘勒韦猜想。本节复盘这两条线,并亲手跑一次 Sitnikov 振荡。
上一节的扫描猎场里初值还带着速度;下落问题(free-fall problem)把速度全部没收:三个天体初速为零,从静止开始互相坠落。别小看这个"什么都没给"的设定——它恰恰是理论家偏爱的猎场,因为初值被压到极致:利用平移、旋转与尺度对称性,全部可能的下落初值只需要两个参数(三角形的形状与大小,大小还能再约掉),比上一节的二维参数平面还要干净。二十世纪中叶起,斯特伦格伦、舒巴特与埃农等人在这个简化世界里系统搜寻,找到了一整批对称周期轨道,其中最著名的是共线等腰的舒巴特型轨道:两侧天体对称地来回换位,中间天体在质心附近振荡,整体像一枚呼吸的弹簧。
下落问题还有一层方法论价值:它是"最坏初值"的试验田。三个静止的天体迟早相互逼近,近距交会与碰撞不可避免——第 2.3 节里奇点对积分器的考验,在这里以最高频出现。因此数值研究下落问题的历史,几乎就是碰撞正则化技术的发展史。
猎物清单上最别致的形态当属 Sitnikov 问题:两颗等质量主星沿椭圆轨道互绕,第三个无穷小质点被限制在过质心、垂直于轨道面的直线上运动——它每次经过轨道面时被双星合力向下拽,飞离后又减速折返,周而复始。整个系统被压缩成一个自由度,小天体的运动就是沿直线的振荡。
一维系统通常与混沌无缘,Sitnikov 问题的特殊之处在于它是时变的:双星的引力随时间按椭圆轨道呼吸,这个"周期驱动力"恰恰是一维系统产生混沌的标准配方。随主星轨道偏心率变化,小天体的命运呈现教科书级的分岔图景:偏心率为零(双星圆轨)时,振荡规则、可预测;偏心率增大到某个临界区,振荡周期开始无规律游走,小天体可能荡得越来越远直至逃逸,也可能被永久捕获——规则与混沌的过渡在这个一维模型里一览无余。它因此成了验证混沌分析工具(第 5 章)的标准实验室。

实验背景:验证一维约化后的 Sitnikov 运动确实由偏心率"拨盘"控制——先跑小偏心率看规则振荡,再加大偏心率看振幅发散。操作:双星取椭圆轨道的解析位置(开普勒方程用简单数值解),小天体只保留竖直坐标 z,方程为 z'' = -\dfrac{z}{\left(z^2 + r(t)^2\right)^{3/2}}(归一化双星总质量为一,r(t) 是小天体到任一主星的距离)。用 RK4 推进并记录振幅。代码如下:
import math def kepler_r(t, e): """双星到质心距离 r(t),按平近点角近似推进(偏心率适中时够用)""" n = 1.0 # 平均角速度,归一化 M = n * t E = M # 牛顿迭代解开普勒方程 for _ in range(60): E = E - (E - e * math.sin(E) - M) / (1 - e * math.cos(E)) return 1.0 - e * math.cos(E) # 归一化半长轴为 1 def sitnikov(e, t_max=200.0, dt=0.001): z, vz, t = 0.5, 0.0, 0.0 # 从轴上 0.5 处静止释放 z_max, z_min = z, z while t < t_max: r = kepler_r(t, e) az = -z / (z * z + r * r) ** 1.5 vz += 0.5 * dt * az z += dt * vz r = kepler_r(t + dt, e) az = -z / (z * z + r * r) ** 1.5 vz += 0.5 * dt * az t += dt z_max, z_min = max(z_max, z), min(z_min, z) return z_max, z_min for e in (0.0, 0.2, 0.4, 0.6): hi, lo = sitnikov(e) print("偏心率", e, " 振幅区间约", round(lo, 3), "到", round(hi, 3))
结果:偏心率为零时,振幅区间稳定、上下对称,振荡像钟摆一样自律;偏心率加到 0.4 上下,区间开始摆动失衡;偏心率 0.6 时振幅在长时间内无规律漂移,某些初值下小天体一去不返(程序里表现为区间端点持续外扩)。解读:规则的来源是圆轨时驱动力严格周期、系统存在不变环面;偏心率引入的谐波成分逐级撕开这些环面——这正是第 5 章 KAM 图景的一维预演,"拨盘"拧过临界值,规则振荡让位于随机游走。这个实验还有个工程注脚:开普勒方程用牛顿迭代只迭代六十次即收敛,说明"解析近似加局部数值"的混合手法在这类约化模型里非常经济。变式:把释放高度从 0.5 改成 1.2 重跑——同一偏心率下,规则与混沌的分界会移动:初值同样是命运的一部分,这正是第 5 章"初值即命运"主题的伏笔。
猎场深处还圈着一座奇点动物园。第一类是碰撞奇点:两体或多体距离趋零,势能发散。它的性质早已摸清——二元碰撞可以通过正则化"平滑穿越",三体同时碰撞则被约束在初值测度为零的集合里,第 2.3 节的桑德曼级数正是绕开它才证明收敛。
第二类要古怪得多:非碰撞奇点——没有任何质点相撞,系统却在有限时间内"丢了魂"。1908 年冯·蔡佩尔给出必要条件:要有质点在有限时间内冲向无穷远。这把问题接到了潘勒韦的百年猜想上:是否存在这样的解?答案直到 1992 年才揭晓:夏志宏构造出五体例子——四颗重星配一颗轻星,轻星在四星的精确配合下来回摆渡,每次都把能量越倒越多,最终在有限时间内沿一条直线奔向无穷远,四星则各奔东西。整个过程没有任何一次碰撞,却发生了"有限时间内的无穷远"——三体世界里造不出来的怪物,五体里真实存在。这一定理把"三体问题"与"N 体问题"的分界线画得清清楚楚:有些病,加一颗星才会发作。
猎物清点完毕。下一章造猎具:最小可用的三体积分器、辛格式的误差对账、庞加莱截面的照片术,以及把本章猎场真正扫一遍的参数扫描流水线。