我一直在阅读Allen 和 Tildesley的计算机模拟液体一书。从第 71 页开始,作者讨论了用于在分子动力学 (MD) 模拟中整合牛顿运动方程的各种算法。从第 78 页开始,作者讨论了 Verlet 算法,它可能是 MD 中的规范积分算法。他们说:
也许最广泛使用的整合运动方程的方法是 Verlet (1967) 最初采用的方法,并归因于 Stormer (Gear 1971)。该方法是二阶方程的直接解. 该方法基于职位, 加速度, 和位置从上一步开始。推进职位的方程式如下:
关于 eqn (3.14) 有几点需要注意。可以看出,速度根本没有出现。它们已通过添加由泰勒展开得到的方程来消除:
然后,后来(在第 80 页),作者说:
与 Verlet 算法相比,……算法的形式可能会不必要地引入一些数值不精确性。这是因为,在 eqn (3.14) 中,一个小项 () 加到大项的差上 (),以生成轨迹。
我想“小项”是,并且“大项的差”是.
我的问题是,为什么将小项添加到大项的差异会导致数值不精确?
我对一个相当基本的概念性原因感兴趣,因为我根本不熟悉浮点运算的细节。另外,您是否知道任何“概述类型”参考资料(书籍、文章或网站)可以向我介绍与此问题相关的浮点运算的基本概念?谢谢你的时间。