分子动力学中的误差如何随数值精度变化?

计算科学 数值建模 分子动力学 精确
2021-11-30 07:37:34

就时间步长而言,分子动力学中的数值误差与平方成正比,即但它如何寻找数值精度?例如,当我使用半精度而不是单精度和单精度而不是双精度时,数值误差会大多少?errordt2

1个回答

通常,在正确实现的固定步长 ODE 求解器方法中,您有 3 个数值误差来源:

  1. 理论方法截断误差,
  2. 计算 ODE 函数和组成方法步骤的浮点误差和
  3. 的单个更新累积到的积分结果的误差O(h)O(1)

所以每一步的总误差类似于 其中是用于评估的数字类型的机器常数,并且用于累加步数的数字类型。在第一种方法中,全局误差是由乘以得到 所以理想情况下(在的学术情况)您想要对于在评估中使用单精度,

C1hp+1+C2μevalh+C2μacc
μevalμaccN=T/h
C1hpT+C2μevalT+C2μaccTh
1hpμevalμacchp=2μeval=108,以及累积的双精度,这将根据该方法的二阶错误降低到在没有不同数据类型的情况下实现增加精度的另一种变体是Kahan 或补偿求和μacc=1015h=104