数值分析Runge-Kutta方法综述
Q: 为获得更高的精度,应该如何进一步推广?
© 2009, Henan Polytechnic University §3 Runge-Kutta方法
4 4
第五章 常微分方程数值解法 yi1 yi h[ 1 K1 2 K2 ... m Km] 其中i ( i = 1, …, m ),i ( i K1 f ( xi , yi ) = 2, …, m ) 和 ij ( i = 2, …, m; j = 1, …, i1 ) 均为待定 K2 f ( xi 2 h, yi 21 hK1 ) 系数,确定这些系数的 K3 f ( xi 3 h, yi 31 hK1 32 hK2 ) 步骤与前面相似。 ... ... Km f ( xi m h, y m1 hK1 m2 hK2 ... m m1 hKm1 ) 最常用为四级4阶经典龙格-库塔法 /* Classical Runge-Kutta Method */ :
3 要求 Ri y( xi 1 ) yi 1 O(h ) ,则必须有:
1 1 2 1 , 2 p 2
这里有 3 个未知 数, 2 个方程。
存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库 塔格式。注意到,p 1, 1 2 1 就是改进的欧拉法。
2 2
将改进欧拉法推广为:
yi 1 K1 K2 yi h [1 K 1 2 K 2 ] f ( x i , yi ) f ( xi ph, yi phK1 )
第五章 常微分方程数值解法
d f ( x, y) dx 首先希望能确定系数 1、2、p,使得到的算法格式有 2阶 dy 精度,即在 yi y( xi ) 的前提假设下,使得 f x ( x, y) f y ( x, y) dx Ri y( xi 1 ) yi 1 O(h3 ) f x ( x, y) f y ( x, y) f ( x, y) y( x )
第五章 常微分方程数值解法
Step 3: 将 yi+1 与 y( xi+1 ) 在 xi 点的泰勒展开作比较
yi 1 yi (1 2 )h y( xi ) 2 ph2 y( xi ) O(h3 )
h2 y( xi 1 ) y( xi ) hy( xi ) y( xi ) O( h3 ) 2
Step 2: 将 K2 代入第1式,得到
yi 1 yi h 1 y( xi ) 2[ y( xi ) phy( xi ) O( h2 )]
3 3
§3 Runge-Kutta方法
2 3 y ( ) h y ( x ) ph y ( x ) O ( h ) i 1 2 i 2 i © 2009, Henan Polytechnic University
பைடு நூலகம்
O(h6 )
由于龙格-库塔法的导出基于泰勒展开,故精度主要受
解函数的光滑性影响。对于光滑性不太好的解,最好 采用低阶算法而将步长h 取小。
深入研究龙格库塔法请看此处!
© 2009, Henan Polytechnic University §3 Runge-Kutta方法
6 6
第五章 常微分方程数值解法
Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开
K 2 f ( xi ph, yi phK1 ) f ( xi , yi ) phf x ( xi , yi ) phK1 f y ( xi , yi ) O( h2 )
y( xi ) phy( xi ) O(h2 )
5 5
第五章 常微分方程数值解法
注:
龙格-库塔法的主要运算在于计算 Ki 的值,即计算 f 的
值。Butcher 于1965年给出了计算量与可达到的最高精 度阶数的关系:
每步须算Ki 的个数 可达到的最高精度
2
3
4
5
6
7
n8
O(hn2 )
4 3 4 5 O(h2 ) O(h ) O(h ) O(h ) O(h )
• 7.2 RungeKutta方法
• 由Taylor公式:
– 7.2.1 构造高阶单步法的直接方法
y ( xi 1 ) y ( xi h )
h2 h p ( p) y ( xi ) hy ' ( xi ) y" ( xi ) ... y ( xi ) 2! p! h p 1 y ( p 1) ( ) ( p 1)!
第三节
Runge-Kutta方法
1
第五章 常微分方程数值解法
§3 龙格 - 库塔法 /* Runge-Kutta Method */
建立高精度的单步递推格式。
单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一斜 率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所 能达到的最高精度为2阶。
y i 1 K1 K2 K3 K4
© 2009, Henan Polytechnic University §3 Runge-Kutta方法
yi h ( K1 2K 2 2K 3 K 4 ) 6 f ( xi , yi ) h f ( xi h , y K1 ) i 2 2 f ( xi h , yi h K2 ) 2 2 f ( x i h, yi hK 3 )
考察改进的欧拉法,可以将其改写为: 斜率 一定取K1 K2 的平均值吗?
y i 1 K1 K2
1 1 y i h K 1 K 2 2 2 f ( xi , yi ) f ( xi h, yi hK 1 )
步长一定是一个h 吗?
© 2009, Henan Polytechnic University §3 Runge-Kutta方法
龙格-库塔方法(Runge-Kutta)
龙格-库塔⽅法(Runge-Kutta)龙格-库塔⽅法(Runge-Kutta)3.2 Runge-Kutta法3.2.1 显式Runge-Kutta法的⼀般形式上节已给出与初值问题(1.2.1)等价的积分形式(3.2.1)只要对右端积分⽤不同的数值求积公式近似就可得到不同的求解初值问题(1.2.1)的数值⽅法,若⽤显式单步法(3.2.2)当,即数值求积⽤左矩形公式,它就是Euler法(3.1.2),⽅法只有⼀阶精度,若取(3.2.3)就是改进Euler法,这时数值求积公式是梯形公式的⼀种近似,计算时要⽤⼆个右端函数f的值,但⽅法是⼆阶精度的.若要得到更⾼阶的公式,则求积分时必须⽤更多的f值,根据数值积分公式,可将(3.2.1)右端积分表⽰为注意,右端f中还不能直接得到,需要像改进Euler法(3.1.11)⼀样,⽤前⾯已算得的f值表⽰为(3.2.3),⼀般情况可将(3.2.2)的表⽰为(3.2.4)其中这⾥均为待定常数,公式(3.2.2),(3.2.4)称为r级的显式Runge-Kutta法,简称R-K⽅法.它每步计算r个f值(即),⽽k由前⾯(i-1)个已算出的表⽰,故公式是显式的.例i如当r=2时,公式可表⽰为(3.2.5) 其中.改进Euler 法(3.1.11)就是⼀个⼆级显式R-K ⽅法.参数取不同的值,可得到不同公式.3.2.2 ⼆、三级显式R-K ⽅法对r=2的显式R-K ⽅法(3.2.5),要求选择参数,使公式的精度阶p 尽量⾼,由局部截断误差定义11122211()()[(,())(,)]n n n n n n n T y x y x h c f x y x c f x a h y b hk ++=--+++ (3.2.6) 令,对(3.2.6)式在处按Taylor 公式展开,由于将上述结果代⼊(3.2.6)得要使公式(3.2.5)具有的阶p=2,即,必须(3.2.7)即由此三式求的解不唯⼀.因r=2,由(3.2.5)式可知,于是有解(3.2.8)它表明使(3.2.5)具有⼆阶的⽅法很多,只要都可得到⼆阶精度R-K⽅法.若取,则,则得改进Euler法(3.1.11),若取,则得,此时(3.2.5)为(3.2.9)其中称为中点公式.改进的Euler法(3.1.11)及中点公式(3.2.9)是两个常⽤的⼆级R-K⽅法,注意⼆级R-K⽅法只能达到⼆阶,⽽不可能达到三阶.因为r=2只有4个参数,要达到p=3则在(3.2.6)的展开式中要增加3项,即增加三个⽅程,加上(3.2.7)的三个⽅程,共计六个⽅程求4个待定参数,验证得出是⽆解的.当然r=2,p=2的R-K⽅法(3.2.5)当取其他数时,也可得到其他公式,但系数较复杂,⼀般不再给出.对r=3的情形,要计算三个k值,即其中将按⼆元函数在处按Taylor公式展开,然后代⼊局部截断误差表达式,可得可得三阶⽅法,其系数共有8个,所应满⾜的⽅程为这是8个未知数6个⽅程的⽅程组,解也是不唯⼀的,通常.⼀种常见的三级三阶R-K⽅法是下⾯的三级Kutta⽅法:(3.2.11)附:R-K 的三级Kutta ⽅法程序如下function y = DELGKT3_kuta(f, h,a,b,y0,varvec) format long; N = (b-a)/h;y = zeros(N+1,1); y(1) = y0; x = a:h:b;var = findsym(f); for i=2:N+1K1 = Funval(f,varvec,[x(i-1) y(i-1)]);K2 = Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K1*h/2]); K3 = Funval(f,varvec,[x(i-1)+h y(i-1)-h*K1+K2*2*h]);y(i) = y(i-1)+h*(K1+4*K2+K3)/6; %满⾜c1+c2+c3=1,(1/6 4/6 1/6)endformat short; 3.2.3 四阶R-K ⽅法及步长的⾃动选择利⽤⼆元函数Taylor 展开式可以确定(3.2.4)中r=4,p=4的R-K ⽅法,其迭代公式为111223344()n n y y h c k c k c k c k +=++++其中1(,)n n k f x y =,2221(,(,))n n n n k f x a h y b hf x y =++,⽽33311322(,)n n k f x a h y b hk b hk =+++ 44411422433(,)n n k f x a h y b hk b hk b hk =++++共计13个参数待定,Taylor 展开分析局部截断误差,使得精度达到四阶,即误差为5()O h 。
龙格库塔法解轨道参数
龙格库塔法解轨道参数引言龙格库塔法(Runge-Kutta method)是一种常用的数值计算方法,用于求解常微分方程的数值解。
在天体力学中,我们经常需要通过数值方法来计算天体的轨道参数,如轨道椭圆的长短轴、离心率、倾角等。
本文将介绍龙格库塔法在解轨道参数中的应用,并详细探讨该方法的原理和实现过程。
基本原理龙格库塔法是一种迭代求解的方法,在每个时间步长内利用当前的状态来估计下一个状态。
具体而言,龙格库塔法将微分方程的求解问题转化为一个迭代的求解问题,通过逐步迭代来逼近精确解。
在解轨道参数的问题中,我们通常需要根据已知的初始条件以及天体的质量和力学模型来求解天体的轨道参数。
常用的力学模型有开普勒模型和牛顿模型。
龙格库塔法可以根据力学模型的不同进行相应的求解。
开普勒模型下的轨道参数求解步骤一:确定初始条件在使用龙格库塔法求解轨道参数之前,我们需要确定一些初始条件。
这些初始条件包括天体的质量、位置和速度。
步骤二:选择时间步长在求解过程中,我们需要选择一个合适的时间步长。
时间步长越小,计算的精度会越高,但计算的时间会增加。
步骤三:迭代求解利用龙格库塔法进行迭代求解的具体步骤如下:1.根据当前时刻的位置和速度,计算天体在该时刻的加速度。
2.根据当前时刻的位置、速度和加速度,计算下一个时刻的位置和速度。
3.更新当前时刻的位置和速度为新的位置和速度。
4.重复上述步骤,直到达到指定的终止条件。
步骤四:计算轨道参数通过迭代求解,我们可以得到天体在不同时刻的位置和速度。
根据这些位置和速度,我们可以计算出轨道参数,如离心率、倾角、长短轴等。
常用的轨道参数计算公式如下:1.离心率:e=√1+2El2μ(GM⊕)2)2.倾角:i=arccos(ℎzℎ3.长轴:a=−μT22E4.短轴:b=a√1−e2其中,E表示能量,l表示轨道角动量,μ表示标准引力参数,G表示引力常数,M⊕表示地球的质量,ℎ和ℎz分别表示轨道角动量和轨道角动量在z轴上的分量。
2Runge-Kutta方法
( x, y, h) f ( x, y( x))
即为Euler方法
2、Runge-Kutta方法 基本思想:利用 f ( x, y ) 在某些特殊点上的函数值的线性 组合来构造高阶单步法的增量函数 N级(阶)Runge-Kutta方法的一般形式:
yn1 yn h ( xn , yn , h)
j 1
N
(1)一级二阶的隐式中点方法:
yn1 yn hk1
hk1 h k1 f ( xn , yn ) 2 2
(2)二级四阶的隐式R-K方法:
h( k1 k2 ) yn1 yn 2 hk1 1 1 3 3 k1 f [ xn ( )h, yn ( )hk2 ] 2 6 4 4 6 hk2 1 3 1 3 k2 f [ xn ( )h, yn ( )hk1 ] 2 6 4 6 4
1 3 2 c1 , c2 , a2 4 4 3
h 2 2h yn1 yn [ f ( xn , yn ) 3 f ( xn h, yn f ( xn , yn ))] 4 3 3
三级方法:N =3
类似于N =2的推导方法,可得到
1 c1 c2 c3 1; c2 a2 c3a3 ; 2 1 1 2 2 c2 a2 c3a3 ; c3a2b32 6 3
1 [(a2 h)2 f xx 2a2b21h2 k1 f xy (b21h)2 k12 f yy ] O(h3 ) 2 f ( x, y) a2h[ f x ff y ]
(a2 h)2 [( f xx 2 ff xy f 2 f yy ] O( h3 ) 2 2 2 c2 a 2 h 3 ( x , y, h) (c1 c2 ) f c2a2 hF G O( h ) 2
Runge—Kutta法求解布拉修斯解摘要薄剪切层方程主要有三种解法
Runge —Kutta 法求解布拉修斯解摘要薄剪切层方程主要有三种解法,即相似解,非相似条件下对偏微分方程组的数值解和近似解。
布拉修斯解是布拉修斯于1908年求出的,它是零攻角沿平板流动的相似解。
本文用四阶Runge —Kutta 法求解高阶微分方程的方法,并用matlab 编程实现,求得了与实际层流边界层相符合的数值解。
关键词:布拉修斯解,相似解,Runge —Kutta 法,数值解。
1 布拉修斯近似解方程二维定常不可压缩层流边界层的方程为:0=∂∂+∂∂yvx u (1)22yuv dx d y u v x u u u u e e ∂∂+=∂∂+∂∂ (2)边界条件为:0=y )(,0x v u vw==:δ=y )(x u u e =将式(1)和式(2)进行法沃克纳—斯坎变换(简称F —S 变换),将边界层方程无量纲化,即设y x v u e 5.0⎪⎪⎭⎫⎝⎛=η (3)x x = (4)得出F —S 变换后的动量方程()[]()[]⎪⎭⎫ ⎝⎛∂∂''-∂'∂'='-+''++'''+x f f xf f x f m f f m f t k221211 (5)其中k 为流动类型指标,横曲率项t 为212120cos 211⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛++-=ηφe u vx L r L t (6) m 是量纲一的压力梯度参数,定义为xd du u x m ee =(7)其边界条件变为:0=η 0='f:∞=η 1='f对于二维平面实壁流动(:0=η0=w f )可以忽略横曲率项t 的轴对称流动,式(5)成为()[]⎪⎭⎫ ⎝⎛∂∂''-∂'∂'='-+''++'''x f f xf f x f m f f m f 2121 (8) 根据相似解的定义,方程(8)中的函数f 若式相似的,则它应只与η有关而与x 无关,即对x 的偏导数应为零。
matlab经典的4级4阶runge kutta法 -回复
matlab经典的4级4阶runge kutta法-回复使用MATLAB 实现经典的4 阶4 级Runge-Kutta 法引言:数值计算是现代科学和工程中的一个重要领域,它涉及到通过计算机模拟来解决数学问题。
在数值计算中,求解微分方程是一个常见的任务。
Runge-Kutta 法是求解微分方程的一种常见方法,它可以用于数值求解常微分方程和偏微分方程。
本文将介绍经典的4 级4 阶Runge-Kutta 法的原理,并使用MATLAB 来实现该方法。
一、原理介绍:Runge-Kutta 法是数值计算领域中最常用的方法之一。
它通过将微分方程的解逐步逼近来求解微分方程。
经典的4 级4 阶Runge-Kutta 法基于以下公式:\begin{align*}k_1 &= h f(t_n, y_n) \\k_2 &= h f(t_n + \frac{h}{2}, y_n + \frac{k_1}{2}) \\k_3 &= h f(t_n + \frac{h}{2}, y_n + \frac{k_2}{2}) \\k_4 &= h f(t_n + h, y_n + k_3) \\y_{n+1} &= y_n + \frac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4)\end{align*}其中,h 是步长,t_n 是当前时间点,y_n 是当前的解,f(t, y) 是微分方程的右手函数。
二、算法实现:现在我们将使用MATLAB 实现经典的4 级4 阶Runge-Kutta 法,并解决一个简单的一阶常微分方程。
首先,我们定义一个MATLAB 函数,用于实现4 级4 阶Runge-Kutta 法。
函数接受输入参数为微分方程的右手函数f(t, y),初始时间t_0,初始解y_0,以及步长h。
函数输出为一个数组,包含了每个时间点的解。
以下是MATLAB 代码实现:matlabfunction y = runge_kutta(f, t0, y0, h, num_steps)初始化解数组y = zeros(num_steps+1, 1);y(1) = y0;循环计算每个时间点的解for i = 1:num_stepst = t0 + (i-1)*h;计算k1, k2, k3, 和k4k1 = h * f(t, y(i));k2 = h * f(t + h/2, y(i) + k1/2);k3 = h * f(t + h/2, y(i) + k2/2);k4 = h * f(t + h, y(i) + k3);计算下一个时间点的解y(i+1) = y(i) + (k1 + 2*k2 + 2*k3 + k4)/6;endend接下来,我们使用这个函数来解决一个简单的一阶常微分方程。
数值分析Runge-Kutta-Fields方法
孙琪
【自适应龙格—库塔—费尔贝格方法】 在龙格—库塔方法中设计一个自动调节步长的方法,Fehlberg 在四阶方法和五阶方法 中选择参数从而得到具有相同函数赋值点的不同阶数的两个公式,因此只需要六个函 数赋值,便得到一个基于步长控制的局部截断误差的估计,所得到的龙格—库塔—费 尔贝格方法是五阶的。这些公式给出解的不同的近似值:
数值分析第七次程序作业
PB09001057
【问题】
应用 RKF45 或 RKF54 方法,设计实现自适应方法,求解如下常微分方程初值问题: y‘ = eyx + cos (y − x) y 1 =3 初值步长取为 h=0.01.在自适应方法中步长的选取采用第二种策略。 在解溢出前终止。 程序的输出:解的范围[1,?] 提示输入一个介于上述范围的值,应x 的值,横轴代表 t 的值,我们可以看到这与我们计算得到的结果是相同的, 所以我们得到了正确的结果。
【Mathematica 程序】
6
x t+h =x t +
i=1 6
ai Fi
x t+h =x t +
i=1 i −1
bi Fi
Fi = hf(t + ci h, x +
j=1
dij Fj )
误差项为:
6
e = x t+h −x t+h =
i=1
(ai − bi )Fi
其中公式中要求的多项式系数都已给出。 同时,另一个通用的每步控制误差的公式是: h = 0.9h[ δ 1/(1+p) ] e
取 M=100,δ = 10−5 ,b=2 得到:
二、
取 h=0.01,采取第二种策略 即有采用公式: h = 0.9h[ δ 1/(1+p) ] e
2Runge-Kutta方法
显式单步法的一般形式: yn1 yn h ( xn , yn , h) 构造高阶方法,即如何确定增量函数 ( x, y, h) 使得该方法的局部截断误差的阶数尽量高。
y( xn1 ) yn1 O(h
1、Taylor级数方法
p 1
) p 为尽可能大的整数
yn1 yn hf ( xn
1 Runge-Kutta二级方法 取 c1 c2 , a2 1 2
2
, yn
2
f ( xn , yn ))
h yn1 yn [ f ( xn , yn ) f ( xn h, yn hf ( xn , yn ))] 2
此时将步长折半一次计算,得到的为最终结果。
§3 单步法的收敛性、相容性和绝对稳定性
一、收敛性 /*Convergence*/
dy f ( x, y ) Def 1 对于初值问题 dx () 的一种 y( x0 ) y0 ; x x0
单步法 yn1 yn h ( xn , yn , h) 产生的近似解,如果
dy f ( x, y ) 设 y( x )满足初值问题: dx ( ) y( x0 ) y0 ; x x0
h y( xn1 ) yn1 y( xn ) hy( xn ) y( xn ) 2 ! h p ( p) p 1 y ( xn ) O( h ) yn h ( xn , yn , h) p!
前式中参数的求解方法
利用二元函数的Taylor展开公式:
1 i f ( x h, y k ) (h k ) f ( x , y ) x y i 0 i !
4阶runge-kutta原理
4阶Runge-Kutta方法是一种数值求解常微分方程的方法,它通过迭代的方式逐步逼近微分方程的解。
本文将从原理、推导以及应用等方面对4阶Runge-Kutta方法进行详细解读。
1. 原理4阶Runge-Kutta方法是数值分析中常用的数值解常微分方程的方法之一。
它的核心思想是利用哈密顿显式中点法求解微分方程。
该方法通过将微分方程的解离散化,然后通过计算每一步的斜率来逐步逼近方程的解,最终得到数值解。
2. 推导假设我们要求解如下的一阶常微分方程初值问题:$\frac{dy}{dx} = f(x, y)$$y(x_0) = y_0$其中$f(x, y)$是关于$x$和$y$的函数,$y_0$是初值,$x_0$是初始点。
现在我们希望通过4阶Runge-Kutta方法来求解上述方程。
我们将自变量$x$进行离散化,即将其分成$n$个小区间,每个小区间长度为$h$,即$x_i = x_0 + ih$,$i=0,1,2,...,n$。
然后我们利用下面的迭代公式来计算每一步的$y$的近似值:$k_1 = h f(x_i, y_i)$$k_2 = h f(x_i + \frac{h}{2}, y_i + \frac{k_1}{2})$$k_3 = h f(x_i + \frac{h}{2}, y_i + \frac{k_2}{2})$$k_4 = h f(x_i + h, y_i + k_3)$$y_{i+1} = y_i + \frac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4)$式中,$k_1$、$k_2$、$k_3$、$k_4$分别表示斜率的四个近似值,$y_{i+1}$表示下一个点的近似值。
3. 应用4阶Runge-Kutta方法在实际工程问题中有着广泛的应用。
它不仅可以用来解决一阶常微分方程,还可以推广到高阶微分方程、常微分方程组以及偏微分方程等更复杂的问题。
由于该方法的高精度和稳定性,它也被广泛应用于科学计算领域,例如物理学、工程学、生物学和经济学等各个领域。
数学实验“微分方程组数值算法四阶Runge-Kutta数值算法”实验报告(内含matlab程序)
N=(b-a)/h;
y=zeros(N+1,1);
y(1)=y0;
x=a:h:b;
var=findsym(f);
fori=2:N+1
K1=Funval(f,varvec,[x(i-1) y(i-1)]);
K2=Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K1*h/2]);
四、实验原理:
四阶Runge-Kutta数值算法:
对于求解一阶微分方程组问题
由初值问题的经典Runge-kutta公式可得一阶常微分
%四阶Runge-Kutta数值算法
functiony=DELGKT4_lungkuta(f, h,a,b,y0,varvec)
实验内容
微分方程组数值算法——四阶Runge-Kutta数值算法
成绩
教师
实验二十六实验报告
一、实验名称:微分方程组数值算法——四阶Runge-Kutta数值算法。
二、实验目的:进一步熟悉微分方程组数值算法——四阶Runge-Kutta数值算法。
三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。
K3=Funval(f,varvec,[x(i-1)+h/2 y(i-2)+K2*h/2]);
K4=Funval(f,varvec,[x(i-1)+h y(i-1)+h*K3]);
y(i)=y(i-1)+h*(K1+2*K2+2*K3+K4)/6;
end
formatshort;
西京学院数学软件实验任务书
Runge-Kutta法
3½×RK· ¨
1.422
¸ ĽøEuler· ¨
1.42
1.418 0.2965 0.297 0.2975 0.298 0.2985 0.299 0.2995 0.3 0.3005 17
§ 7.2 Runge-Kutta法
龙格-库塔(Runge-Kutta)方法简称R-K法,是一种应用较广的 高精度的单步法。
所谓单步法就是在计算yi时只用到前一步信息yi-1的方法。
本节介绍R-K法的构造原理、常用公式。
1
一、Runge-Kutta方法的构造原理 对于常微分方程的初值问题
y f ( x , y ) y( a ) y0 a xb
另一方面
h2 y( xi 1 ) y( xi ) hy( xi ) y( xi ) o(h3 ) 2
9
式(6)的局部截断误差:
en (h) y ( xi 1 ) yi 1 1 h 1 (1 2 ) y( xi ) h2 22 y( xi ) o(h3 ) 2
1 2 1 1 2 2 2
有无穷多组解,从而可以得到许多具体的二阶R -K公式 如:
1 2 1,2 1
1 1 0, 2 1, 2 2
10
用类似的方法也可以构造三阶R-K公式
h yi yi 1 ( K1 4 K2 K3 ) 6 K1 f ( xi 1, yi 1 ) h h K 2 f ( xi 1 , yi 1 K1 ) 2 2 K3 f ( xi 1 h, yi 1 h(2 K2 K1 ))
因而方法(8)有4阶精度
12
例1. 使用高阶R-K方法计算初值问题
