解微分方程的时候,大多数方程都是隐式方法比较稳定。虽然隐式方法需要迭代,写起来比较麻烦,我还是建议尽量使用隐式方法。Adams隐式是一种精度高,稳定性高的算法,属于隐式四阶龙格库塔法的一个特例。我之前写过用python解微分方程的 code ,这里改成fortran版本

对微分方程dy/dx=f( x ),
Adams法,公式

求解的时候用Adams公式构造隐式方程,将y_{n+1}移到右边,然后用 牛顿迭代 对每个点求解y_{n+1}。下面直接上代码
program potential implicit real*8 (a-h, o-z) h = 0.01 icells = 10 y0 = 3.0 y1 = 3.0 y2 = 3. x0 = 0.0 x1 = x0+h x2 = x1+h yi = 0.0 !设置初始值 call RK(y0, x0, h, y1) call RK(y1, x1, h, y2) !龙格库塔法计算前两个点 do i = 3, 100 xi = i*h call newton(h, y2, y1, y0, x2, x1, x0, xi, yi) !牛顿截弦法计迭代算后一个点 y0 =
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删