首页 理论教育 龙格-库塔法的高效解法

龙格-库塔法的高效解法

时间:2023-10-31 理论教育 版权反馈
【摘要】:由于使用了f(x,u)在r个位置的取值,称递推公式为r阶龙格-库塔法。当r=2时,龙格-库塔法递推公式为:将k2的表达式在xn处展开:将k1和k2代入un+1的表达式:假设un=u,并根据式(1-1)中的第1个式子,使式和式的前3项相同,得到:满足上式的R1、R2、a、b可以有无穷多种情况,每种情况的局部截断误差都是O,都被称为二阶龙格-库塔法。下面给出两组常用的四阶龙格-库塔法的公式。

龙格-库塔法的高效解法

将欧拉法写成式(1-37)的形式,可以看出它实际上利用了f(x,u)在xn处的取值来计算un+1的值。类似地,隐式欧拉法使用了f(x,u)在xn+1处的近似值来计算un+1的值,而欧拉法和隐式欧拉法的精度都是1阶。

978-7-111-51623-1-Part01-20.jpg

同样,将预测-校正法写成如下形式,不难发现它其实是用f(x,u)在xnxn+1两处的取值来计算un+1的值,并达到了2阶的精度。

978-7-111-51623-1-Part01-21.jpg

上述方法都是通过f(x,u)在不同位置的线性组合来计算un+1的值,所考虑的位置越多,精度也就越高。顺着这样的思路想下去,如果用f(x,u)在更多位置的线性组合来构造递推公式,将会得到更高的精度,这就是龙格-库塔法(Runge­Kutta method)的思想。这样,递推公式将有如下形式:

978-7-111-51623-1-Part01-22.jpg

其中,Riaibij为待定常数。由于使用了f(x,u)在r个位置的取值,称递推公式(1-39)为r阶龙格-库塔法。为了确定其在某一精度下的待定系数,需要将式中的un+1在xn处泰勒展开,并与u(xn+1)在xn处的泰勒展开式比较:

978-7-111-51623-1-Part01-23.jpg

若待定常数Riaibij的取值使得两式最多有前k+1项相同,那么:

u(xn+1)-un+1=O(hk+1) (1-41)

这即是说,此时Riaibij的取值使得式(1-39)具有k阶的精度,下面举例说明。

r=2时,龙格-库塔法递推公式为:

978-7-111-51623-1-Part01-24.jpg

k2的表达式在xn处展开:

978-7-111-51623-1-Part01-25.jpg

k1k2代入un+1的表达式:

978-7-111-51623-1-Part01-26.jpg

假设un=u(xn),并根据式(1-1)中的第1个式子,使式(1-40)和式(1-44)的前3项相同,得到:

978-7-111-51623-1-Part01-27.jpg(www.xing528.com)

满足上式的R1R2ab可以有无穷多种情况,每种情况的局部截断误差都是O(h3),都被称为二阶龙格-库塔法。如果取R1=R2=1/2、a=b=1,就是前面提到的预测-校正法。如果取R1=0、R2=1、a=b=1/2,就得到中点公式(midpoint method):

978-7-111-51623-1-Part01-28.jpg

二阶龙格-库塔法不能保证局部截断误差为O(h4),所以接下来考虑r=3的情况,即:

978-7-111-51623-1-Part01-29.jpg

r=2的情况类似,先写出上式中的un+1xn处的泰勒展开式,并假设un=u(xn),与式(1-40)比较,要保证局部截断误差为u(xn+1)-un+1=O(h4),得:

978-7-111-51623-1-Part01-30.jpg

方程组(1-48)的解有无穷多个,每组解都确定一个三阶龙格-库塔法的公式。比较简单且重要的一组解是R1=1/6、R2=4/6、R3=1/6、a2=1/2、a3=1、b21=1/2、b31=-1、b32=2,它对应的是库塔公式(Kutta's third-order method),如下:

978-7-111-51623-1-Part01-31.jpg

类似地,r=4时,龙格-库塔法的递推公式的形式为:

978-7-111-51623-1-Part01-32.jpg

在局部截断误差为O(h5)的前提下,得到关于上式中待定常数的方程组的过程比较复杂,这里从略。下面给出两组常用的四阶龙格-库塔法的公式。

标准四阶龙格-库塔公式(classic fourth-order method):

978-7-111-51623-1-Part01-33.jpg

吉尔(Gill)公式:

978-7-111-51623-1-Part01-34.jpg

需要强调的是,r的取值并不总是和精度的阶数相同,二者关系如表1-1所示。随着r的增加,每递推一步的运算量也在增加,对于多数实际问题,四阶龙格-库塔法的精度就已经足够了,因此它也是最常用的龙格-库塔法。

表1-1 r与计算精度的关系

978-7-111-51623-1-Part01-35.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈