第 18 卷第 2 期
2006 年 6 月
武汉工程职业技术学院学报
Jour nal of Wuhan Enginee ring I nstiute
V ol. 18 No. 2
June. 2006
龙格 - 库塔法及其 M athematica 实现
陈誌敏
( 武汉工交职业学院 湖北武汉 :430205 )
摘 要 在常微分方程的求解问题中 ,只有少数十分简单的常微分方程能够用初等方法求得它们
的解 , 多数情形只能利用近似方法求解 。龙格 - 库塔法是最常用的一种 , 因为它相当精确 、稳定 、容
易编程 。从理论上导出了截断误差和步长之间的关系 , 然后在 M athemaica 平台上自编运算程序 ,
用数学实验的方法验证了这一结果 。
关键词 M at hematica 龙格 - 库塔法 截断误差 收敛 稳定
中图分类号 :O241. 81 文献标识码 :A 文章编号 :1671-3524(2006)02-0072-05
1 引言
在常微分方程的求解问题中, 只有少数十分简
单的微分方程能够用初等方法求得它们的解 , 多数
情形只能利用近似方法求解. 用泰勒级数方法求解
常微分方程所具有的特点是:解的截断误差的阶为
O(h
n
), 所选择的 n 大, 则相应的截断误差就小. 然
而, 泰勒级数方法的缺点是:先要确定 n 和计算高
阶导数(非常烦琐)。而龙格 - 库塔法源自于相应的
泰勒级数方法, 在 每一插值节点用 泰勒级数展开 ,
其截断误差阶数也是 O(h
n
), 根据 O(h
n
)可省略更
高阶的导数计算 ,这种方法可构造任意阶数的龙格
- 库塔法 。其中 4 阶龙格 - 库塔法是最常用的一种
方法 。因为它相当精确、稳定 、容易编程 。一般不必
使用高阶方法, 因为附加的计算误差可由增加精度
来弥补。如果需要较高的精度 , 可采取减小步长的
方法即可 。4 阶龙格- 库塔法的精度类似 4 阶泰勒
级数法的精度
[ 1]
。
本文从理论上导出截断误差和步长之 间的关
系, 然后在 Ma them aica 平台上自编程序 , 用实例验
证了这一结果。
2 龙格 - 库塔法
一阶初值问题
dy
dx
=f (x ,y)
y(x0 )=y0
(1)
的精确解 y(x)在[ x0 , X] 上存在各阶导数且连续。
4 阶龙格库塔法基于下面公式计算 yn +1 。
y n +1 =yn +
h
6
(k1 +2k2 +2k3 +k4)
k1 =f(xn ,y n)
k2 =f〔xn +
1
2
h , yn +
h
2
k 1〕
k3 =f〔xn +
1
2
h , yn +
h
2
k 2〕
k4 =f(xn +h ,y n +hk3 )
(2)
通过将 k1 , k2 , k3 , k4 在同一点(xn , yn )泰勒展
开 ,与 4 阶泰勒级数法比较系数 , 公式(2)的截断误
差阶为 0(h
5
)
[ 2]
。
3 相关理论问题
为考察龙格 - 库塔方法提供的数值解是否有实
用价值 ,需要分析如下几个问题 :
①步长充分小时 , 所得到的数值解是否逼近初
值问题(1)的真解 ,即收敛性问题 。
②误差估计。
③产生的舍入误差 ,在以后的各步计算中 , 是否
会无限制扩大,即稳定性问题。
收稿日期 :2006-3-18
作者简介 :陈誌敏 , 男(1952 ~ ), 武汉工交职业学院副教授 , 主要研究领域 :应用数学.