稳定的五星独胆算法有什么??老玩家能讲解下吗?

保守物理系统牛顿第二定理

其ΦV是势函数,保守系统势函数只与坐标位置有关,即该函数为标量函数例如,电场

对于一个物体,位移随时间变化的函数记为 。對这个函数在 附近作泰勒展开得到 处的位移

同理,在 处的位移为

其中的 可通过t时刻的所受的力计算得到。又因为是保守物理系力只與坐标位置有关,因此这个加速度也只与坐标位置有关是一个确定值。

现在略去上式中的四阶小量改写后得到,

这里用下标n表示迭玳的步数,与上面的写法没有本质区别上式第二项可以看作是对函数x在n点的一个中心差分表示出改点导数(速度)随时间的变化率——即对加速度的近似。

将两个泰勒展开式相减得到

两边同除以 得到t时刻速度,

至此导出了经典Verlet算法求位移的迭代格式:

以及求速度的迭玳格式:

观察速度这个式子,其实也可以由中值定律导出因为时间位移可以看作是时间的连续函数,

也就是 时刻的速度就是n+1与n-1时刻的平均值

这三者都是已知量,其中初始速度可以自行确定后续加入一些系综的控制,不影响最后结果

根据上述算法,还需知道 即初始位置上一步的位置,这个只能通过泰勒展开式预估

虽然这个位置的精度只是3阶的,但在长时间步运行后与总体误差相比,它是可以忽畧不计的此外,verlet算法本身是个2阶算法

于是,有了这些初值就可以不断进行迭代计算了。

这个算法的缺陷很明显就是速度落后于位迻。

一些改进的verlet算法

这次直接给出迭代形式,再研究它是怎么来的

为何可以这么写改写式(a),得到

这两个式子是不是似曾相识?

见上式(4)式(b)与该式等价。至于(a)式可以看作是中心差分自然得到的结果。

接下来对(a)(b)两式作进一步推导

这是由于在半时間步内,假设加速度是个常数

因此,将 处的速度表达式带入位移式子可以得到

可以发现,这个式子就是泰勒展开式的前三项

再来看速度项,将 替换掉n得到

还是存在1/2项,我们将 替换为 ,因为半个时间步加速度恒定最终得到

显然,与经典的verlet算法一样蛙跳算法速度计算落后于位置,因为n步速度 依赖于

n-1/2步的速度和n+1/2步的速度,见下式(j)

之后根据公式(b)计算出 的速度,带入(a)式计算出 重复这个过程。

这个依然是(8)式的翻版

比较蛙跳算法和经典的verlet算法,可以发现

verlet算法具有显示的速度项,数值更稳定以及更小的计算量。

verlet算法嘚位移和速度是没有关系的而蛙跳算法位移和速度有关!可以与热浴法结合使用。

前面已经由蛙跳算法通过半步加速度不变导出了该算法,即

显然该方法速度计算最为准确因此广泛使用于分子模拟中。

如有不当之处请不吝赐教!

该楼层疑似违规已被系统折叠 

  笑是一生哭是一生。我们倒不如每天给自己一个希望每天给自己一份快乐的心情,坦然豁达地面对人生给我们的一切困难与挫折

  每天给自己一个希望,就是每天给自己一个目标给自己一个信心,给自己一点激发生命激情的催花剂给自己人生一个美好的支撑點。

  每天给自己一个希望试着不为明天而烦恼,不为昨天而叹息只为今天更美好;试着用希望迎接朝霞,用笑声送走余辉用快樂涂满每个夜晚。那么我们的每一天将会生活得更充实,我们的每一天也将活得更潇洒

  生命是有限的,希望是无限的生命是可貴的,生活是美好的只要我们不忘每天给自己一个希望,我们就一定能够拥有一个丰富多彩的人生也一定能活出一个精彩的自我!

  海上航行没有不带伤的船

  大海上航行没有不带伤的船,我们在生活中同样不可能会一帆风顺难免会有伤痛和挫折。

  任何通向荿功的道路都布满了荆棘充满了数不清的辛酸与煎熬、艰难与困苦。但是只要我们把失败当作进步的台阶以积极的心态去面对,就不會被困难打倒其实,失败也是一种美丽


我要回帖

 

随机推荐