Runge-Kutta法的历史发展与应用
Runge-Kutta法的历史发展与应用
摘要Runge-Kutta法是极其重要的常微分方程数值解法,本文仅就其起源及发展脉络加以简要研究。对Runge、Heun以及Kutta等人的贡献做出适当评述,指出Runge-Kutta 方法起源于Euler折线法。同时对Runge-Kutta法的应用做简要研究。
关键词 Euler折线法 标准四阶Runge-Kutta法 应用
一、发展历史[1]
1.1 Euler折线法
在微分方程研究之初,瑞士数学家L.Euler(1707.4—1783.9)做出了开创性的工作。他和其他一些数学家在解决力学、物理学问题的过程中创立了微分方程这门学科。在常微分方程方面,Euler 在1743年发表的论文中,用代换y ekx给出了任意阶常系数线性微分方程的古典解法,最早引入了“通解”和“特解”的概念。
1768年,Euler在其有关月球运行理论的著作中,创立了广泛用于求初值问题
y f(x,y), x0 x X (1.1) y(x) a (1.2) 0
的数值解的方法,次年又把它推广到二阶方程。欧拉的想法如下:我们选择h 0,然后在x0 x x0 h情况下用解函数的切线
l(x) y0 (x x0)f(x0,y0)
代替解函数。这样对于点
x1 x0 h
就得到
y1 y0 hf(x0,y0)。
在(x1,y1)重复如上的程序再次计算新的方向就会得到所谓的递推公式:
xm 1 xm h, ym 1 ym hf(xm,ym),
Runge-Kutta法的历史发展与应用
这就是Euler 方法。通过连接所有这些切线得到的函数被称为Euler 折线。如果我们令h 0, 这些折线就会越来越接近解函数。
Euler 折线法是最早出现的,虽然它亦是常微分方程初值问题的最简单的数值解法, 但它的一些特性和研究方法对于更复杂的方法却具有普遍意义。几十年后,法国数学家A .L .Cauchy(1789.8—1857.5)在历史上首次研究了常微分方程的局部性态。对于给定的初值问题(1.1)和(1.1),在f(x,y)连续可微的假设下, 他用类似于欧拉折线的方法构造逼近解, 利用微分中值定理估计逼近解之间差的上界,严格证明了以x0为中心的一个小区间上逼近解收敛, 其极限函数即为所提问题的解。同时Cauchy 指出,这种方法也适用于常微分方程组,所以欧拉方法有时又称Euler-Cauchy 折线法。
2.2 Runge-Kutta方法
德国数学家C.D.T.Runge(1856—1927)是数值方法发展史上具有里程碑作用的人物。1895年,他在Hanover发表了关于微分方程数值解法的经典论文《常微分方程数值解法》, 此文成为常微分方程Runge-Kutta方法的发端。此后,Runge结合教学活动积极投身于发展一般的数值分析特别是各种实际应用中的Runge-Kutta方法(严格来说,此方法在Kutta做出工作后才能称作Runge-Kutta方法)。
Runge伟大创造的思想是什么呢?他的灵感来自于初值问题(1.1)和(1.2)与积分问题
x0 h
y(x0 h) y(x0)
x0 f(x)dx(此时f与y无关) (1.3)
之间的对比,显然,等式(1,3)右侧数值积分的精确度决定y(x0 h)的精确度,Runge发现, Euler方法采用的是左矩形公式
x0 h
x0 f(x)dx hf(x0),
即用高为f(x0)宽为h的矩形代替数值积分, 而这个公式的精确度并不高。因此他说:最好通过插入上述Euler步骤的结果来代替未出现的y值, 把精度更高的中点法则和梯形法则拓展到微分方程。
Runge-Kutta法的历史发展与应用
11M: y1 y0 hf(x0 h,y0 hf(x0,y0)), 22
T: y1 y0 h(f(x0,y0) f(x0 h,y0 hf(x0,y0)))。 其中M和T分别表示用中点法和梯形法算得的数值积分。与他的后继者一样,Runge 用Taylor 展开式表明上述两方法的局部误差是,方法的阶为2。不过他的梦想却是使用具有更高精度的Simpson法则。但是众所周知,1212R M (T M)/3的微小变化往往易产生假象,令人误以为可以获得更高的阶。Taylor 级数展开表明,如果f依赖于y,事实上这个表达形式只是2 阶的。接着Runge发现,通过重复使用Euler步骤对梯形法则做些许调整,会使形式R M (T M)/3成为3 阶方法。Runge还把他的方法及方法的展开式拓展到微分方程组。
1900 年,Runge的同胞K .Heun评论说,Runge获得的上述方法是归纳性的而且是令人费解的,他提出采用“更具一般性”的Gauss方法。于是一般的Gauss求积公式
y1 y0 h bif(x0 cih),
i 1s
被扩充为
k1 f(x0,y0),
k2 f(x0 c2h,y0 c2hk1), k3 f(x0
c3h,y0 c3hk2),
y1 y0 h biki (1.4)
i 1s
把(1.4)式的右端进行二元Taylor展开后与y(x h)的Taylor 展开式的对应项的系数比较,适当选取参数使方法具有尽可能高的精度。
Runge的另一个同胞W.M.Kutta(1867—1944),1894到1909年在Munich做助教,在那里受到Runge文章的吸引并在Heun论文的激励下发表了他的研究结果。他认为,为什么不让已经求得的导数值全部进入到新的求值点的计算中呢?
Runge-Kutta法的历史发展与应用
基于这样的想法,Heun格式就被Kutta代替为如下格式:
k1 f(x0,y0),
k2 f(x0 c2h,y0 a21hk1),
k3 f(x0 c3h,y0 a31hk1 a32hk2),
k4 f(x0 c4h,y0 a41hk1
a42hk2 a43hk3)
y1 y0 h biki
i 1s
(其中s称为级)这个格式在满足所需的阶条件上能够允许更多的自由度。在古典的Runge-Kutta方法中,对系数的选择极大地取决于由这些系数构成的方法是否方便进行桌上计算,而所谓的古典方法是指在前计算机时代得到的方法。而这些方法对于在自动 …… 此处隐藏:4832字,全部文档内容请下载后查看。喜欢就下载吧 ……