117
浙浙浙浙浙浙浙浙浙浙浙 浙浙浙浙浙浙浙浙浙 《》 1 第第第 第第第第第第 第第第第第第 6.1 第第第第第第第第第第第 6.2 第第第第第第 6.3 第第第第第第

第六章 常微分方程及 方程组的解法

  • Upload
    ova

  • View
    174

  • Download
    4

Embed Size (px)

DESCRIPTION

第六章 常微分方程及 方程组的解法. 6.1 常微分方程及其求解概述 6.2 初值问题解法 6.3 边值问题解法. 6.1 常微分方程及其求解概述 6.2 初值问题解法 1.Euler 方法 2 . 线性多步法 3.Runge--Kutta 法 4. 方程组及刚性问题的 Gear 方法 6.3 边值问题解法 1.Shooting( 试射法 ) 2. 差分法. 6.1 常微分方程及求解概述 ( Ordinary Differential Equations, ODE). - PowerPoint PPT Presentation

Citation preview

Page 1: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 1

第六章 常微分方程及 方程组的解法

6.1 常微分方程及其求解概述

6.2 初值问题解法

6.3 边值问题解法

Page 2: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 2

6.1 常微分方程及其求解概述6.2 初值问题解法 1.Euler 方法 2. 线性多步法 3.Runge--Kutta 法 4. 方程组及刚性问题的 Gear 方法

6.3 边值问题解法 1.Shooting( 试射法 )

2. 差分法

EquationsalDifferentiOrdinaryODEs

Page 3: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 3

6.1 常微分方程及求解概述( Ordinary Differential Equations, ODE)

6.1.1 基本概念

描述自由落体的 ODE:

的运动轨迹。

唯一确定了那么

时时

或设:

时若设:

tssODE

st

st

sst

mgdt

sd

16

3601

00

261,00

16

1

0

'0

2

2

Page 4: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 4

只有一个自变量的微分方程为 ODE,

否则称为偏微分方程 PDE 。

方程中未知函数导数的最高阶数称为 方程的阶。 ( 6-4 )是二阶的

方程中关于未知函数及其各阶导数

均是一次的,则称为线性微分方程。

462

2

xrdx

dyxq

dx

yd如:

和( 6-1 )都是线性二阶 ODE 。

(6-2),(6-3) 是 (6-1) 的初始条件。亦称定解

条件。 (6-1)(6-2) 叫做初值问题。

6.1.1

Page 5: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 5

6.1.1

( 6-1 ),( 6-3 )叫做边值问题。

在没有给定解条件时。方程一般

有一族解曲线 y(x,c) 。如:

为任意常数。有解 ccecxy

ydx

dy

x

,

对任意的 n 阶 ODE ,如果能写成: 56,,,, 1' nn yyyxfy

则称该方程为显式的。方程( 6-4 )是

显式的。而下面方程是隐式的。

xyyy '' expsin

Page 6: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 6

对于高阶显式方程。通过定义 n-1 个

新变量,可以写成 n 维一阶方程组。

即令:

向量形式:一般我们把方程组写成

组:可以改写为如下的方程那么

76

,,,,

56

661,,1,

110'

1

1'

2

2'1

1'0

0

1

nn

nn

ii

yyyxfy

yy

yy

yy

xyxy

nidx

xdyxy

6.1.1

Page 7: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 7

yxfy ,'

Tn

Tn

ffff

yyyy

110

110

,,,

,,,

这里:

在讨论初值问题时,我们从一阶方

程开始:

00

' ,

yxy

yxfy

然后毫不费力地套用来解方程组。

当 f(x,y) 与 y 无关时, f(x,y)=g(x)

广泛的意义。故求解微分方程具有更

变为积分问题则初值问题

00

00

'

, yxycdxxgy

yxy

xgy

6.1.1

Page 8: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 8

6.1.2 数值解及其重要性

难以求积。而

的解是

例如但仍然得不到精确解。量的显示形式,有的解可以表示为自变

故得不到精确解。不能表示为初等函数,

例如方程不定积分的组合表示。及其的解很少能用初等函数

x t

x tx

dte

dteexy

xyy

yxy

ODE

0

0

'

22'

2

22

21

Page 9: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 9

6.1.3 ODE 数值解的基本思想和方法特点

基本思想有两点

1. 离散化

用 Taylor 级数,数值积分和差商

逼近导数等手段,把 ODE 转化为离散

的代数方程 ( 称差分方程 ) 。

2. 递推化

在具有唯一解的条件下,通过

步进法逐步计算出解在一系列离散

点上的值。从而得到原 ODE 的数值

近似解。

Page 10: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 10

6.2 初值问题解法

我们讨论一阶 ODE ,而高阶可

能化为一阶 ODEs 。一阶初值问题

可以一般地写成:

86,,

00

0

yxy

Xxxyxfdx

dy

6.2.1 欧拉( Euler )方法

Euler 方法是求解 (6-8) 最简单方法,

但精度差,故不实用。然而对理论分

析很有用。

Page 11: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 11

6.2.1.1 方法原理及推导

设初值问题 (6-8) 满足:

2121

21

0

,,

,,,,,0

)

,:)

yyLyxfyxf

RyxyxL

Lipschitzyfb

yXxxRfa

对常数条件:满足关于

内连续。在区域

内有界。在

条件来代替:验的可用更强的,但便于检

就存在唯一的解。那么

Ry

f

ba

)),

86

6.2.1

Page 12: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 12

为变步长。则称

上述划分是任意的:称为定步长。若其中

等分,得到节点分成把

1

11

0

0

0

,,2,1

,,1,0

:,

i

iii

i

i

h

nihxx

nxXh

niihxx

xnXx

11110 xxxxx

0y

0y

0y

6.2.1

图 6.1 常微分方程初值问题的数值解

Page 13: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 13

公式。称为的近似。作为

于是,我们取

故。其中

级数构造:用

Eulerxy

niyxy

yxhfyy

ni

xyxhfxy

xhyxyxy

xx

yh

xhyxyhxy

Taylori

i

iiii

iii

iii

ii

i

iii

96

961,,1,0

,

1,,1,0

,

2

)

1

00

1

'1

1

''2

'

6.2.1

Page 14: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 14

欧拉方法的几何意义:

nx

Xxxx 210

0y

Xy

ny

1xy

2xy

1y

2y

h 步长

6.2.1

图 6.2 Euler 方法的几何意义

Page 15: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 15

余项,得:分,舍去若用梯形公式来计算积

。公式得

即并使得舍去余项

分,得并用左矩形公式计算积令

改写成积分形式把

用数值积分法构造

96

,,

,

,

,

86

)

1

Euler

yhxyR

Rxyxhfxyhxy

xx

dxxyxfxyhxy

ii

iii

iiiii

i

hx

x

1061,,1,0

,,2

00

111

niyxy

yxfyxfh

yy iiiiii

6.2.1

Page 16: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 16

:改为以下预估一校正式一般地,把隐式格式

隐式。半隐法:可化为显式的

公式隐式:如改进的

公式显式:如

全部算出可计算单步法:由

公式。称为改进的这个公式

106

)

106)

96)

)

)96(

1

e

Eulerd

Eulerc

yyya

Euler

iii

1161,,1,0

,,2

,

00

0111

01

niyxy

yxfyxfh

yy

yxhfyy

iiiiii

iiii

校正

予估

6.2.1

Page 17: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 17

6.2.1

0x 2ix 1ix 2ixix1ix nx

多步法

单步法

自动起步

显式

隐式

半隐式

图 6.3 ODE 求解方法的类型

Page 18: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 18

hvss

hvv

s

v

Euler

gm

v

s

vdt

ds

mgdt

dv

ts

ts

mgdt

sd

mmm

mm

11

1

0

0

0'

0

2

2

10

0

10

.10,1

100

0010

0

方法:则:由加速度令质量

初值问题:

2

0

0

5

10

ttvts

tvtv

真解:

m t vm sm m t vm sm s(t)

0

1

2

3

4

0.

1.

2.

3.

4.

10.

0.

-10.

-20.

-30.

0.

10.

10.

0.

-20.

012345678

0.0.50.

-5.0-10.-15.-20.-25.-30.

10.5.0.-5.

-10.-15.-20.-25.-30.

0.5.7.57.55.0.

-7.5-17.5-30.

0.3.75

5.3.75

0.-6.25-15.

26.25-40.

0.1h 5.0h

表 6.1 自由落体运动方程的 Euler 公式求解

6.2.1

Page 19: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 19

t4321 t4321

40

30

20

10

0

10

40

30

20

10

0

10

v s

图 6.4 运动轨迹

6.2.1

Page 20: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 20

图 6.5 Euler 公式的误差

6.2.1.2 Euler 方法的误差估计

一般其它方法的误差估计也类似。

这里误差是指截断误差 ( 算法理论误

差 )

而不是舍入误差。后者由计算机字

长等决定,属于稳定性问题。 i) 几何分析

ii yxy

iy

ix 1ix

1ixy1iy

xy

iiii yxhfyy ,1

6.2.1

Page 21: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 21

6.2.1

证明作为习题)

这里:

有方法而对改进的

则有

若满足生。称为该误差由当前一步所产

有是精确的,则对设定量分析

(

,,

,2

106

,2

,,

!2

96

)

0'''

33

22

0''

''2

11

XxxMxy

hORMh

R

Euler

hORMh

R

XxxMxy

Ryh

yxy

xyy

ii

ii

ii

iiii

ii

局部截断误差,

Page 22: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 22

6.2.1

整体截断误差:设 ym 是 Euler 公式( 6-9 )

精确解,而 y(x) 是初值问题( 6-8 )的解。

则 整体截断误差定义为

它是局部截断误差的积累。

定理:若 f(x,y) 关于 y 满足 Lipschitz 条件。

则有估计式: )126()1(01 LXLX

m ehL

Re

的步长的区间上限局部截断误差上界

常数

xh

xX

R

LipschitzL

mmm xyy

Page 23: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 23

6.2.1

hL

hLRhL

hLRhL

hLRhL

RhL

Rxyxfyxfh

Rxyxhfxyhxy

yxhfyy

mm

m

j

jm

m

mm

mmmmmmm

mmmmm

mmmm

111

11

111

1

,,

,

,

1

01

00

1

12

1

1

1

递推

相减得:

证明:

Page 24: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 24

6.2.1

。方法,对改进

同阶。整体截断误差与方法的说明可记为

上式得:

代入,将若

于是得:

注意到:

2

1

2

000

01

11

1

,

12

20

,2,1,0

1

11

1

hOEuler

h

EulerhO

eL

hM

Mh

Rxyy

m

ehL

Re

ehLhL

Xhmx

m

m

LXm

LXLXm

LXXh

m

m

ex

x

x

11lim

Page 25: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 25

6.2.1

立是差分方程的解,若成初值问题的解是收敛性:设

收敛性、稳定性讨论

使用上述结果。是不知道的。因此难以

的估计式中的实际上,

误差容易估计。决定,但局部方法的精度由整体误差误差低一阶。一般来说,整体比局部

说明:

my

ODExy

MMxyiii

ii

i

,

.3.1.2.6

''

0maxlim10

mm

nmhxyy

Page 26: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 26

6.2.1

况。严格定义为:的差分方程解的变化情

初值的改变导致公式

不能无限缩小。所以实际上对对解的影响。误差的积累可能扩大了

时离散点增多。舍入当方法是收敛的,且阶为

。则称差分方程是收敛的

96

0

h

h

hOEuler

注意:

稳定性:

,2,1,

,0

,

,,,,

00

0

000

mvucvu

Xmhhh

vu

vuhc

mm

mm

对当满足:

它们的解使对定义:

Page 27: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 27

6.2.1

证毕。

证明:记

方法是稳定的。则条件,的事实上,若

方法是稳定的。则称

0

01

1

1

1

1

1

,,

,

,

,

LX

m

m

mmmmmm

mmmm

mmmm

mmm

e

hL

hL

vxfuxfh

vxhfvv

uxhfuu

vu

Euler

Lipschizyxf

Euler

Page 28: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 28

6.2.1

的区域范围。的存在稳定实际上,对给定的问题

为常数。这里

可推知

和初值,由对给定的步长

。而不是总是适当大小,限状况。实际计算中,

一种极对以后解的影响。它是始误差时,初稳定性实际上描述了当

0

0

,

0

0

yh

c

mncxyy

xyy

h

h

h

nn

mm

绝对稳定:

Page 29: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 29

6.2.1

时可提高一阶精度。

故取

:的一次项为组合后,可使

时,有而步长为

法的近似解:

外推法外推技巧

xyxyxy

h

h

hchcxyxy

Euler

Richardson

hh

h

2

221

2

0

2

.4.1.2.6

221

2

4

1

2

1hchcxyxy

h

222 hOxyxyxy hh

Page 30: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 30

6.2.1

阶精度。它具有

故可取

阶方法计算若用

1

122

1462

136

:,

12

12

1

2

p

hOxyxyxy

hOhcxyxy

hOhcxyxy

xyxyp

pphhp

Ppp

ph

ppp

h

hh

156212

1 2

xyxyxy hhpp

Page 31: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 31

6.2.1

12 21

146136

ppp

phh hOhCxyxy

:,由估计。外推法用于实用的误差

。和误差估计的有效方法外推法是提高精度

因此

Richardson

xyxyhChh

p

pp

p 16612

2 2

Page 32: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 32

6.2.1

。果见表预估校正方法。比较结用的数值解求用其真解为

例:

2.6

1.0,21

10

1,0,2

Euler

hxy

y

xy

xy

dx

dy

xi yi y(xi)

0.00.10.20.30.40.50.60.70.80.91.0

1.01.09591.18411.26621.34341.41641.48601.55251.61651.67821.7379

1.01.09541.18321.26491.34161.41421.48321.54921.61251.67331.7321

表 6.2 予估校正求解结果对比

Page 33: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 33

6.2.1

时的解及误差估计:技巧解此方程,方法及外推。用其真解为

例:

1

10

1,0'

x

Eulerey

y

xyy

x

1

1/2

1/4

1/8

1/16

1/32

.00000

.25000

.31641

.34361

.35607

.36206

.50000

.38281

.37081

.36854

.36804

.36792

-.36788

-.11788

-.05141

-.02427

-.01181

-.00582

-.5000

-.13281

-.05441

-.02493

-.01196

-.00586

.13212

.01493

.00293

.00066

.00016

.00004

h hy hh yy 22 hy 估计 外推

表 6.3 Euler 法与外推结果的比较

Page 34: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 34

6.2.2 线性多步法

1

1

11

,1

1

1

1

00

10

:,

,

,,

1.2.2.6

,,1,

,,,

m

m

m

m

m

m

m

m

x

x kmmm

mkmkm

x

xmm

x

x

x

x

m

ii

m

dxxLyy

yxf

xxxLagrange

dxyxfxyxy

dxyxfdyyxfdx

dy

y

mixyyxyy

xxx

的插值多项式近似

上,,,在用

插值法

欲求

处已求得:假定在

外插法:Adams

外插

Page 35: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 35

6.2.2

k

iimkimm

imimim

im

kmmmimk

k

i imimk

imkimkm

fbhyy

Adams

kiyxff

ki

xx

xxxxxxxD

xD

xDfxL

01

1,

0 ,

,,

,,1,0,

,,1,0

外插值公式:由此得

这里:

()

方法。时,线性多步法就是特别,当

。其值见表

其中

Eulerk

dxxD

xD

hb

m

m

x

ximimk

imkki

0

4.6

1 1

,

,

()

Page 36: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 36

6.2.2

i 0 1 2 3 4 5

b0i

2 b1I

12 b2I

24 b3I

720 b4I

1440 b5i

13

2355

19014277

-1-16-59

-2774-7923

537

26169982

-9-1274-7298

2512877 -475

211 5162312

2

mmmmm fffh

yy

k 时,线性多步法为例如:

Adams 外插法 (k=2) 3 阶 3 步 显式

2m

1m

m

表 6.4 外插系数 bki 值

图 6.6 3 阶 3 步外插法

Page 37: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 37

6.2.2

,舍入误差也小。内插法较外插法更精确

最常用,其插值公式为

法。时,即得到改进当。它是隐式或半隐式格式

:多项式的

取插值节点为

内插法:

1

1,1

,,,,

,

p

Eulerkp

xLLagrange

xxx

Adams

pkm

pmmpkm

1

,1

m

m

x

x

pkmmm dxxLyy

。见表其中 5.6

011

i

i

k

k

iimkmm

b

fbhyy

Page 38: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 38

6.2.2

i 0 1 2 3 4 5

b0i*

2 b1i*

12 b2i*

24 b3i*

720 b4i*

1440 b5i*

1159

251475

18

19646

1427

-1-5

-264-798

1106482

-19-173 27

值内插系数表 kib5.6

111 8512

12

mmmmm fffh

yy

pk 时,线性多步法为,例如:

Adams 外插法 (k=2) 4 阶 3 步

1m1m m

图 6.7 4 步 3 阶 Adams 内插公式

Page 39: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 39

6.2.2

外插法:不稳定。稳定内插法:舍入误差小,

稳定性:

单。外插法:显式,计算简,复杂内插法:隐式或半隐式

迭代格式:

阶方法外插法:

阶方法内插法:

局部截断误差:

)

)

1

2

)

2

3

iii

ii

khO

khO

i

k

k

1p

Page 40: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 40

6.2.2

k

iii

k

ii

ihxyhihxyhxy

k

k

0

'

00 0,

,0

,

2.2.2.6

定义算符:

步法不同时为步法线性多步法是常数

一般的插值型公式

待定系数法

k

i

k

iimiimi fhy

0 0

1k取

Page 41: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 41

6.2.2

0x 1mx mx 1mx kmx

my

nk

k

nk

k

k

f

f

h

y

y

y

0

0

0

1

0

0

0

0

mmm yxff

hkN

,

,1

个方程。等步长

图 6.8 一般化插值形式

Page 42: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 42

6.2.2

krr

krr

r

k

iii

k

rrr

kr

kr

C

iC

C

xyhC

xhyCxyChxy

xyih

xihyxyihxy

xyih

xihyxyihxy

Taylor

12

11

21

01

100

'10

'''2

''''

''2

'

2!1

1

2!

1

!2

!2

其中:

代入得:

展开右端:

Page 43: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 43

6.2.2

步方法。阶阶及外插及内插法为

隐式显式

由此得

于是:充分大,使

次连续可微,则可取有因此,若

k

kkAdams

xyhCfhy

CCCk

rxy

k

k

k

i

rrrihxii

r

1

0

0

.0

1

0

111

10

k

i

k

iimiimi fhy

kr

0 0

步方法:阶线性

Page 44: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 44

6.2.2

ak 02 ,1,2

2

记步法:例,考虑

04!2

18

!3

1

024!2

1

02

01

2113

2112

21011

10

C

C

C

aC

解之得:

a

a

a

a

512

1

13

2

,5112

1

,1

2

1

0

1

Page 45: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 45

6.2.2

方法型:它是以下

阶方法时,阶的方法是时,

同时,可以算出:

故一般二步法为:

eMiSimpson

CCa

Ca

ln

40,01

3,01

54

4

mmm

mmm

fafafah

ayyay

5118512

1

12

12

aC

aC

1317!53

1

1!4

1

5

4

mmmmm fffh

yy 122 43

Page 46: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 46

6.2.2

1,1

01

0,2

11

1

3.2.2.6

11

1

'

即特征根

的特征方程:

步长方法:例

对典型方程:

绝对稳定性

h

h

hh

h

yh

yhy

hfyy

hEuler

yy

m

mm

mmm

来讨论绝对稳定性)程一般只限于这个典型方(

Page 47: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 47

6.2.2

稳定可以任意取,步长

时,恒有当

其特征根为

隐式方法例,后退

A

h

h

yh

y

yhy

hyyy

Euler

mm

mm

mmm

10Re

1

1

1

1

1

1

1

1

'11

图 6.9

Page 48: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 48

6.2.2

线性多步法的绝对稳定性:

次多项式的

其特征方程为

多步法为

典型方程则

常数设

k

hh

yhy

yy

y

f

k

iimi

k

iimi

00

'

k

i

imi

k

i

imi h

00

0

Page 49: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 49

6.2.2

定义:

,称为,取值范围绝对稳定的

则称线性多步法关于此

,按模小于,若特征方程的根给定

h

h

h i 1

绝对稳定。

绝对稳定区域。

.0,,0,

01

01

1

0

1

0

1

EI

k

i

ik

k

k

i

ik

k

i

i

bh

bh

Adams

其稳定区域为

程:内插及外插法的特征方

Page 50: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 50

6.2.2

的取值表 EI ,5.6

k 1 2 3 4

E

2 1

I

6 3

11

6

49

90

10

3

5

3

1

2

5

1

2

22

03

11

3

4

31

143

1

hOe

hOe

hhh

h

h

h

它的根:

方法的特征方程Milne

Page 51: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 51

6.2.2

:见表及误差,得到的解对不同的

方法计算例,用对稳定。

方法不绝,因此,对任何

6.6

10

10

ln

ln

'

yh

y

yy

eMi

eMih

h u 误 差0.1

0.010.001

0.00010.00001

.486E-4

.482E-4

.386E-4

.329E-4

.578E-4

-.323E-5-.281E-5.676E-5-.375E-4-.124E-4

表 6.6 计算结果

Page 52: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 52

6.2.2

6.2.2.4 预估 -- 校正方法

( Predictor--Corrector Method )

迭代法。这是个非线性方程已知。,,,,,其中

阶隐式方法:但计算困难。现考虑

其精度高,稳定性好。尤

隐式方法:

110

0

kify

k

y

f

imim

176

,

1

0

1

0

k

iimi

k

ikmkmkimikm

fh

yxfhyy

,,

10

1861

0

1

0

1

n

fh

yxfhyy

k

iimi

k

i

nkmkimi

nkm km

Page 53: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 53

6.2.2

。此时应减小步长

。太多的校正不合适。可满足

二,三步校正。,一般只要对给定

算法。通称为

算式。称为校正式,即算式。称为预估式,即

构成的算法,时,

选为显式算法而

h

yy

PC

CCorrector

Pedictor

y

nkm

nkm

km

1

0

0

196

Pr186

196186

1961

0

1

0

0

k

i

k

iimiimikm fhyy

Page 54: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 54

6.2.2

注意:一步校正的计算量 预估计算量。

所以要适当选取 h 才能发挥 PC 的优点。

设绝对稳定区域:

达到精度的校正次数为 N ,则 h 的选取,

应满足:

否则可用 N 步显式算法稳定达到目的。

0,

0,

c

p

SC

SP

算式:

算式:

p

cp

SNh

ShS

1.2

.1

hmx 1mx

pS

cS

2N

Page 55: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 55

6.2.2

Adams 四步四阶预估校正算法

123434

12334

93759924

:54

937595524

:44

mmmmmm

mmmmmm

ffffh

yyC

ffffh

yyP

阶步

阶步

?0

,,

270

19

04

14

044

144

04

14

555

稳定性判别可用

很大的麻烦但变步长会带来可用来控制步长

方法误差:

C

mm

mmmm

mm

Sy

fhh

yy

yxfyxf

y

f

h

yyyhC

Page 56: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 56

6.2.3 Runge--Kutta 方法

,考虑为构造高精度的单步法。后者比前者精度高一阶

型预估一校正法:

方法:

12

1

211

1

11

,

,2

1

2

1

,

KyhxhfK

yxhfK

KKyy

Euler

yxhfK

Kyy

Euler

mm

mm

mm

mm

mm

12

21

, mm

mm

yhxhfk

kyy

Euler法后退

Page 57: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 57

6.2.3

方法的级正整数,称为 KRN

Niba

KbhyhaxfK

yxfK

KChyx

hyxhyy

i

lili

i

llilmimi

mm

N

iiimm

mmmm

,,3,2

,

,

,,

,,

1

1

1

1

1

1

1

上的线性组合:在某些点是而 1, mm xxf

其中:

阶次项一致),,,即项完全一致。级数。取的

展开,并比较进行把

PP

PTaylor

xyTaylorK mi

10(

11

Page 58: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 58

6.2.3

时,有当

公式的阶数。称为这里的

就可以得到系数

3

N

KRP

1,,1;,,1, ilNibC ili

232132333

1222

1

3

11

,

,

,

KhbKbahyhaxfK

KhayhaxfK

fyxfK

KChyy

mm

mm

mmm

iiimm

Page 59: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 59

6.2.3

的系数得:比较

其中:

展开:在将

3,2,1,0

6

12

2

22

,,

43

2

2

''

3233

2223223

2

3

13322321

32

ih

hOGFfh

Fh

hfxyhxy

fffffG

xyfffF

hOGaCaCFfbaCh

FaCaChfCCCKC

TayloryxKK

i

y

mm

yyxyxx

yx

y

iii

mm

Page 60: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 60

6.2.3

6

13

12

1

1

3223

233

222

3322

321

baC

aCaC

aCaC

CCC

六个未知数,二个自由,故可取

212

16

1

3

2

6

1

3232

321

baa

CCC

,,

,,

213

12

1

3211

2

2

1

2

1

,

46

1

hKhKyhxfK

hKyhxfK

yxfK

KKKhyy

mm

mm

mm

mm

故:

Page 61: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 61

6.2.3

N=4: 四级四阶 R--K 方法

34

23

12

1

43211

,

2

1,

2

1

2

1,

2

1

,

226

hKyhxfK

hKyhxfK

hKyhxfK

yxfK

KKKKh

yy

mm

mm

mm

mm

mm

---- 最常用的古典 Runge-Kutta 方法。

增加计算函数值的次数(级)与提高精

度(阶)的关系见下表:

级 N 2 3 4 5 6 7 n8

阶 P 2 3 4 4 5 6 n 2

表 6.7 Runge-Kutta 方法中级与阶的关系

Page 62: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 62

6.2.3

各种解法精度比较:

高精度方法的主要优缺点

10

22

).1(2'

y

yxxy

KR

Xm Euler 改进 Euler R—K(4阶) 精确解0.00.10.20.30.40.50.60.70.80.91.0

1.00001.20001.44201.73842.10412.55693.11833.81394.67475.73767.0472

1.00001.22101.49231.82842.24662.76803.41744.22575.22886.47048.0032

1.00001.22211.49771.84322.27832.82743.52014.39275.48946.86438.5834

1.00001.22211.49771.84322.27832.82743.52024.39285.48956.86458.5836

表 6.8 各种解法在例题中的结果比较

Page 63: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 63

6.2.3

( 2 ) . 单步法,自动起步

( 3 ) . 易改为变步长

( 4 ) . 绝对稳定区域较同阶线性多步法大

( 5 ) . 计算工作量较大,有时大于隐式方法

( 6 ) . 估计误差不易

绝对稳定性讨论

mm

mm

yhh

hy

fh

fh

hfyy

yyN

33

22

''3

'2

1

'

!3!2

!3!2

3

此时:

为例。取典型方程以

Page 64: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 64

6.2.3

D

KR

h

hhh

hhh

y

yhh

hy

mm

imim

mm

区域方法的绝对稳定一般地,各级

时,,当

其根为:

故特征方程:

1051.2

6

1

2

11

06

1

2

11

!3!21

1

32

1

321

32

1

级 1 D

1

2

3

4

(-2,0)

(-2,0)

(-2.51,0)

(-2.78,0)432

32

2

24

1

6

1

2

11

6

1

2

11

2

11

1

hhhh

hhh

hh

h

表 6.9 各级 R-K 方法的绝对稳定区域

Page 65: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 65

6.2.3

0,78.24,2.0

0,78.222.0

10

20

22

11

'

hh

hh

y

yy

KR

h

hKR

,取

方法计算用四级经典例

绝对稳定区域。

使方法时,要取在使用

x h1时的误差 h2时的误差

0.00.20.40.60.81.0

0-0.092795-0.012010-0.001366-0.000152-0.000017

04.9825.0125.0625.0

3125.0

表 6.10 不同步长对精度的影响

Page 66: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 66

6.2.3

。可能导致舍入误差积累的计算量,步长太小:增加不必要非绝对稳定。步长太大:精度不够,

实际步长选取:

外推技巧。需用选取误差估计和实际步长的

属于绝对稳定区域。

近似确定步长。使可以用

常数的问题对于

Richardson

xhxh

x

xy

f

mm

Page 67: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 67

6.2.3

是适当的。,则认为,若对给定

误差估计

方法:对四阶

方法自选步长的

2

12

2

2

11

2

2114

44

544

211

54

121

5411

h

yych

hOchyy

hOh

cxyy

hOchxyy

KR

KR

hm

hm

hm

hm

mh

m

mh

m

Page 68: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 68

P 阶图 6.10 变步长 Runge--Kutta 方法框图

00,0

,,,

xyym

PhX

给定

211

211

max

,hm

hm

hm

hm

yy

yy

计算

hmm

mm

yy

hxx

11

1

hh 2

Xxm 1

12

1

P ,2,1

,

m

yx mm输出 hh 2

1mm

Y

Y

N

NY

N

hh

25.0

9.0

hh 4

hh

2.0

9.0

5

4

9.0

6.2.3

Page 69: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 69

展开:处在 TayloryxKK mm ,, 32

xym

yym

xx

ymxm

m

m

m

m

m

m

mm

m

fKbfbaah

fKbfbah

fha

fKbfbahfhafK

yx

ffha

y

ffha

x

fha

y

ffha

x

fhafK

23232332

2232323

223

23232333

22

22

222

2

222

222

!2!2

!2!2

11

1

1

1

1

1

11

!

,,3,2

,

,

PP

mP

mm

i

jiij

i

jjijmimi

mmm

N

iiimm

hOP

hxyxyxy

ab

Ni

KbhyhaxfK

fyxfK

KChyy

6.2.3

Page 70: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 70

1.0

00

0!

0!2

0!1

0

)

)

,,,

,,,

2'

1

1

''2

'

110

11

h

y

yxy

Taylor

R

Rys

x

yx

yx

yxy

Taylorxyb

KR

a

yyy

kyyyy

s

ss

s

k

kmkmmm

前三个点的值

级数求初值问题例:用不影响所需精度为止。直至

展开式:的用精确解计算所需点上的值。

方法,或用小步长高精度用单步法求出

方法取得。的值可以通过两种出发值

步方法

6.2.4 出发值的计算

Page 71: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 71

0049995000.000050005000.0

160

1

20

1

2

1

0000000

0

721352

615102

5102

432

32

2

21

,,

101

852

764''''

76'5''4'''8

65'4''2'''7

54''''''6

4''''2''5

''''''4

''2''''

'''

2'

2

yyy

xxxxy

yyyyyy

x

yyyyyyyyxy

yyyyyyyxy

yyyyyyxy

yyyyyxy

yyyyxy

yyyxy

yyxy

yxxy

yxyxf

,,

于是,

时,故

所以解:由于

25206010 85'' yyy ,,

得,,,取前三点 1.00 101 hhxxhx

6.2.4

Page 72: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 72

质量控制 Runge--Kutta 步进程序SUBROUTINE RKQC(Y, DYDX, N, X, HTRY,EPS,YSCAL,HDID,HNEXT,DERIVS)

PARAMETER (NMAX=10, PGROW=-0.20, PSHRINK=-0.25, FCOR=1./15.

ONE=1.0, SAFETY=0.9, ERRCON=6.E-4

EXTERNAL DERIVS

DIMENSION Y(N), DYSX(N), YSCAL(N), YTEMP(NMAX), YSAV(NMAX),

DYSAV(NMAX)

XSAV=X 保留初值DO 11 I=1 , N

YSAV(I)=Y(I)

DYSAV(I)=DYDX(I)

H=HTRY

HH=0.5H

CALL RK4 (YSAV, DYSAV, N, XSAV, HH, YTEMP, DERIVS)

X=XSAV+HH

CALL DERIVS (X, YTEMP, DYDX)

CALL RK4 (YTMP, DYDX, N, X, HH, Y, DERIVS)

X=XSAV+H

IF (X. EQ. XSAV) PAUS E ‘ 步长无意义’CALL RK4 (YSAV, DYSAV, N, XSAV, HH, YTEMP, DERIVS)

ERRMAX=0.

DO 12 I=1 , N

YTEMP(I)=Y(I)-YTEMP(I)

ERRMAX = MAX(ERRMAX, ABS(YTEMP(I) / YSCAL(I)))

ERRMAX = ERRMAX / EPS

误差计算

一个单步计算

两个半步长计算

置初始值

11

1

12

6.2.4

Page 73: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 73

PARAMETER (NVAR=4)DIMENSION VS(NVAR)COMMON /PATH/ KMAX , KOUNT , DXSAV , X(200) , Y(10 ,200)EXTERNAL DERIVS RKQC

X1=1.0

X2=10.0

VS(1)=BESSO(X1)

VS(2)=BESSI(X1)

VS(3)=BESSJ(2,X1)

VS(4)=BESSJ(3,X1)EPS=1.0E-4HI=1.0HMIN=0.0KMAX=100

DXSAV=(X1-X2)/20.0

CALL ODEINT (VS , NVAR , X1 , X2 , EPS , HI , HMIN , NOK NBAD , NOK , NBAD , DERIVS , RKQC)WRITE ( , ) ENDSUBROUTINE DERIVS (X , Y , DYDX)DIMENSION Y(1) , DYDX(1)DYDX(1) = -Y(2)DYDX(2) = Y(1)-(1.0/X) Y(2)DYDX(3) = Y(2)-(2.0/X) Y(3)DYDX(4) = Y(3)-(3.0/X) Y(4)RETURNEND

6.2.4

Page 74: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 74

IF (ERRMAX.GT.ONE) THEN 不满足要求

H = SAFETY H (ERRMAX PSHRINK) 估计下次步长(缩小)

GOTO 1

ELSE 满足要求

HDID = H

IF (ERRMAX. GT. ERRCON) THEN

HNEXT = SAFETY H (ERRMAX PGROW) 估计可放大的步长

ELSE

HNEXT =4. H 最多可放大四倍

ENDIF

ENDIF

DO 13 I=1 , N 完成五阶截断误差

Y(I)=Y(I) + YTEMP(I) FCOR

CONTINUE

RETURN

END

四阶 Runge--Kutta 步进程序(续)

13

6.2.4

Page 75: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 75

计算结果

NOK=30

NBAD=0

KOUNT=15

X Integral BESSJ(3,x)1.00001.63292.10362.68133.37694.10394.79105.51426.14256.84137.49598.21128.91749.5855

10.0000

0.0195630.0765640.1458820.2505440.3701150.4333980.3963840.2524600.071710-0.129104-0.257536-0.286393-0.197389-0.0439680.058380

0.145881

0.4333970.396383

-0.129103-0.257535-0.286391-0.197388

0.058379

6.2.4

Page 76: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 76

四阶 Runge--Kutta 方法:

SUBROUTINE RK4(Y , DYDX , N , X , H , YOUT , DERIVS)

PARAMETER (NMAX=10)

DIMENSION Y(N) , DYDX(N) , YOUT(N) , YT(NMAX)

DYT(NMAX) , DYM(NMAX)

HH=H 0.5

H6=H/6.0

XH=X+HH

DO 11 I=1 , N

YT(I)=Y(I)+HH DYDX(I) 第一步

CALL DERIVS(XH , YT , DYT)

DO 12 I=1 , N 第二步

YT(I)=Y(I)+HH DYT(I)

CALL DERIVS(XH , YT , DYM)

DO 13 I=1 , N 第三步

YT(I)=Y(I)+H DYM(I)

DYM(I)=DYT(I) + DYM(I)

CALL DERIVS(X+H , YT , DYT)

DO 14 I=1 , N

YOUT(I)=DYDX(I)+DYT(I)+2. DYM(I)

YOUT(I)=Y(I) + H6 YOUT(I)

CONTINUE

RETURN

END

14

13

12

11

6.2.4

Page 77: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 77

用四阶 RUNGE--KUTTA 公式,等步长计算 NSTEP 步SUBROUTINE RKDUMB(VSTART , NVAR , X1 , X2 , NSTEP , DERIVS)

PARAMETER (NMAX=10) 函数最大个数

COMMON /PATH/ XX(200) , Y(10,200)

DIMENSION VSTART(NVAR) , V(NMAX) , DV(NMAX)

置初值

DO 13 K=1 , NSTEP

CALL DERIVS(X , V , DV)

CALL RK4(V , DV , ,NVAR , X , H , V , DERIVS)

X=X+H

XX(K+1)=X 存贮中间步骤

DO 12 I=1 , NVAR

Y(I , K+1)=V(I)

CONTINUE

CONTINUE

结束返回

12

13

6.2.4

Page 78: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 78

带自适应步长控制的四阶 Runge--Kutta 驱动程序SUBROUTINE ODEINT(YSTART , NVAR , X1 , X2 , EPS , H1

HMIN , NOK , NBAD , DERIVS, , RKQC)

PARAMETER (MAXSTEP=10000,NMAX=10,TWO=2.0,

ZERO=0.0,TINY=1.0E-30)

COMMON /PATH/ KMAX , KOUNT , DXSAV , XP(200) , YP(10,200)

DIMENSION YSTART(NVAR) , YSCAL(NMAX) , Y(NMAX) , DYDX(NMAX)

X=X1

H=SIGH(H1 , X2-X1)

NOK=0

NBAD=0

KOUNT=0

DO 11 I=1 , NVAR

Y(I)=YSTART(I)

XSAV=X-DXSAV TWO ---- 保证第一步存贮DO 16 NSTEP=1, MAXSTEP ---- 最多取 MAXSTEP 步数 CALL DERIVS(X , Y , DYDX)

DO 12 I=1 , NVAR 改变比例因子控制准确性 YSCAL(I)=ABS(Y(I))+ABS(H DYDX(I)) + TINY

IF(KMAX.GT.O.AND.ABS(X-XSAV).GT.ABS(DXSAV)

KOUNT. LT. KMAX-1) THEN

KOUNT=KOUNT+1

XP(KOUNT)=X

DO 13 I=1 , NVAR

YP(I , KOUNT)=Y(I)

XSAV=X

ENDIF

存贮中间结果

13

12

11

置初值

6.2.4

Page 79: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 79

IF ((X+H-X2) (X+H-X1) .GT. ZERO) H=X2-X1 越界处理

CALL RKQC(Y , DYDX , NVAR , X,H,EPS,YSCAL,HDID,HNEXT,DERIVS)

IF (HDID. EQ. H) THEN

NOK=NOK+1 好步长计算

ELSE

NBAD=NBAD+1 坏步长计算

ENDIF

IF ((X-X2) (X2-X1). GE. ZERO) THEN 进行完毕

DO 14 I=1 , NVAR

YSTART(I)=Y(I)

IF (KMAX. NE. O) THEN 保留最终步结果

KOUNT=KOUNT+1

XP(KOUNT)=X

DO 15 I=1 , NVAR

YP(I , KOUNT)=Y(I)

ENDIF

RERURN

ENDIF

IF (ABS(HNEXT). LT. HMIN) PAUSE ' 步长太小 '

H=HNEXT

CONTINUE

PAUSE ' 步数太多,越界 '

RETURN

END

16

15

14

6.2.4

Page 80: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 80

ii

hmm

hm

hm

mh

m

mh

m

yscale

sh

sh

hhh

h

h

hOyxy

hOchyy

hOh

cxyy

hOchxyy

KuttaRunge

kuttaRunge

max

12

2

21

2

0

10

25.0

1

01

10

2.0

1

01

0

2.0

1

010

00

11

54

21

545

211

54

121

5411

对方程组调整步长的依据。

实用上

应是误差的期望则有对提高精度(五阶方法)

例:

方法对四阶方法的自选步长进行误差控制

6.2.4

Page 81: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 81

6.2.5 方程组与刚性问题 ( Stiff Sets of Equation )

1. 考虑 2 阶常微分方程组的初值问题:

20

2

10

1

2112

2111

0

0

,,

,,

yy

yy

yyxfdx

dy

yyxfdx

dy

解此方程组的 Euler 方法

22212221

11211111

,,

,,

mmmmmm

mmmmmm

hfyyyxhfyy

hfyyyxhfyy

Page 82: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 82

6.2.5

也一样,但也完全类似。理论结果方法线性多步法及

是向量。其中,

:用向量形式记法,则有

KuttaRunge

fyfy

h

yxdx

d

mm

mmm

,,,

0

,

1

0

fyy

yy

fy

函数的绝对值 向量范数

偏微商 y

f

2

2

1

2

2

1

1

1

y

f

y

fy

f

y

f

Page 83: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 83

6.2.5

满足当其特征根

为步长。,其中

为线性多步法的特征方程则有类似方程的结果:

的特征值为又设

方程组为矩阵时,则常系数线性

为常数矩阵设

ji

jj

j

hhh

njJ

xgJydx

dy

JacobiJy

f

,,2,1

)(

可能是复数

000

k

i

imij

K

i

imi h

kinjji ,,2,1,,2,11 ;

Page 84: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 84

6.2.5

是复平面上的区域。它构成了绝对稳定区域这样的

使线性多步法时,则

,Rh

h

j

j 绝对收敛。

Adams 内插法的绝对稳定区域:

.3

.2

.1

.2

.3

0 .1

.2.4.6.7

2k

4k

3k

5k

图 6.11 Adams 内插法的绝对稳定区域

Page 85: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 85

6.2.5

.1

.1

0.2

2k

4k

3k1k 5k

6k

图 6.12 Adams 外推法的绝对稳定区域

.3 .1

.1

.2

.3

图 6.13 R-K 法的绝对稳定区域

4k

3k

2k

1k

.2

Page 86: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 86

6.2.5

2. 刚性方程组 ( Stiff Equations )

Ty

JJyy

h

Jy

fJacobi

hh

h

2,1,20

.120.70.0

0.50.0

07.491.0

,

' ,

例如的选取就有困难。时,

但当

的特征值。矩阵取遍

里属于绝对稳定区域。这使得

选步长为使算法绝对稳定,应

jj minmax

Page 87: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 87

6.2.5

然而,由稳定性要求

部分很快可以不计。的,即对应适当大时,故当

其解为:

的特征值:

xy

eex

J

i

xx

21

12050

3

2

1

.0,

1.0

.50

.120

xx

x

xx

eexy

exy

eexy

120503

502

501.01

78.24

2

120

120CKR

CEuler

Ch

Ch

Chj

:阶方法:

Page 88: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 88

6.2.5

导致解的面目全非。差积累将非绝对稳定,故舍入误

则因为来取步长如果按

增。只能取很小,工作量激故

,3 hCh

h

610

10

ReminRemax

ReminRemax

,,2,10Re

O

O

nj

gJydx

dy

jj

jj

jj

jj

j

如果

称为方程组

定义:

刚性方程:

一般坏条件问题严重坏条件问题

刚性比:

Page 89: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 89

6.2.5

0Re

.3

,0

h

Xxxx

y

f

j

半平面:区域是左绝对稳定该算法的

刚性方程组的解法。

也称为刚性方程组。

上满足上述条件。在

的特征值对非线性方程组,

稳定:没有限制。其数值方法应当对

A

h

图 6.14 A- 稳定区域

Page 90: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 90

6.2.5

一稳定:A

证明了:

是绝对稳定区域该数值方法的

Widlund

h

hW

o900

arg

隐式方法。

定是一稳定的线性多步法必A

图 6.15 一稳定区域A

Page 91: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 91

6.2.5

k

ikmkimi

mmmm

mmm

fhy

Gearb

yyh

yy

hfyy

Euler

StiffAa

0

''11

11

)

2

)

方法:

重要因素但精度和计算工作量是

梯形公式:

公式:例如:后退方程组的求解。一稳定的算法均可用于

Page 92: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 92

6.2.5

稳定)方法系数表(表 AGear11.6

K k

6

5

4

3

2

1

0

1

2

3

4

5

6

1

1

1

1

1

1

1 -1 900

900

880

730

510

180147

360

147

450137

300

147

400137

30025

48

11

18

25

36

137

200

147

225

4

3

11

9

25

16

137

75

147

72

3

1

11

2

25

3

137

12

147

10

3

2

11

6

25

12

137

60

147

60

Page 93: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 93

6.2.5

Ni

KbhyhaxfK

KChyy

AKuttaRungec

Gear

Newton

h

y

fh

y

N

jjijmimi

N

iiimm

k

km

,,2,1

,

)

1

1

11

稳定方法隐式

程组。方法也适用于非刚性方法。一般采用修正

受到限制。步长

时,要求用迭代法求解

Page 94: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 94

6.2.4

6

3

4

1

6

3

2

1

4

1

4

12

1

3

2

1

2

1

2

22

1

1

212

211

211

212

1

211

1

ba

hKbhKyahxfK

bhKhKyahxfK

KKhyy

KKhyhxfK

yxfK

KKhyy

hKyhxfK

hKyy

mm

mm

mm

mm

mm

mm

mm

mm

二级四阶

二级二阶

中点法(一级二阶)

Page 95: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 95

mx 2mx1mx

Euler 法

一阶

mx 2mx1mx

mx 2mx1mx

中点法二阶(Runge--Kutta)

mx 1mx

四级四阶

RungeKutta

hxm 2

1 hxm 2

11

Euler 预估 -- 校正法

二阶

hxm 21

my

1my

6.2.4

Page 96: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 96

6.3 边值问题解法

000 0000

10'

10'

''

'''

,,

第三边值条件:

第二边值条件:

,第一边值条件:

,,,

问题:二阶微分方程

byby

ayay

byay

byay

baxyyxfy

Page 97: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 97

2212

1211

21

,,2,10,,,,

,,2,10,,,,

,,2,1,

,,,,

nkyyybB

njyyyaB

Nibax

yyyxfdx

xdy

Nk

Nj

Nii

一般地,

6.3.1 试射法( Shooting )

y

01 jB x

02 kB

图 6.16 试射法求解示意

Page 98: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 98

6.3.1

的函数是显然直到满足条件。

问题。值,继续求解新的初值修改

则满足要求,否则若

设求得

,,

,则可解初值问题设

,,,

考虑第一边值问题

11

1

1

1

1'

'''

1'

'''

~ uuFby

u

v

vby

uayay

yyxfy

uay

byay

yyxfy

Page 99: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 99

6.3.1

uGu

uGubyby

uGbyuGby

uayuay

uay

uFu

uuuu

FuuF

使要找

的函数是于是

设解为

:则问题变为解初值问题对第三边值问题,设

使得直到找到

:不知道的。用线性近似

是但的要求

,

~,~

,

.

,

0'

2'

1

01'

112

121

11

Page 100: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 100

6.3.2 差分方法( Difference Methods )

(Relaxation Methods)

0x 1x 2x Mx

01 jB

02 kB

iy

True solution

2nd iteration

1st iteration

Initi

al g

uess

x

212

1101

021

,,10,,,

,,10,,,

,,,,,,

nkyyxB

njyyxB

xxxyyyxfdx

xdy

NMk

Nj

MNii

图 6.17 差分方法示意

Page 101: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 101

6.3.2

:个方程由边值条件提供另外个。上述方程共有

未知数。共有

;:要求

的值在即其中,

还有别的方程可用用差分方程代替:

维向量是,

N

MN

MN

MkNjy

Mk

xyyyyy

Nfyyxfdx

dy

jk

kT

Nkkkk

1

,,1,0,,1

,,2,1

,,,,

,,

21

02

,2

1111

kkkkkkkkk

yyxxfxxyyE

Nnn

nyxBE

nyxBE

MMM

21

22'

10010

0,

0,

个个

Page 102: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 102

6.3.2

2'

1

'

101

00

0

111

1

1 11

1

111

1

,,1

,,1

,,2,1;,,2,1

,0

,,

:,

njEyy

E

njEyy

E

MkNj

Eyy

Ey

y

E

yyE

yy

Ey

y

E

yyEyyyyE

yy

jM

N

iiM

iM

jM

j

N

ii

i

j

jk

N

iik

ik

jkN

iik

ik

jk

N

i

N

iik

ik

kik

ik

k

kkkkkkkk

kk

另外,由边值条件得

则有设

每次迭代有修正值

Page 103: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 103

6.3.2

很大。很大时,矩阵的阶个特殊稀疏问题。当

它是一可解下面方程组求得。的修正量

时每次迭代当

NM

M

y

nnMN

jk

1

2,3,3,5 21

23'

13'53

43

33

23

12

52

42

32

22

12

51

41

31

21

11

30

20

10

53

43

33

23

13

52

42

32

22

12

51

41

31

21

11

50

40

30

20

10

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

y

图 6.18 修正值矩阵

Page 104: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 104

块对角线性代数方程组的快速求解

利用矩阵的特殊结构使总运算次数达到极小,

并使矩阵系数的存贮达到极小

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

BV

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

图 6.19 Gauss 消去法的目标结构

6.3.2

Page 105: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 105

DDD

100

100ZZZZZ

10000000

DDD

010

010ZZZZZ

01000000

DDD

001

001ZZZZZ

00100000

AAA

SSS

SSSDDDDD

SSS10000

AAA

SSS

SSSDDDDD

SSS01000

DDDDD

00100

VVV

VVV

DDDDD

00010

DDDDD

00001

AAAAA

SSSSS

AAA

SSS

AAAAA

SSSSS

VVVVVVVV

VVVVVVVV

SSSAAAAA

SSSSSSSS

D-- 有待于对角化

A--将要改动

S--需要存贮

Z--将要变为 0

a)

b)

a)

b)

6.3.2

图 6.20 特殊矩阵结构 1

Page 106: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 106

00000

00000

00000

00000

00000

00000

10000

10000

01000

01000

00100ZZ

0010000

00010ZZ

0001000

00001ZZ

0000100

SSSSSDD

SSSSS10

SSSSSDD

SSSSS01

VVVVVVV

VVVVVVV

SSSSSAA

SSSSSSS

a)

b)

包括四步运算

1. 使用前一步的结果,简化部分元素为零

2. 消去剩下子块正方结构为单位阵

3. 存储以后要使用的非零系数

4. 回代

6.3.2

图 6.22 特殊矩阵结构 2

Page 107: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 107

6.3.3 样条函数在两点边值问题中的应用

考察 二阶线性微分方程 的边值问题 226

216

206

'

0'

00

'''

nnn rbyby

rayay

xryxqxyxpxy

可以证明:,个

约束条件:

时,当

上的:是定义在节点而,

来近似:用三次样条函数可以的解假定微分方程边值问题

的区间和节点为:设

2,1,0,,3,2,1)1(3

,,2,1

226206

1

1

23

10

jnin

xSxS

xxxni

dxcxbxaxSxS

xxS

baxxSxy

xS

xy

bxxxa

x

kj

ikj

i

ii

iiiii

k

n

1

0

3200 6

1

2

1 n

kkk xxhxxgxxfexS

bax ,

Page 108: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 108

6.3.3

此时为,而边值条件

其中

则有,,并令代入微分方程把

易知:个待定常数。是而

,其中,

226216

,,

206,,

,2

1

3,,,,,,

,0

'''

1

0

''

1

0

20

'

110

iiiiii

i

n

kkk

n

kkk

n

k

kkk

xrrxqqxpp

xxxSxSxS

xxhgxS

xxhxxgfxS

nhhhgfe

xx

xxxxxx

236,,2,1,0,

6

1

2

1

1

0

3200

1

0

1

0

20

nir

xxhxxgxxfeq

xxhxxgfpxxhg

i

n

kkikiii

n

k

n

kkikiikik

246000 rfe

Page 109: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 109

6.3.3

256

2

1

6

1

2

1

1

0

20

1

0

3200

n

n

kknknn

n

kknknnn

rxxhxxgf

xxhxxgxxfe

3

2

3

13

02

333

000

''

110

3

2

3

1

0246

001

00,1

110

13

2

3

1010

01

00

1,001

,,,,,,

33256246236

xhxhxhgxfxxS

e

r

r

rqp

y

y

xxyxy

xShhhgfe

nn

n

现设得由

,,,,,

有:

,,,,三等分。有节点:,把区间

问题例:给定微分方程边值

求得。的值,故未知数个个方程可解出共,,于是联立

Page 110: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 110

6.3.3

1,0

3

2061224.0

3

1061224.0

061224.05.0540814.0~

~061224.0061224.0061224.0

0.05.0540814.0

12

2795755

27186611655

272758118911655

02727278

3

26

3

1662

3

23

3

1332

33

32

210

0

01

012

012

210''

2

2

2

12

0'

x

xx

xxxxy

xyxy

hhh

egf

g

fgh

fghh

fghhh

fghhh

xhxhxhgxS

xhxhxhgxfxS

可写为的近似解故

这组方程的解为

条件有代入原微分方程和边界

Page 111: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 111

的实数均为大于

时的捕食系统考虑

系数为两种群间的交叉亲疏

为本种群的亲疏系数系数为两个种群的自然增长

模型例,生态系统的

0

,,,

0

,

,

,

2122

211211

21

12

21

00

2221102

1221101

xbxkx

bakkxaxkx

ba

ba

ba

ba

xxbxbbx

xxaxaax

Volterra

竞争系统,

捕食系统,共栖系统,

时,当

00)

00)

00)

0

12

12

12

12

baiii

baii

bai

ba

6.3.3

Page 112: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 112

为实数,

函数:阶为第一类其中,

,,

精确解为

,积分区间

,,

例,求解初值问题

vkvk

xxxJ

BesselvvxJ

xJyxJy

xJyxJy

xx

xJxyxJxy

xJxyxJxy

yx

ydx

dy

yx

ydx

dy

yx

ydx

dy

ydx

dy

k

k

v

v

v

0

2

34123

12101

21

13141213

11121011

434

323

212

21

1!41

2

1

3,2,1,0

0.100.1,

3

2

1

6.3.3

Page 113: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 113

相平面上的轨迹为

02

01 , xx

2x

1x

ak1

62k

因。而食用鱼反而减少的原期间捕鱼量减少,该模型解释了一次大战

周期解的平均值平衡点

a

k

b

k 12 ,

年度 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923

比例 11.9 21.4 22.1 21.2 36.4 27.3 16.0 15.9 14.8 10.7

1914 年 --1923 年捕获的鱼中,食用鱼所占的比例(%)

图 6.23 相平面上的轨迹图

6.3.3

Page 114: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 114

为扩散系数

,,

统考虑密度分布的捕食系

少。食用鱼增加,食肉鱼减

此时,平衡点为

,则模型改为系数因此,我们可控制捕捞

21

212222

2

22

211121

2

11

2

1

12

2122

1211

,

,

DD

SbSSkx

SD

t

S

SaSSkx

SD

t

S

txS

txS

a

k

b

k

xbxkx

xaxkx

6.3.3

Page 115: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 115

隐式。半隐式:可化为显式的

新节点值组才能解出隐式格式:应通过方程

节点值式可显式解出新显式格式:通过递推公

每一个初值即可计算自动起步:由

即可计算出单步法:仅由方法类型与特点:

.5

,,,,,

.4

,,,,,,

.3

,2,1

.2

.1

00111

0011

00

1

hyxyxFy

hxyxyxFy

iy

yxy

yy

iii

iiii

i

ii

公式简单,但精度不好

编程简单,使用方便

计算量少,但稳定性差

计算量大,但稳定性好

6.3.3总 结

Page 116: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 116

.1,2

10

2

11

111

1,11

.4

1.0

10

.3

06

,,2,46

1

.2

002.0001.03.005.0

1001000

.1

2''

5

'111

21

21

2122

211211

,,,取节点为

值问题用样条函数方法求解边之值。项。并计算取至

初值问题:级数展开求解微分方程用,的绝对稳定区域为

算法为三阶的,并证明上式所定义的隐式单步公式

试证明由

,,,,

轨迹图,并讨论的相,作出

捕食系统方法求解初值问题用四阶

yy

xyxxy

yx

y

xyyxdx

dy

Taylor

yxhfyxfyxfhyy

bakk

xx

xbxkx

txtxxaxkx

KuttaRunge

nnnnnnnn

第六章 习题

Page 117: 第六章 常微分方程及          方程组的解法

浙江大学研究生学位课程

《实用数值计算方法》 117

)(

1

,,,,,

)2(

;//1

)(

)(

.5

211221

2

1122

2211222

1221111

ODEINT

KuttaRunge

aabakk

x

akak

xbxxakx

xxaaxkx

果。)而导致的结条件(以上结论,并解释由于方法验证用带精度控制的四阶

和初值。试选取适当的系数

,最后趋于灭绝。某一最大值后开始减少

开始时增大,直至达到食肉种群量则

。初始时刻食饵十分丰富)(

满足

捕食系统