计算方法龙格库塔方法概要
2018/11/9 4
同理,改进Euler公式可改写成
1 1 yi 1 yi 2 K1 2 K 2 K1 hf ( xi , yi ) K hf ( x h, y K ) i i 1 2
局部截断误差为O(h3)
上述两组公式在形式上共同点:都是用f(x,y)在某 些点上值的线性组合得出y(xi+1)的近似值yi+1, 且增 加计算的次数f(x,y)的次数,可提高截断误差的阶。如 欧拉法:每步计算一次f(x,y)的值,为一阶方法。改进 欧拉法需计算两次f(x,y)的值,为二阶方法。
K hy(i ) hf i , y (i )
yi 1 yi K
K可以认为是y y( x)在区间 [ xi , xi 1 ]上的平均斜率
y
只要使用适当的方法求 出y ( x)在区 间[ xi , xi 1 ]上平均斜率的近似值K
y y( x)
K
就可得到相应的Runge-Kutta方法
2018/11/9 5
于是可考虑用函数f(x,y)在若干点上的函数值的 线性组合来构造近似公式,构造时要求近似公式在 (xi,yi)处的Taylor展开式与解y(x)在xi处的Taylor展开式 的前面几项重合,从而使近似公式达到所需要的阶数。 既避免求高阶导数,又提高了计算方法精度的阶数。 或者说,在[xi,xi+1]这一步内多计算几个点的斜率值, 然后将其进行加权平均作为平均斜率,则可构造出更 高精度的计算格式,这就是龙格—库塔(RungeKutta)法的基本思想。
称为P阶龙格-库塔方法。 其中ai,bij,ci为待定参数,要求上式yi+1在点(xi,yi)处作 Tailor展开,通过相同项的系数确定参数。
2018/11/9 7
Runge-Kutta方法的推导思想 对于常微分方程的初值问题
y f ( x , y ) y( a ) y0 a xb
的解y=y(x),在区间[xi, xi+1]上使用微分中值定理,有
y( xi 1 ) y( xi ) y ( i )( xi 1 xi )
其中 i ( xi , xi 1 )
即
2018/11/9
y( xi 1 ) y( xi ) hy( i )
8
引入记号
y ( xi 1) y ( xi ) K
2018/11/9
xi
xi 1
x
9
如果以y( x)在xi处的斜率作为y( x)在[ xi , xi 1 ]上的平均斜率K
即
K hy( xi ) hf [ xi , y ( xi )]
hf ( xi , yi )
如下图
y
则上式化为
yi 1 yi hf ( xi , yi )
2018/11/9
6
一般龙格-库塔方法的形式为
yi 1 yi c1K1 c2 K 2 c p K p K1 hf ( xi , yi ) K 2 hf ( xi a2h, yi b21K1 ) • • • • • • • • • • • K p hf ( xi a p h, yi b p1K1 b p , p 1K p 1 )
h2 y( xi 1 ) y( xi ) hy( xi ) y( xi ) O(h3 ) 2 yi hf ( xi , yi )
h2 ( xi , yi ) O(h 3 ) f x ( xi , yi ) f ( xi , yi ) f y 2
类似地,若取前P+1项作为y(xi+1)的近似值,便得到
2018/11/9 2
显然p=1时,
y i+1=y i+hf(xi,y i)
它即为我们熟悉的Euler方法。 当p≥2时,要利用泰勒方法就需要计算f(x,y)的高 阶微商。这个计算量是很大的,尤其当f(x,y)较复 杂时,其高阶导数会很复杂。因此,利用泰勒公 式构造高阶公式是不实用的。但是泰勒级数展开 法的基本思想是许多数值方法的基础。 R-K方法不是直接使用Taylor级数,而是利用它的思想
§
9.4 龙格-库塔方法
得到高精度方法的一个直接想法是利用Taylor展开
假设式 y' =f(x,y) (a≤x≤b) 中的 f(x,y) 充分光滑,将y(xi+1)在x i点作Taylor展开,若 取右端不同的有限项作为y(xi+1)的近似值,就可得到 计算y(xi+1)的各种不同截断误差的数值公式。
例如:取前两项可得到
y( xi 1 ) y( xi ) hy( xi ) O(h 2 )
y( xi ) hf ( xi , y( xi )) O(h 2 ) yi hf ( xi , yi ) O(h 2 )
2018/11/9 1
若取前三项,可得到截断误 P ( P) yi hyi yi yi 2! P!
P阶泰勒方法
其中 yi f , yi f ( xi , yi ) x f x ff y )x f xx 2 f xy f f yy f 2 f x f y ( fy )2 f yi ( f x ff y
2018/11/9 3
Runge-Kutta 方法是一种高精度的单步法,简称R-K法
9.4.1 龙格-库塔(R-K)法的基本思想
Euler公式可改写成
yi 1 yi K K hf ( xi , yi )
则 yi+1 的表达式与 y(xi+1) 的 Taylor 展开式的前两项 完全相同,即局部截断误差为O(h2)。
y y( x)
K
K
即Euler方法
xi
xi 1
x
Euler方法也称为一阶Runge-Kutta方法
2018/11/9 10
9.4.2