前面已讲过多步法的一般性表达式为
如果满足如式(5.51)和式(5.52)的精确性约束条件,那么对于次数小于或等于k的多项式x(t),上述多步数值积分算法就能够给出xn+1的精确值。
式(5.51)的精确性约束条件通常被称为一致性约束条件,满足式(5.51)的多步数值积分算法被认为是“具有一致性的”。对于一个期望的次数为k的多项式,这些约束条件可以通过很多种方式来得到满足。通过预先定义一些系数之间的关系,可以导出几种不同类别的方法。Adams算法就是设定系数a1=a2=…=ap=0而导出的。在此条件下,由一致性约束条件可得系数a0=1。因此,Adams算法可简化为
式中,p=k-1。Adams算法可进一步划分为显式算法和隐式算法。显式算法,通常被称为Adams-Bashforth算法,首先设定系数b-1=0,然后应用第2个精确性约束条件式(5.52)得到
用矩阵形式表示式(5.54)可得
当选定要求的k值后(相应地就选定了阶数p),通过式(5.55)可以求得剩下的系数bi。
例5.2 推导三阶Adams-Bashforth数值积分公式。
解5.2 令k=3,得到如下线性方程组:
解得
故三阶Adams-Bashforth数值积分公式为
当使用上述算法时,xn,xn-1,xn-2必须存储在内存中。(www.xing528.com)
Adams法的隐式形式被称为Adams-Moulton法,其中b-1≠0,p=(k-2),其一般性表达式为
根据第2个精确性约束条件式(5.52)有
写成矩阵形式为
例5.3 推导三阶Adams-Moulton法。
解5.3 令k=3,得到如下方程:
可解得
故三阶Adams-Moulton法可用下式表示:
实现此算法时,xn,xn-1必须存储在内存中,且当f(x)为非线性时,式(5.60)需通过迭代求解。
Adams-Moulton法是隐式的,必须采用Newton-Raphson法或其他类似的迭代方法进行求解,式(5.49)给出了Newton-Raphson法迭代的格式。迭代算法需要设置合适的初始值以减少迭代次数,而显式Adams-Bashforth法常用来为隐式Adams-Moulton法提供初始值。如果采用了足够高阶的预测算法,那么Ad-ams-Moulton法通常只需要一次迭代即可收敛。这个过程通常称为“预测-校正”法,Adams-Bashforth法用于预测,Adams-Moulton法用于校正。
实施多步法的另一个问题是最开始如何启动计算过程,因为高阶算法需要多个先值。通常的解决方法是使用高阶单步法,或随着已知先值的增加,增加多步法的阶数,直到产生的先值满足所采用的多步法的要求为止。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。