数值分析常微分方程的数值解法

数值分析常微分方程的数值解法
数值分析常微分方程的数值解法

《计算机数学基础》数值部分第五单元辅导

14 常微分方程的数值解法

一、重点内容 1. 欧拉公式:

),...,,,()

,()(1-210=???+=+=≈01+1+n k kh x x y x hf y y x y k

k k k k k

局部截断误差是O (h 2)。

2. 改进欧拉公式:

预报-校正公式:

??

???++=+=++++)],(),([2),(1111k k k k k k k k k k y x f y x f h

y y y x hf y y 校正值

预报值

即 ))],(,(),([2

11k k k k k k k k y x hf y x f y x f h

y y +++

=++ 或表成平均的形式:

???

?

?

????

+21=+=+=1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y

改进欧拉法的局部截断误差是O (h 3)

3. 龙格-库塔法

二阶龙格-库塔法的局部截断误差是O (h 3) 三阶龙格-库塔法的局部截断误差是O (h 4) 四阶龙格?库塔法公式: )22(6

43211κκκκ++++

=+h

y y k k

其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +2

1

h κ2);κ4=f (x k +h ,y k +h κ3)

四阶龙格-库塔法的局部截断误差是O (h 5)。

二、实例

例1 用欧拉法解初值问题???1

=060≤≤0--='2)()

.(y x xy y y ,取步长h =0.2。计算过程保留

4位小数。 解h =0.2, f (x )=-y -xy 2。首先建立欧拉迭代格式

)

,,)((.),(210=-420=--=+=2

1+k y x y y hx hy y y x hf y y k k k k

k k k k k k k

当k =0,x 1=0.2时,已知x 0=0,y 0=1,有

y (0.2)≈y 1=0.2×1(4-0×1)=0.8000

当k =1,x 2=0.4时,已知x 1=0.2, y 1=0.8,有 y (0.4)≈y 2=0.2×0.8×(4-0.2×0.8)=0.614 4 当k =2,x 3=0.6时,已知x 2=0.4,y 2=0.6144,有 y (0.6)≈y 3=0.2×0.6144×(4-0.4×0.4613)=0.8000

例2 用欧拉预报-校正公式求解初值问题???1

=10

=++'2)(sin y x y y y ,取步长h =0.2,计算

y (0.2),y (0.4)的近似值,计算过程保留5位小数。 解 步长h =0.2, 此时f (x ,y )=-y -y 2sin x 欧拉预报-校正公式为:

??

?

?

?++=+=++++)]

,(),([2

),(111

1k k k k k k k k k k y x f y x f h

y y y x hf y y 校正值预报值

有迭代格式:

??

????

?

??+--=--+--+=-=--+=++++++++)sin (1.0)sin 1.09.0()]sin ()sin [(2)sin 2.08.0()

sin (12

1112112

121k k k k k k k k k k k k k k k k k k k k k k x y y x y y x y y x y y h y y x y y x y y h y y 校正值预报值 当k =0,x 0=1, y 0=1时,x 1=1.2,有 631710=11?02-80?1=20-80=0001.)sin .()sin ..(x y y y

715490=21631710+63171010-1?1?10-90?1=≈212

1.).sin ..(.)sin ..().(y y 当k =1,x 1=1.2, y 1=0.71549时,x 2=1.4,有

47697

0=21715490?02-80?715490=20-80=1112.)

.sin ..(.)sin ..(x y y y

)

.sin ..(.).sin ...(.).(41476970+47697010-21?715490?10-90?715490=≈412

2

y y

=0.52608

例3 写出用四阶龙格-库塔法求解初值问题?

??2=03-8=')(y y

y 的计算公式,取步长h =0.2计

算y (0.4)的近似值。计算过程保留4位小数。

解 此处f (x ,y )=8-3y , 四阶龙格-库塔法公式为

)22(643211κκκκ++++=+h

y y k k

其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +2

1

h κ2);κ4=f (x k +h ,y k +h κ3)

本例计算公式为: )(.43211++2+2+6

2

0+

=κκκκk k y y

其中 κ1=8-3 y k ;κ2=5.6-2.1 y k ;κ3=6.32-2.37y k ; κ4=4.208+1.578y k

)

1,...,2,1,0(5494.02016.1))

578.1208.4()37.232.6(2)1.26.5(238(6

2

.01-=+=-+-+-+-+

=+n k y y y y y y y k k k k k k k 当x 0=0,y 0==2,

4654

2=30042?54940+20161=54940+20161=≈403004

2=2?54940+20161=54940+20161=≈201201......).(.....).(y y y y y y

例4 设初值问题1=00=+')(,y y y ,证明用梯形公式求解该问题的近似解为

n

n h h y ??

? ??+2-2=

证明 解初值问题的梯形公式为

)],(),([2

111+++++=k k k k k k y x f y x f h

y y (k =0,1,2,…,n -1)

y y x f -=),(

][2

11++--+=∴k k k k y y h

y y

整理成显式

k k y h h y ??

?

??+-=+221( k =0,1,2,…,n -1)

用k =n ,n -1,n -2,…,1,0反复代入上式,得到

01

23121

22...222222y h h y h h y h h y h h y n n n n n +--+??

? ??+-==??? ??+-=??? ??+-=??? ??+-=

n

n h h y y ??

?

??+2-2=∴1

=0

例5 选择填空题:

1. 取步长h =0.1, 用欧拉法求解初值问题?????

1

=1+='2)(y y

x

y y 的计算公式是 答案:1,1,...,2,1,0],)1.01(1

.01.1[02

1=-=++=+y n k k y y k k

解答:欧拉法的公式

),...,,,()

,()(1-210=??

?+=+=≈01+1+n k kh

x x y x hf y y x y k k k k k k

此处y x

y

y x f +=2),(,迭代公式为 1=210=10+11

0+11=+10+110+=02

21

+y k k y y k y y y k k k k k ,...,,,),)

.(..()).((.

2. 改进欧拉法的平均形式公式是( )

(A)?????????+21=+=+=1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y (B)???

?

?

????

+21=+=+=1+1+1+)

(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y

(C)?????????+2=+=+=1+1+)(),(),(c p k p k k c k k k p y y h y y x hf y y y x hf y y (D)???

?

?

????+21=+=+=1+1+)

(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y

答案:(D)

解答:见改进欧拉法平均形式公式。 三、练习题

1.求解初值问题???=='00

y x y y x f y )()

,(欧拉法的局部截断误差是( ); 改进欧拉法的局部截断

误差是( ); 四阶龙格-库塔法的局部截断误差是( )

(A)O (h 2) (B)O (h 3) (C)O (h 4) (D)O (h 5)

2. 改进欧拉预报-校正公式是

????

?2+=+=1+1+]

[h

y y y y k k k k 校正值

预报值

改进欧拉法平均形式公式为y p = , y c = ,y k +1= 试说明它们是同一个公式。

3. 设四阶龙格-库塔法公式为

)22(643211κκκκ++++=+h

y y k k

其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +2

1

h κ2);κ4=f (x k +h ,y k +h κ3)

取步长h =0.3,用四阶龙格-库塔法求解初值问题?

??0=0-1=')(y y

y 的计算公式

是 。

4.取步长h =0.1, 用欧拉法求解初值问题?????1

=01≤≤02

1

=')()

(y x xy y

5. 试写出用欧拉预报-校正公式求解初值问题?

??1=00

=+')(y y y 的计算公式,并取步长

h =0.1,求y (0.2)的近似值。要求迭代误差不超过10-

5。

6. 对于初值问题???1

=0='2

)(y xy y 试用(1)欧拉法;(2)欧拉预报-校正公式;(3)四阶龙格-库

塔法分别计算y (0.2),y (0.4)的近似值。

7. 用平均形式改进欧拉法公式求解初值问题???0

=0=+')(y x

y y 在x =0.2,0.4,0.6处的近似值。

8. 证明求解初值问题的梯形公式是

y k +1=y k +)],(),([2

11+++k k k k y x f y x f h , h =x k +1-x k (k =0,1,2,…,n -1), 四、练习题答案 1. (A), (B), (D)

2. ),(k k y x hf ; ),(),(1+1++k k k k y x f y x f y k +),(k k y x hf ; )(2

1

),(1c p p k k y y y x f y +++ 只需将y c , y p 的表达式代入到y k +1中,就得到预报-校正公式。 3. )1,...,2,1,0(2591625.12591625.0-=+n k y k

提示:其中 κ1=1-y k ;κ2=0.85(1-y k );κ3=0.8725(1-y k );κ4=0.73825(1-y k )

)

1,...,2,1,0(2591625.12591625.0))

1(73825.0)1(745.1)1(7.11(63

.01-=+=-+-+-+-+=+n k y y y y y y y k k k k k k k

4.y 1=1,y 2=1.005 000,y 3=1.010 025,y 4=1.025 175,y 5=1.045 679,

y 6=1.078 21,y 7=1.103 976,y 8=1.142 615,y 9=1.188 320,y 10=1.241 794

5. 计算公式为

)1,...,2,1,0(05.095.09.01

11-=????

?-==+++n k y y y y y k k k k

k 22211≈20???809

8180=286

8140=??

?9050=90=y y y y y y ).(,..,.. 6.欧拉法:y (0.2)≈1.000 00; y (0.4)≈1.080 00

欧拉预报-校正公式:y (0.2)≈1.020 84; y (0.4)≈1.042 40 四阶龙格-库塔法:y (0.2)≈1.002 673 ; y (0.4)≈1.021 798 7. y p =0, y c =0.04, y 1=0.02;

y p =0.056, y c =0.0888, y 2=0.0724; y p =0.13792, y c =0.164816, y 3=0.151368 8. 提示:见教材关于梯形公式的推导。

相关主题
相关文档
最新文档