新闻动态

同样的弹簧公式为什么更新顺序会改变长期运动:规则练习第07例

2026-11-09

离散模拟每一步都要先后更新速度与位置。即使使用同一条恢复力公式,位置使用旧速度还是新速度,也会产生不同的轨迹和能量变化。

质量取一,恢复加速度为负k乘位置,步长为h。显式方法同时按旧状态计算新位置和新速度;半隐式方法先用旧位置更新速度,再用新速度更新位置。两种方法都从同一组位置和速度出发。

本例输入与约定

初始位置-7、速度0,弹簧常数1,步长1/2。记录初始及十二次更新。

完整计算记录

步 | 显式位置/速度/两倍能量 | 半隐式位置/速度/两倍能量 0 | -7/0/49 | -7/0/49 1 | -7/7/2/245/4 | -21/4/7/2/637/16 2 | -21/4/7/1225/16 | -35/16/49/8/10829/256 3 | -7/4/77/8/6125/64 | 91/64/231/32/221725/4096 4 | 49/16/21/2/30625/256 | 1197/256/833/128/4208365/65536 5 | 133/16/287/32/153125/1024 | 6923/1024/2135/512/66160829/1048576 6 | 819/64/77/16/765625/4096 | 29309/4096/1617/2048/869476237/16777216 7 | 973/64/-203/128/3828125/16384 | 94395/16384/-22841/8192/10997261149/268435456 8 | 3689/256/-147/16/19140625/65536 | 191821/65536/-185759/32768/174820920365/4294967296 9 | 2513/256/-8393/512/95703125/262144 | -167573/262144/-934857/131072/3523911152125/68719476736 10 | 1659/1024/-5453/256/478515625/1048576 | -4242147/1048576/-3571855/524288/69028403733709/1099511627776 11 | -9247/1024/-45283/2048/2392578125/4194304 | -27013861/4194304/-10045273/2097152/1133378724705437/17592186044416 12 | -82271/4096/-9009/512/11962890625/16777216 | -121222675/16777216/-13167231/8388608/15388440822985069/281474976710656

表中编号仅用于识别本例的元素。读取一个结果时,应先核对它对应的输入、处理顺序和边界约定;布尔值表示条件是否成立,空集合表示没有符合要求的对象,不应把这些字段混成同一种数值。

复核方法与适用范围

每一步记录位置、速度和速度平方加k乘位置平方;最后一项是理想弹簧系统能量的两倍。计算保留精确分数,避免把舍入误差混进更新顺序的比较。

本例没有阻尼、碰撞或外力,也不保证任意步长都稳定。半隐式方法并非每一步都严格保持真实能量;选择步长仍应结合具体系统,不能把某一份表的表现当成所有参数的结论。

练习时可以先独立计算最前面的一步,再检查最后的整体不变量。若结论不同,应保留各步记录,定位第一处差异;只调整最终数字会掩盖规则理解上的问题。改变输入后也要重新演算,而不是照抄这一例的输出。