Adams 线性多步积分器(一)

Adams 线性多步积分器(一)

在动力学系统仿真和计算中经常非线性微分方程的解算问题,其基本问题可以描述为:

dydx=f(x,y);y(x0)=y0” role=”presentation” style=”text-align: center; position: relative;”>dydx=f(x,y);y(x0)=y0
常用的解算方法主要可以分为单步法和多步法,在轨道积分中常用的单步法有4阶Runge-Kutta和嵌套的RKF(7,8) 等方法,单步法相对来说解算结果稳定,但是对于步长要求严格,而且每一步都需要多次计算其右函数f(x,y)” role=”presentation” style=”position: relative;”>f(x,y),以RKF78为例,每一步积分需要计算13次右函数值,而通常在轨道积分中,函数f(x,y)” role=”presentation” style=”position: relative;”>f(x,y)非常复杂计算也特别耗时,因此对于轨道积分而言,单步法效率不高。
而对于多步法而言,每一步只需要计算一次右函数值,因此其效率相对来说较高。但是多步法需要前K步的一阶微分值作为起步数据,通常可以借助RKF单步法起步。在多步法中较为常用的有Adams系列,BDF系列。本文重点介绍Adams的代码实现,其相关理论公式推导可以参考相关书籍。Adams积分器分为预测公式(Bashforth)和修正公式(Moulton),K阶的Bashforth 的公式可以表达为:
yn+1=yn+hΣpiy˙n−i,i=0,1,...,k” role=”presentation” style=”text-align: center; position: relative;”>yn+1=yn+hΣpiy˙n/mo>i,i=0,1,...,k
其中pi” role=”presentation” style=”position: relative;”>pi是其系数,h为步长。
类似的,K阶的Moulton改正公式一般形式为:
yn+1=yn+hΣqiy˙n−i+1,i=0,1,...,k” role=”presentation” style=”text-align: center; position: relative;”>yn+1=yn+hΣqiy˙n/mo>i+1,i=0,1,...,k
其中qi” role=”presentation” style=”position: relative;”>

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年11月25日
下一篇 2016年11月25日

相关推荐