For faster navigation, this Iframe is preloading the Wikiwand page for 龙格-库塔法.

龙格-库塔法

数值分析中,龙格-库塔法(英文:Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔·龙格马丁·威尔海姆·库塔于1900年左右发明。

四阶龙格-库塔法

[编辑]

在各種龙格-库塔法當中有一個方法十分常用,以至于经常被称为“RK4”或者就是“龙格-库塔法”。该方法主要是在已知方程导数和初始值时,利用计算机的仿真应用,省去求解微分方程的复杂过程。

初值问题表述如下。

则,对于该问题的RK4由如下方程给出:

其中

这样,下一个值(yn+1)由现在的值(yn)加上时间间隔(h)和一个估算的斜率的乘积所决定。该斜率是以下斜率的加权平均:

  • k1是时间段开始时的斜率;
  • k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点tn + h/2的值;
  • k3也是中点的斜率,但是这次采用斜率k2决定y值;
  • k4是时间段终点的斜率,其y值用k3决定。

当四个斜率取平均时,中点的斜率有更大的权值:

RK4法是四阶方法,也就是说每步的误差是h5,而总积累误差为h4阶。

注意上述公式对于标量或者向量函数(y可以是向量)都适用。

显式龙格-库塔法

[编辑]

显式龙格-库塔法是上述RK4法的一个推广。它由下式给出

其中

(注意:上述方程在不同著述中有不同但等价的定义)。

要给定一个特定的方法,必须提供整数s(级数),以及系数 aij(对于1 ≤ j < is), bi(对于i = 1, 2, ..., s)和ci(对于i = 2, 3, ..., s)。这些数据通常排列在一个助记工具中,称为Butcher tableau(得名自約翰·C·布徹英语John C. Butcher):

0

龙格-库塔法是自洽的,如果

如果要求方法的精度為p階,即截斷誤差為O(hp+1)的,则还有相应的条件。这些可以从截斷誤差本身的定义中导出。例如,一个2级2阶方法要求b1 + b2 = 1, b2c2 = 1/2, 以及b2a21 = 1/2。

例子

[编辑]

RK4法处于这个框架之内。其表为:

0
1/2 1/2
1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6

然而,最简单的龙格-库塔法是(更早发现的)欧拉方法,其公式為。这是唯一自洽的一级显式龙格-库塔法。相应的表为:

0
1

隐式龙格-库塔法

[编辑]

以上提及的显式龙格-库塔法一般来讲不适用于求解刚性方程。这是因为显式龙格-库塔法的稳定区域被局限在一个特定的区域里。显式龙格-库塔法的这种缺陷使得人们开始研究隐式龙格-库塔法,一般而言,隐式龙格-库塔法具有以下形式:

其中

在显式龙格-库塔法的框架里,定义参数的矩阵是一个下三角矩阵,而隐式龙格-库塔法并没有这个性质,这是两个方法最直观的区别:

需要注意的是,与显式龙格-库塔法不同,隐式龙格-库塔法在每一步的计算里需要求解一个线性方程組,这相应的增加了计算的成本。

参考

[编辑]
  • George E. Forsythe, Michael A. Malcolm, and Cleve B. Moler. Computer Methods for Mathematical Computations. Englewood Cliffs, NJ: Prentice-Hall, 1977. (See Chapter 6.)
  • Ernst Hairer, Syvert Paul Nørsett, and Gerhard Wanner. Solving ordinary differential equations I: Nonstiff problems, second edition. Berlin: Springer Verlag, 1993. ISBN 3-540-56670-8.
  • William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Numerical Recipes in C. Cambridge, UK: Cambridge University Press, 1988. (See Sections 16.1 and 16.2.)
{{bottomLinkPreText}} {{bottomLinkText}}
龙格-库塔法
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?