三个系统的 Hamilton 方程
取单位质量和无量纲单位,三个保守系统可以直接比较;谐振频率和开普勒引力参数都取一。
M084 · 数值积分的几何
模拟轨道时能量误差很小,轨迹也可能是错的吗? 完全可能。辛积分器按 Hamilton 方程的几何结构设计,能量误差可以长时间保持很小、有界,算出的物体却仍可能沿轨道越跑越超前或落后,偏离真实轨迹。能量表现、精度、辛性、时间可逆性是四回事,要分别检查。
并排运行 Euler、RK4、辛 Euler 和 Verlet。比较谁长期更贴近真实相图或轨道,能量怎样漂移,每一步映射是否保住局部正则几何、能否倒着走回去。最后把步长减半,挑战运动变化很快的开普勒近日点。
物理教程
背景数值方法把连续的 Hamilton 运动换成离散映射,每一步把正则坐标推到下一个时刻。
为什么值得理解几何数值积分关心两件事:离散方法保住了真实运动的哪些结构,这些结构对长时间运动又意味着什么。
先抓重点
取单位质量和无量纲单位,三个保守系统可以直接比较;谐振频率和开普勒引力参数都取一。
辛 Euler 是一阶方法。它和显式 Euler 的区别在于,漂移时用的是刚更新过的动量。
把一次踢拆成前后两个半踢,得到二阶、可逆的映射。但真实 Hamilton 量并不因此精确守恒;近日点那段步长太粗,照样算不准。
读数用中心差分估算,给出矩阵各元素中最大的偏差。在四维里,只看行列式等于一是更弱的检验。开普勒斑块只是二维投影,不能当作完整的体积测量。
最大能量误差统计全部步;绘图时每种方法保留约 600 个样本。能量曲线平稳,相位误差仍可能越积越大。记录一旦停止,就不再往后预测。
同一种对数变换让微小误差和巨大误差同时可见,还保留能量漂移的正负。摆的参考解把每个粗步分成 32 个和 64 个 RK4 子步,再比较两者。标称周期数按缩放时间里每周期二倍圆周率计算。
容易误解能量误差很小,轨道就一定对。
正确理解能量几乎守恒时,相位误差照样会积累。要和同一时刻的参考状态比。
容易误解辛方法每一步都精确守恒 Hamilton 量。
正确理解步长足够小、能分辨运动时,能量误差通常在有限范围内来回振荡,但真实能量并没有精确守恒。
容易误解只要保住几何结构,大步长也没关系。
正确理解靠近中心的那段运动很快,仍然需要短步长。把步长减半,比较轨道误差,不要只看行列式。
容易误解开普勒投影斑块的面积不变,就证明了辛性。
正确理解开普勒问题的相空间是四维的,完整矩阵检验才给出相关的局部证据。
回看完整的谐振记录,切换选中的方法。
你会看到: 各种颜色用的是同一步长,能量表现却不同:有的增长,有的漂移,有的在有限范围内振荡。用长期 RK4 记录,再把恒定步长减半。
你会看到: 状态误差和能量漂移都随步长变化;局部阶数高,并不是唯一的标准。比较大振幅往返摆和旋转摆两个预设。
你会看到: 这里的参考解是细化后的数值解,没有用谐振近似代替。比较已解析和未解析的近日点,检查完整映射误差,再把步长减半。
你会看到: 辛映射可以保住自己的几何结构,算出的轨迹却仍然很差。