3.2 runge-kutta 积分法
DESCRIPTION
3.2 Runge-Kutta 积分法. 基本 思想: 用几个点上的 的一阶导函数值的线性组合来近似代替 在某一点的各阶导数,用 Taylor 级数展开式确定线性组合中各加权系数。 既可避免计算高阶导数,又可提高数值积分的精度,这就是 Runge-Kutta 法的基本思想。. 3.2.1 Runge-Kutta 数值积分公式的推导. 考虑如下一阶微分方程 假定 是 (3.12) 式的解析解。将 展成 Taylor 级数 其中. 于是 其中 - PowerPoint PPT PresentationTRANSCRIPT
3.2 Runge-Kutta 积分法 基本思想:用几个点上的 的一阶导函数值的线性组合来近似代替 在某一点的各阶导数,用 Taylor级数展开式确定线性组合中各加权系数。 既可避免计算高阶导数,又可提高数值积分的精度,这就是 Runge-Kutta法的基本思想。
ty ty
3.2.1 Runge-Kutta 数值积分公式的推导考虑如下一阶微分方程 假定 是 (3.12) 式的解析解。将 展成 Taylor级数
其中
00,, Ytyytfdtdy
ty ty 12.3
tyhtyhtyhty 2
2 13.3
yfytf
tf
ty
yf
tfytf
dtdty
ytfty
,,
,
于是 其中 为了避免计算 等导数项,将 写成如下线性组合形式
其中 称为阶数, 待定系数, 由下式决定
且定义
yt fffhythftyhty 2
,2
14.3
yffytff
tff yt
,,,
yf
tf
, hty
r
iiikbhtyhty
1
15.3
r ib ik
rikatyhctfki
jjjii
,3,2,1,,1
1
16.3
01 c
下面针对 r 的取值进行讨论。 (1) , 此时 , 式 (3.15) 成为
取 即得一阶 RK公式,它就是 Euler公式。换句话说, Euler公式是 RK公式的特例 。
ytfkc ,,0 11 1r
ythfbtyhty ,1 21.3
11 b
(2) 由 (3.16) 知
将 在点 展成 Taylor级数
2r
18.3
hkatyhctfkytfk
1122
1
,,
hkatyhctf 112 , yt,
hkatyhctf 112 ,
tyytf
yhaytf
thcytf
,,, 12
将 (3.19) 代入到 (3,18) ,然后再将 (3.18) 代入(3.15) ,得
ty
yfhba
tfhcbythfbbty
tyytf
yhaytf
thcytfhbythfbty
khbhkbtykbhtyhtyi
ii
221
22221
1221
2
2
1211
,
,,,,
将 (3.20) 与 (3.14) 逐项进行比较,令其对应项系数相等,可得
(3.21) 是一个不定方程组,它有无穷多个解。
21211
21
22
21
bacbbb
21.3
取 , 可得
取 可得
22.3
21,1,0,
21
2211 cbba
12
1
21
2,
2
,
khyhtfk
ytfkhkyy
nn
nn
nn
,32,
43,
41,
32
2211 cbba
12
1
211
32,
32
,
34
hkyhtfk
ytfk
kkhyy
nnn
nn
nn
23.3
取 可得
式 (3.24) 正好是改进 Euler公式。
,1,21,1 1211 cbba
12
1
211
,,
2
hkyhtfkytfk
kkhyy
nn
nn
nn
24.3
(3) 按前面的推导方法可得常用的 3 阶Runge-Kutta 公式
3r
23
12
1
311
32,
32
3,
3
,
34
hkyhtfk
khyhtfk
ytfk
kkhyy
nn
nn
nn
nn
25.3
(4) 可得 4 阶 Rung-Kutta公式 ( 简称 RK4公
式 ) 如下
称 为第 个 Runge-Kutta系数。
),(
)2,2(
)2,2(
),(
)22(6
34
23
12
1
43211
hkyhtfk
khyhtfk
khyhtfk
ytfk
kkkkhyy
nn
nn
nn
nn
nn
26.3
4,3,2,1iki i
4r
RK 法的特点: 1 需要存储的数据少,占用的存储空间少;2 只需知道初值,即可启动递推公式进行计算,可自启动;3 容易实现变步长运算。4 每积分一步需要计算多次右函数,计算量大。
3.2.2 四阶 Runge-Kutta 法的向量公式 对于高阶系统: 用向量形式表示 阶动力学系统的微分方程或状态方程。
其中 是 维状态向量; 是 维向量函数,而
00 0,YYtY
ytFY 27.3
tytytytY n,,, 21 nfffytF ,,,, 21
nitytytytff nii ,2,1,,,,, 21
n
n
n
四阶 Ruung-Kutta 的向量表示为
其中 是微分方程组中的第 个方程的第 个 RK系数。
34
23
12
1
43211
,21,
2
21,
2
,
2261
kYhthFk
KYhthFk
kYhthFk
YthFk
kkkkYY
mm
mm
mm
mm
mm
4,3,2,1;,,2,1,,,, 21 jnikkkkk ijnjjjj
i j
28.3
为了应用上的方便,将 (3.28) 具体列写如下:
其中 为系统阶数, 为递推下标。n
32321314
22221213
12121112
211
4321,1,
,,,,21,,
21,
21,
2
21,,
21,
21,
2
,,,
2261
nnmmmmii
nnmmmmii
nnmmmmii
nmmmmii
iiiimimi
kykykyhthfk
kykykyhthfk
kykykyhthfk
yyythfk
kkkkyy
;,2,1 ni m
例 3.2 已知系统方程 取步长 ,计算 时的 的值解:状态方程
( 1 ) 所有变量(方程)的第一个 RK系数
10,00,025.0 yyyyy
1.0h 2.01.0 ,t y
),,(5.02
),,(
212212
21121
yytfyyy
yytfyy
01
20
10
yy
0),,( 202000111 hyyythfk1k
)5.02(1.0),,( 20102000221 yyyythfk
2.0)05.012(1.0
(2) 所有变量的第二个 RK系数01.0)
21()
21,
21,
2( 2120212011100112 kyhkykyhthfk
195.0)]22.00(5.0)01(2[1.0)]
21(5.0
)21(2[)
21,
21,
2(
2120
1110212011100222
ky
kyhkykyhthfk
2k
3k
(3) 所有变量的第三个 RK 系数)
21()
21,
21,
2( 2220222012100113 kyhkykyhthfk
00975.0)
21,
21,
2( 222012100223 kykyhthfk
)]21(5.0)
21(2[ 22201210 kykyh
196125.0)]195.0210(5.0)01.0
211(2[1.0
(4) 所有变量的第四个 RK 系数 4k
)(),,( 2320232013100114 kyhkykyhthfk 0196125.0196125.01.0
),,( 232013100224 kykyhthfk
19214.0)]196125.00(5.0
)00975.01(2[1.0
)](5.0)(2[ 23201310 kykyh
)21
21(
61
141312111011 kkkRyy
01.1
)0196125.02
00975.0201.00(
611
)21
21(
61
242322212021 kkkRyy
18.0
)19214.02
196125.02195.02.0(
610