第二节 龙格-库塔方法汇总.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该公式可以看作是用 xi 和 xi1 两个点处的斜率 K1 和 K2 的算术平均值作为平均斜率。
由改进型欧拉公式我们可以猜想,如果在[ xi , xi1] 内多预测几个点的斜率,再对他们进行加权平均, 可能得到精度更好的平均斜率!
.精品课件.
2
下面以2阶龙格-库塔方法为例来阐述这种思想 考察区间 [ xi , xi1]上的一点 xi p xi ph, 0 p 1 , 用 xi 和 xi p 的斜率 K1 和 K2 的加权平均作为平均 斜率 K*的近似值:
y( xn1 )
y(h) n1
Ch5
Step2:取
h 为步长,再从 2
x n 出发,经过两步计算得到
3 6
)h,
yn
hk1 4
(
1 4
3 6 )hk2 ]
k2
1 f [xn ( 2
3
1
6
)h, yn
( 4
3 6
)hk1
hk2 4
]
.精品课件.
12
三、变步长方法
基本思想:根据精度自动地选择步长
对于经典Runge-Kutta方法: n 0,1, 2,
Step1:设从 xn出发,以 h为步长,经过一步计算得到
第二节 龙格-库塔法
基本思想:利用 f ( x, y) 在某些特殊点上的函数值的 线性组合来构造高阶单步法的平均斜率。
什么叫平均斜率?
对差商 y( xi1) y( xi ) 应用微分中值定理,有,
h
y( xi1) y( xi ) hy( xi h) 利用微分方程 y f ( x, y),有
并用它来估计斜率 K2 :
K2 f ( xi p , yi p )
于是得到如下形式的算法:
yi1 yi h(1K1 2 K2 ),
K1
f ( xi , yi ),
K
2
f ( xHale Waihona Puke Baidu1, yi
phK1 ).
通过适当选取参数 1, 2和 p 的值,使得公式具有
2阶精度!!
.精品课件.
4
由泰勒公式展开,要使公式具有 2 阶精度,只需
h yn1 yn 6 (k1 4k2 k3 )
k1
f ( xn , yn );
k2
f ( xn
h 2 , yn
h 2 k1)
k3 f ( xn h, yn hk1 2hk2 )
.精品课件.
6
四级方法:N = 4
局部截断误差 O(h5 )
常见的2种四阶方法:
经典龙格-库塔方法
h yn1 yn 6 (k1 2k2 2k3 k4 )
k1 f ( xn , yn )
k2
f
(
xn
h 2
,
yn
h 2 k1)
hh k3 f ( xn 2 , yn 2 k2 )
k4 f ( xn h, yn hk3 )
.精品课件.
7
例2:用经典的龙格-库塔方法
求解下列初值问题 h 0.1
dy 。 dx
y
2x y
x (0,1)
解:经典的四阶龙格-库塔公式: y(0) 1
y( xi1) y( xi ) hf ( xi h, y( xi h))
这里的 f ( xi h, y( xi h)) 称为平均斜率。
.精品课件.
1
可将改进的欧拉格式改写成
yi 1
1 2
( K1
K2 ),
K1 yi hf ( xi , yi ),
K
2
yi
hf ( xi1, K1 ).
ki f ( xn aih, yn h bijk j );i 1, ..., N
.精品课件.j 1
11
(1)一级二阶的隐式中点方法:
yn1 yn hk1
k1
f ( xn
h, 2
yn
hk1 ) 2
(2)二级四阶的隐式R-K方法:
yn1
yn
h(k1 k2 ) 2
k1
1 f [xn ( 2
即取
K * 1K1 2 K2 yi1 yi h(1K1 2 K2 )
其中1 和 2 是待定常数。若取 K1 f ( xi , yi ) ,则
问题在于如何确定 xi p 处的斜率 K2 和常数 1 和 2 。
.精品课件.
3
仿照改进的欧拉方法,用欧拉方法预测 y( xi p ) 的值,
yi p yi phK1
❖已经证明N级R-K方法的阶 p( N )具有下列关系:
N 1,2,3,4 5,6,7
p( N ) N
N-1
8,9 10,11,…
N-2 N 2
若要得到N阶以上方法,则使用N级隐式R-K方法
➢N级隐式R-K方法的一般形式: N
N级隐式R-K法
yn1 yn h ci ki
可以达到2N阶
i 1 N
0.1
0.2
0.3
0.4
0.5
yn 1.0954 1.1832 1.2649 1.3416 1.4142
xn
0.6 0.7 0.8 0.9 1.0
yn 1.4832 1.5492 1.6125 1.6733 1.7321
同保留5位的精确值完全一致: y 2x 1
xn
0.1
0.2
0.3
0.4
0.5
yn 1.0954 1.1832 1.2649 1.3416 1.4142
xn
0.6 0.7 0.8 0.9 1.0
yn 1.4832 1.5492 1.6125 1.6733 1.7321
.精品课件.
9
.精品课件.
10
二、高阶和隐式Runge-Kutta方法
注:对于显式N级R-K方法,最多只能得到N级方法;
h
yn1 yn 6 (k1 2k2 2k3 k4 )
h
k1 k3
yn
2 xn yn
;
h yn 2 k2
k2 2( xn yn
h 2( xn
yn 2 k1 h)
h yn 2
2 h
;
k4
yn hk3
2 k2
) 2 k1
2( xn yn
h) hk3
.精品课件.
8
xn
f ( xn ,
yn )
f ( xn
h,
yn
hf ( xn ,
yn ))]
.精品课件.
5
❖三级方法:N = 3 类似于N = 2的推导方法,可得到
1
c1 c2 c3 1; c2a2 c3a3
c2a22
c3a32
1; 3
c3a2b32
1 6
; 2
O(h4 )
常见的2种三阶方法:
库塔三阶方法
1 2 1,
2
p
1 2
O(h3 )
方程组有无穷多解:二级方法有无穷多种
常见的3种二级方法:
1
中点法(修正的Euler法) h
取 c1
h
0, c2
1, a2
2
yn1
yn
hf ( xn
, 2
yn
2
f ( xn ,
yn ))
1
二阶龙格库塔方法
取 c1 c2 2 , a2 1
h
yn1
yn
[ 2