3.2 runge-kutta 积分法

20
3.2 Runge-Kutta 积积积 基基积积基基基基基基 基基基基基基 基基基基基基基基基 基基 基基基基基基基 基 一, Taylor 基基基基基基基基基基基基基基基基基基基基基基基基基基基 基基基基基基基 基基基基 基基基 Runge-Kutta 基基基基基基 t y t y

Upload: matthew-trujillo

Post on 15-Mar-2016

194 views

Category:

Documents


6 download

DESCRIPTION

3.2 Runge-Kutta 积分法. 基本 思想: 用几个点上的 的一阶导函数值的线性组合来近似代替 在某一点的各阶导数,用 Taylor 级数展开式确定线性组合中各加权系数。 既可避免计算高阶导数,又可提高数值积分的精度,这就是 Runge-Kutta 法的基本思想。. 3.2.1 Runge-Kutta 数值积分公式的推导. 考虑如下一阶微分方程 假定 是 (3.12) 式的解析解。将 展成 Taylor 级数 其中. 于是 其中 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3.2 Runge-Kutta  积分法

3.2 Runge-Kutta 积分法 基本思想:用几个点上的 的一阶导函数值的线性组合来近似代替 在某一点的各阶导数,用 Taylor级数展开式确定线性组合中各加权系数。 既可避免计算高阶导数,又可提高数值积分的精度,这就是 Runge-Kutta法的基本思想。

ty ty

Page 2: 3.2 Runge-Kutta  积分法

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

,,

,

Page 3: 3.2 Runge-Kutta  积分法

于是 其中 为了避免计算 等导数项,将 写成如下线性组合形式

其中 称为阶数, 待定系数, 由下式决定

且定义

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

Page 4: 3.2 Runge-Kutta  积分法

下面针对 r 的取值进行讨论。 (1) , 此时 , 式 (3.15) 成为

取 即得一阶 RK公式,它就是 Euler公式。换句话说, Euler公式是 RK公式的特例 。

ytfkc ,,0 11 1r

ythfbtyhty ,1 21.3

11 b

Page 5: 3.2 Runge-Kutta  积分法

(2) 由 (3.16) 知

将        在点   展成 Taylor级数

2r

18.3

hkatyhctfkytfk

1122

1

,,

hkatyhctf 112 , yt,

hkatyhctf 112 ,

tyytf

yhaytf

thcytf

,,, 12

Page 6: 3.2 Runge-Kutta  积分法

将 (3.19) 代入到 (3,18) ,然后再将 (3.18) 代入(3.15) ,得

ty

yfhba

tfhcbythfbbty

tyytf

yhaytf

thcytfhbythfbty

khbhkbtykbhtyhtyi

ii

221

22221

1221

2

2

1211

,

,,,,

Page 7: 3.2 Runge-Kutta  积分法

将 (3.20) 与 (3.14) 逐项进行比较,令其对应项系数相等,可得

(3.21) 是一个不定方程组,它有无穷多个解。

21211

21

22

21

bacbbb

21.3

Page 8: 3.2 Runge-Kutta  积分法

取           , 可得

取           可得

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

Page 9: 3.2 Runge-Kutta  积分法

取         可得

  式 (3.24) 正好是改进 Euler公式。

,1,21,1 1211 cbba

12

1

211

,,

2

hkyhtfkytfk

kkhyy

nn

nn

nn

24.3

Page 10: 3.2 Runge-Kutta  积分法

(3) 按前面的推导方法可得常用的 3 阶Runge-Kutta 公式

3r

23

12

1

311

32,

32

3,

3

,

34

hkyhtfk

khyhtfk

ytfk

kkhyy

nn

nn

nn

nn

25.3

Page 11: 3.2 Runge-Kutta  积分法

(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

Page 12: 3.2 Runge-Kutta  积分法

RK 法的特点: 1 需要存储的数据少,占用的存储空间少;2 只需知道初值,即可启动递推公式进行计算,可自启动;3 容易实现变步长运算。4 每积分一步需要计算多次右函数,计算量大。

Page 13: 3.2 Runge-Kutta  积分法

3.2.2 四阶 Runge-Kutta 法的向量公式 对于高阶系统: 用向量形式表示 阶动力学系统的微分方程或状态方程。

其中 是 维状态向量; 是 维向量函数,而

00 0,YYtY

ytFY 27.3

tytytytY n,,, 21 nfffytF ,,,, 21

nitytytytff nii ,2,1,,,,, 21

n

n

n

Page 14: 3.2 Runge-Kutta  积分法

四阶 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

Page 15: 3.2 Runge-Kutta  积分法

为了应用上的方便,将 (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

Page 16: 3.2 Runge-Kutta  积分法

例 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

Page 17: 3.2 Runge-Kutta  积分法

(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

Page 18: 3.2 Runge-Kutta  积分法

(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

Page 19: 3.2 Runge-Kutta  积分法

(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

Page 20: 3.2 Runge-Kutta  积分法

)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