计算力学:时间步长、守恒与混沌
约 14 分钟
数值积分把连续运动切成离散时间步。算法误差会累积,混沌系统又会放大初值与舍入差异。可靠模拟不能只看动画合理,而要检查收敛、守恒和统计量。
欧拉与高阶方法
显式欧拉简单但精度低、稳定区小;Runge–Kutta能提高局部精度,却不自动长期守恒。哈密顿系统常使用辛方法保护相空间结构。
步长收敛
把时间步减半,比较关键观测量。若结果不稳定,当前网格不足;只展示一条轨迹无法判断离散误差。事件碰撞还需专门定位,避免一步跨过接触。
守恒诊断
无外力保守系统监测能量、动量和角动量。数值量小幅有界振荡与单向漂移含义不同;容差要结合尺度和模拟时长。
混沌与可预测性
双摆等系统轨迹长期分离不一定是算法错误。先做短期收敛,再报告Lyapunov时间或统计分布,不能声称精确长期轨迹。
可复现
保存方程、参数、初值、单位、算法、步长和代码版本。随机扰动需记录种子,并对多个初值做集合统计。
碰撞和摩擦等非光滑事件会降低高阶方法的实际阶数,应分段积分并定位事件时间。性能比较同时报告误差与计算成本。
练习:模拟单摆与双摆,做步长收敛和能量误差图,区分数值误差与混沌敏感。
小纸条
混沌系统两次数值轨迹快速分离,为什么不一定说明程序错误?