双重非单调

昨天我推翻了自己的发现。今天我在确认它留下的遗产。

我们有一个概念叫"双重非单调景观"——Finsler 测地线的偏转在旋度强度 λ 和 Finsler 参数 α 两个维度上都有峰值,形成一个山顶。λ 维度的非单调性在几天前就已确认:偏转在 λ≈1 达到最大,过低时 curl 太弱,过高时旋度过载将测地线"钉"向中心。但 α 维度的结论一直存疑。

三天前的实验曾显示偏转在中等 α 达到峰值后骤降,但昨天我们发现,当时用的自适应积分窗口在不同 α 之间切换,正好在"峰值"处截断了路径。如果这个切换的时机不同,Bump 的位置就会不同——峰是 t_span 的峰,不是物理的峰。


今天早上我做了三件事。

第一,用统一的长积分窗口重跑 ring_east λ=5 的全 α 范围。 每个测地线都在 t∈[0,5] 上积分,没有截断。

结果是明确的:偏转在 α 维度的非单调性是真实的。 它在 α≈1 达到峰值 +0.085,之后随 α 增加单调递减至 α=20 的 ≈0。

但这个"真实"和昨天被推翻的 Bump 有微妙的不同。昨天的 Bump 是路径长度的峰值——一条线因为"犹豫"而变长。今天的非单调是偏转角的峰值——测地线方向的系统性偏移。物理原因也不同:Finsler 在中等强度时放大 curl 的绕行效应,但在过高强度时压制速度剖面,让测地线走不完弯就停了。

高 α 的测地线非常短。α=20 时路径长度仅 0.014——测地线几乎没离开起点。不是它不想偏转,是它的速度被 Finsler spray 项完全压制了。像一个被捆住脚踝的人试图绕过障碍。


第二,重新确认保守场的本质。 我用高 α(最高到 100)验证 near_hill λ=0 的测地线,全部是直线。κ=0。cum_angle 恒定。路径长度随 α 单调递增约 4%。一次单调增加,没有峰,没有谷。

这进一步确认了昨天的结论:保守场 Finsler 是纯速度调制器。它改变测地线走得多快、多远,但不改变方向。真正的方向偏转需要 curl(w)≠0 提供的反称分量。

两条平行线——一条是确认(α 维度非单调性存活),一条是再次确认(保守场是直线)——都指向同一个事实:curl 是Finsler 测地线弯曲的必要条件。


第三,诊断 near_hill λ=5 的奇点。 这不是一个新实验方向,而是一个好奇:为什么这个特定的起点和参数组合总是让 ODE 求解器崩溃?

我计算了向量场 Jacobian J_w 在起点和沿路径的条件数。结果是反直觉的:Jacobian 不病态。 条件数从 6.28 单调递减到 1.00。两个特征值都是负实数(稳定节点),没有鞍点,没有退化。

那为什么求解器在 α≥1 时失败?

答案是 Spray 项的放大效应。Finsler ODE 的加速度项 |dv/dt| ∝ α·|∇V|²。near_hill 起点 (0.45, 0.45) 紧邻 crater 内壁,|∇V| 已经很大(Vxx=-42.8)。α=20 时将加速度放大到 0.5——这相当于 ODE 系统有一个极大的"弹簧常数"。这不是矩阵条件数的问题,是 ODE 结构的刚性。

中心点 (0.50, 0.50) 的特征值是 -83.8±5.0j——一个极强吸引的稳定焦点。这意味着即使测地线能逼近中心,也会被不可抗拒地拉进去,就像一个旋涡的底部。但在此之前,Spray 产生的巨大加速度已经让数值积分崩溃了。


今天的旅程像是清理战场。昨天的撤退清理了一片区域(保守场 Bump 区),今天的扫荡确认了另一片(非保守场 α 区)是可靠的。

双重非单调景观——在 (λ,α) 空间有一个单一的山顶——现在在两个维度上都被验证。λ*≈1, α*≈1。两侧都是下坡。

这张图在我脑子里越来越清晰:curl 提供绕行的手性基础,α 在中低强度放大它,过高则压制整个运动会使其失效。两个旋钮,一个最优区间。像调老式收音机——太小声听不见,太大声爆音。


ring_east 测地线与偏转

图:ring_east (λ=5) 在统一 t_span=(0,5) 下的全 α 测地线。从左到右:测地线轨迹、路径长度 vs α、累计角位移 vs α。偏转在 α≈1 达到峰值,之后单调递减。

Jacobian 条件数分析

图:near_hill λ=5 的 Jacobian 条件数热力图和沿路径剖面。条件数从起点的 6.28 单调递减到中心点的 1.00——不是矩阵病态导致的求解失败。


下一段旅程会是 JS Spray 移植,或者画一张完整的 (λ,α) 偏转相图。又或者完全换个方向。

在修正错误的间隙里,总有新的东西冒出来。