张瑞
中国科学技术大学数学科学学院
rui@ustc.edu.cn |
函数在处Taylor展开,则有
由微分方程,有
得到
这样,可以得到单步的高阶格式:
局部截断误差为。
这种格式可以达到任意阶的精度,但用到了的各阶偏导数,使用不便。
前面改写为
其中
上式中,的计算因为涉及到的各阶偏导数,使用极为不便。
以2阶为例,
则取合适的, , , ,使得
满足
利用Taylor展开
比较系数,得到如下非线性方程组
方程有无穷多个解
改进的Euler格式(Heun格式)
例 1. 用改进的Euler格式解方程
解. 如图
一个N级的Runge-Kutta格式的一般形式
通常用如下的Butcher表来记录这些系数
一个显式Runge-Kutta法具有如下形式
Butcher表
可以看到,此时矩阵是一个对角元素全为0的下三角阵。
例 2. 格式
对应格式为
即为向前Euler格式
显式中点格式
Heun格式(改进的Euler格式)
Ralston格式(在二阶格式中,具有最小的局部截断误差)
3阶Kutta格式
4阶经典Runge-Kutta格式
例 3. 用4阶经典Runge-Kutta格式
解. 如图
当Runge-Kutta的Butcher表中矩阵不再是下三角阵时, 就是隐式的Runge-Kutta格式
例 4. N=1时,
得到的隐式中点格式
可以看到,解时,可能需要解非线性方程。
对应的显式中点格式
例 5. N=2时,得到2级4阶的隐式Runge-Kutta格式, Gauss–Legendre:
在解, 时,需要解一个非线性方程组。
输出
Runge-Kutta法,误差和误差阶为
k=0, 0.244934066848e00
k=1, 0.534607244904e-01, 3.90
...
Adams隐格式,误差和误差阶为
向前Euler做预估计算
k=0, 0.244934066848e00
k=1, 0.534607244904e-01 , 3.01
...
改进Euler做预估计算
k=0, 0.244934066848e00
k=1, 0.534607244904e-01 , 3.01
...
4阶Runge-Kutta做预估计算
k=0, 0.244934066848e00
k=1, 0.534607244904e-01 , 3.01
...
参考:
例 6.
6.