1. 写在前面的话
龙格库塔法是求解常微分方程的数值计算方法。它始于1895年,历史悠久,后人以龙格(Runge)和库塔(Kutta)两位计算数学家的名字为它命名。关于它的研究文献有很多,至今仍有新的论文不断涌现,卷帙之浩繁,恐怕难以完全统计。
先后在此领域内作出重要贡献的科学家除了龙格和库塔两位外,还有霍伊恩(Heun),奈斯特龙(Nyström),胡塔(Huta),吉尔(Gill),柯蒂斯(Curtis),布切尔(Butcher),默森(Merson),库珀(Cooper),海尔(Hairer),万纳(Wanner),桑兹塞尔纳(Sanz-Serna)等。
其中新西兰数学家布切尔是该问题的当代大师. 他创造性地将抽象代数和图论的方法引入到龙格库塔法的研究当中,奠定了龙格库塔法根树表示论的理论基础,进而改变了整个数值方法的面貌。以他的名字命名的数学名词有:布切尔群,布切尔表,布切尔级数(简称为B级数)。关于龙格库塔法,除了一系列重要的研究性论文,他还写过好几篇值得一读的综述类文章,并有专著传世,感兴趣的读者可以查阅其著作或文献(比如【1,2】)。
本文仅就龙格库塔法背后隐藏的机理作一番初步探讨,有兴趣的读者可以进一步思考或加以研究。
2. 数值积分公式
在介绍龙格库塔法之前,我们先来回顾一下数值积分公式。随便翻开一本计算方法的教科书,大家都能看到下面的数值求积公式:其中 称为权系数,而 称为求积节点。这里假定被积函数比较光滑。通常情况下,节点在积分区间 (0, 1)内部或边界上选取。
其中最常用的求积公式是所谓的插值型求积公式,即用函数 f 的拉格朗日插值多项式来逼近被积函数, 从而得到再将积分号与求和符号交换, 得到其中注意, 当节点个数只有一个时 (即 s = 1),可定义 。
求积节点的选取可以多种多样,不同的选取方式将导致不同的逼近误差,最终影响到数值求积的精度。比如,若分别选取高斯(Gauss)节点、拉道(Radau)节点、洛巴托(Lobatto)节点,则相应得到高斯型、拉道型及洛巴托型数值求积公式,其代数精确度分别为 。所谓数值积分公式的代数精确度,是指当被积函数 f 为多项式函数时,使得数值求积公式精确成立的多项式的最高次