二阶龙格库塔公式推导_龙格库塔法(二)

前面我们从数值积分的角度推导出龙格库塔法 数值积分公式的推广:龙格库塔法(一)。

这次详细讨论各类龙格库塔法。

4. 龙格库塔法

标准教科书里通常会直接给出如下数值格式:

80b8045e33745ea788439c6409066b43.png

18f2e274768ad9835036c60e6427fe42.png

称 2c8bdc25bbef5474c224510b5a599bf7.png 为在节点 12cd6f50385553f5358b3183c31ad7e9.png 处的级值,由于共有 s 个级值,故称之为 s 级的龙格库塔 (Runge-Kutta) 法,其系数可以写成下面布切尔表的形式

dfd394c8df7e689ee64bbdd195e4421c.png

如果系数满足条件 a401a84252be75b550e646292f2f6ddb.png,即表格主对角线及其右上角的元素全为 0 时,称相应的方法为显式的龙格库塔法,否则称为隐式龙格库塔法。

现在看来,龙格库塔法其实就是对前面我们用数值积分公式推导的单步法的一种自然推广而已!只是将系数作了进一步的抽象化罢了。科学研究经常干这种抽象假设归纳总结的事情,不是么?

这里顺便插一句,龙格库塔生活的那个年代,由于没有计算机,人们基本靠手算,对于提出像前面那样的隐式格式是无法想象甚至是从内心感到害怕的(注:布切尔在其综述论文【1】中使用了``frightening"这个词)。

实际上,前面提到的显式欧拉法就是最简单的龙格库塔法。历史上,大数学家欧拉构造显欧拉法的想法其实非常简单,就是用分片的直线段来逼近真解(细究起来,个人感觉有限元法的最原始思想其实应归功于老祖宗欧拉,哈哈)。可惜精度只有一阶,因此人们希望构造新的精度更高的数值方法。

继欧拉之后,龙格和库塔,分别于1895年及1901年构造了精度更高(2阶到5阶)的显式数值格式,采用了对不同节点处切线斜率的某种加权平均作为下一步“前进方向”(“切线斜率”本质上刻划了方向)的逼近思想。这种精度更高的格式可以看成是对显式欧拉法的升级推广,“龙格库塔法”的名字也由此而来。龙格和库塔给人们提供了构造高精度数值格式的新思路,这个意义是相当重大的。

从欧拉1768年提出折线法到这一想法出现,竟然用了127年!如今看来,从数值积分公式推广和应用的角度,结合对系数的抽象化理解, 岂不是显得更自然、更易于接受么?

  • 阶条件

通常为了便于分析数值方法的阶(特指局部截断误差的阶),我们还需假定: 对 513606908d9545ef964e6a93e1489be2.png

a7d7379ee8027ebd0e610ef419b6877e.png

注意,上述假定条件并非必须。但有了上述假定,所有代数阶条件可以用一个统一的简洁而优美的根树公式来表达。而如果没有上述假定,在研究较高阶局部截断误差项时 -- 正如布切尔在文献【1】中所指出的那样 -- 一旦考虑的误差阶数超过4阶,就算是一维方程组(即 f75c84c0a19a237e044fb22e4642105e.png)情形,泰勒展开式的高阶项也会使人困惑 (get confused) 且前面的能够用统一公式表达的阶条件已显得不够充分(注:胡塔考虑过直到6阶的情形)。笔者推测,他的意思可能是问题太复杂了,理不清头绪。

另一个合理的解释是,任何一个非自治方程组(注:这里的“非自治”是指右端函数 9040345504a025bb6ba4ff3d19d52037.png显式地依赖于时间变量)均可以先转化成一个自治方程组再来求解。转化的方法如下:我们可以在原微分方程组的基础上添加一个显而易见的方程 ef92cd96d357a57e5b9e92082563e5d2.png,使得原微分方程组(非自治的)升维成 ac22c7dcf3cb62f0a9062b23e2e249df.png维的新的微分方程组(此时可看成自治的)。将龙格库塔法用于新的方程组。此时,要求精确积分刚添加进来的简单方程是合理的(因为右端函数为常数1,恰好是可以求出解析解的情况)。具体地讲, ac22c7dcf3cb62f0a9062b23e2e249df.png 维的龙格库塔数值格式中含有下面的式子

2f3a97bcb568bbf3a678132ad9e619f3.png比较两边后即得到上述条件。

通过将 cc58027ef88c894911eb8ca598461085.png在 a4bcd56b96da55bbeba84d08afdc659a.png处作泰勒展开,并与精确解的泰勒展开式作比较,易知

6cb09b8b9672c4e212124a9ea16157a5.png

是龙格库塔法具有1阶精度(即局部截断误差为 e6d346250c298ac8ae242068f551c303.png)的充分必要条件。欲使方法达到二阶精度,则需要另外加上下面的约束条件

e286bdc6ef0e4e89b527053fa7d84313.png

更高阶的阶条件可以继续进行泰勒展开得到,比较繁琐。布切尔发现了泰勒展开式的一般性规律,将展开式与根树图一一对应,从而可以方便地利用根树图直接写出所有的代数阶条件,这里不再详细介绍。

  • 显式龙格库塔法

显式的最大好处主要还是计算快,不需作迭代,它主要适用于非刚性问题的数值计算,但对于刚性问题不合适,数值稳定性很差。

关于稳定性,针对不同程度的刚性问题提出了很多概念,A稳定,L稳定,B稳定,代数稳定…… 一般显式格式表现都很差。舒其望等人提出了强稳定性的显式龙格库塔法 (布切尔曾在一些论文里也提到过舒老师的工作),比一般的显式龙格库塔法稳定性要好。

前面介绍过1阶-2阶的显式法:

  • ODE 数值方法(1):方法简介

  • ODE 数值方法 (2)  :截断误差和二阶方法

  • ODE 数值方法(3):截断误差分析

最常用的显式 4 阶龙格库塔法是库塔 1901 年构造的。下面是方法和其示意图

de3c975eee9c6811e727da00a0ac6b66.png

57295b755dd2d77ecccbdd697092d69f.png

关于显式格式,布切尔、库珀等人利用代数方法深入研究了格式构造过程中存在的阶障碍现象【1,2】,但至今没有彻底解决。

研究表明,对于构造阶为 3fb2f871899478da100e87dd4c6103cc.png的显式格式,需要的最少级数为 05aa62eac016aa4baccec77d609b46fd.png,而当 a4ce30bbdcc8f6cef6f93493660f4eb1.png时,5f099820b672d9e7dc67e3e441f5092b.png 级 5f099820b672d9e7dc67e3e441f5092b.png 阶精度的显式龙格库塔法是不存在的.

高于 4 阶精度的格式需要数目更多的级值 (即 s 要足够大) 才行。随着 5f099820b672d9e7dc67e3e441f5092b.png的增大,所需的最少级数 0efb756e57063a4f2dd9479f60ed117d.png呈现毫无规律的现象。

  • 比如 8b12431356f5aa55f2a96693803966cf.png时,需要的最少级数为 375cc8438c403e7efc59670160c4c8fc.png

  • 当 4da1f85ececd70d5637861a1ed351fe0.png时, a56d0ced7d6a0a2bc335d6fb23c5afd7.png

  • 而当 e287652a5794660769d72fbda703b548.png时, f57fce104f8d241566d20359c94cc053.png

  • 而 59e2da9e1a903ab17e40663123ca4a41.png的情况,目前没人考虑。

海尔(他的儿子曾于2014年获得菲尔兹奖,虎父无犬子啊)考虑了阶 ff21fe1afd8edfbe376e9cbfedd269f4.png的显式格式,他绕过了1205个非线性代数联立方程组的直接求解,构造了一个 ad6e05c824cc07a5617640cc90545faa.png级的显式格式(是不是用的最少级数,目前还不能确定)。

对于构造一般的 5f099820b672d9e7dc67e3e441f5092b.png 阶精度的显式格式,最少的级数 2aeb53e1b91f9f45bea4b12f53d96eac.png应该是多少?至今没有答案,连猜想都无人提出。

不过,对于 e6ef299f90c404980dd315f5a921d0bb.png,库珀(Cooper)与弗纳(Verner)于1972年得到了一个上界估计 7658a38b79719b8711a59f7140ec5b83.png. 布切尔则于1975年给出了一个关于下界的估计式(较复杂,从略)。

实践表明,它们都不是最优的上下界估计(从 1f63be74228afcb707880306ee974a38.png的情形即可看出这一点)。这应该算是在计算数学领域中出现的一个极其困难的“纯数学”问题,其难度可能并不亚于数论中的任何一个困难猜想——至少连关于其终极结论的猜想都还不存在。当然,如果单从构造算法主要用于实际计算的角度来看,解决这个问题可能并无多大实际意义。

由于布切尔的工作,尽管目前我们可以很方便地写出阶条件,但构造高阶精度的显式格式通常需要求解较繁琐的关于阶条件的超定非线性代数系统,令人望而却步。

另一个有趣且值得一提的事实是,龙格库塔法可以构成一个群(布切尔群),相应的布切尔群理论与Hopf代数及量子场论具有着惊人的紧密联系【5】。

  • 隐式龙格库塔法

相对于显式格式,高阶精度的隐式格式比较容易构造,可以借助于布切尔 1964 年提出的简化阶条件或其他方法(比如前面的配置法),绕过繁琐的关于一般性阶条件的非线性代数系统的求解。

一个比较成熟的构造方法是利用海尔和万纳提出的 0ee3042a3007c3e5cf860dc4675be531.png-变换技巧【4】. 另一种巧妙的方法就是我们科研团队的正交多项式展开法【8】(最近又有新的结果待发表,此处给自己顺带插播一个小广告,嘿嘿)。

此外,很多学者在龙格库塔法解的存在性、收敛性、稳定性 (线性和非线性稳定) 及数值实现方面也作了大量研究工作,这里不再详述。

5. 结尾

时至今日,应该说龙格库塔法已经发展到相当完善的地步了。这里值得一提的是,由于我国著名计算数学家冯康先生自上个世纪八十年代初【3】系统提出了哈密尔顿辛几何算法,龙格库塔法得以在新时期新领域里找到新的价值,并获得了新的发展。

1988年,由桑兹塞尔纳 (Sanz-Serna)、拉萨尼 (Lasagni)、苏里斯(Suris) 三人独立提出并发表了保持辛结构 (symplectic structure) 的龙格库塔法所满足的代数条件【5】,直接推动了辛龙格库塔法的产生和发展。冯康课题组成员孙耿教授在构造辛(分块)龙格库塔法方面有较系统和深入的研究【6,7】,这进一步极大地丰富了龙格库塔法的理论体系。

龙格库塔法在未来是否还会有新的突破和重大发展,值得大家共同向往和猜测。

参考文献

【1】J.C. Butcher, G. Wanner, Runge-Kutta methods: some historical notes, Appl. Numer. Math.22 (1996), 113-151.
【2】J.C. Butcher, The Numerical Analysis of Ordinary Differential Equations: Runge–Kutta and General Linear Methods, John Wiley & Sons, 1987.
【3】K. Feng, On difference schemes and symplectic geometry, in: Proceedings of the 5-th Inter., Symposium of Differential Geometry and Differential Equations, Beijing, 1985, pp.42–58.
【4】E. Hairer, G. Wanner, Solving Ordinary Differential Equations. II: Stiff and Differential-Algebraic Problems, Springer Series in Computational Mathematics, second ed., vol. 14, Springer-Verlag, Berlin, 1996.
【5】E. Hairer, C. Lubich, G. Wanner, Geometric Numerical Integration: Structure-Preserving Algorithms For Ordinary Differential Equations, Springer Series in Computational Mathematics, second ed., vol. 31, Springer-Verlag, Berlin, 2006.
【6】G. Sun, Construction of high order symplectic Runge–Kutta methods, J. Comput. Math.11 (4) (1993), 250–260.
【7】G. Sun, A simple way constructing symplectic Runge–Kutta methods, J. Comput. Math.18(2000), 61–68.
【8】W. Tang, Y. Sun, Construction of Runge–Kutta type methods for solving ordinary differential equations, Appl. Math. Comput.234 (2014), 179–191.


作者简介

591cdd15e5a54e96a9ed2d10d440fc6d.png

唐文生,长沙理工大学数学与统计学院, 讲师   

研究兴趣:哈密尔顿辛几何算法.

近年来,基于正交多项式展开技巧发展了连续级算法的较一般性构造理论,并将之用于动力系统保结构算法的研究,提出了构造几类几何积分子的全新方法. 首次发现利用数值通量的不同选取可以构造不同的保持辛结构的间断Galerkin方法,证明了方法的超收敛性,并建立了其与连续级算法的内在联系。主持并完成国家自然科学基金青年项目1项,湖南省教育厅项目1项。


感谢

本人于2018年10月-2019年3月受国家留学基金委资助访问加州大学欧文分校的陈龙教授,此科普短文撰写于访学期间。在此特别感谢陈教授对本文写作的指导和建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值