• Tidak ada hasil yang ditemukan

《数值分析》21

N/A
N/A
Protected

Academic year: 2023

Membagikan "《数值分析》21"

Copied!
54
0
0

Teks penuh

(1)

《数值分析》21

主要内容: 一阶常微分方程欧拉法

欧拉法和修正的欧拉法(单步法) 局部截断误差和p阶精度

Range-Kutta公式

线性单步法的收敛性和稳定性

线性多步法简介

(2)

一阶常微分方程欧拉法

1.

一阶常微分方程初值问题

) (

2 )

,

(x y x y

f

) (

2 x y

dx

dy 8 . 0 )

0

(

y

2. Logistic

模型

y(1 y) dx

dy  

初值条件

y(0)=0.2

如何求

y(x)

?

(3)

一阶常微分方程欧拉法

一阶常微分方程初值问题

:



0 0

0

) (

), ,

( y x

y

x x

y x dx f

dy

数值方法

——

取定离散点

: x0 < x1 < x2 < ··· < xN

其中

, y = y(x)

是未知函数

,

右端函数

f(x, y )

是已知函数

,

初值

y0

是已知数据。

要求:未知函数

y(x)

在这些离散点上的近似值

y1, y2, y3, ···, yN

) ,

(

1 n n n

n f x y

h y

y   )

, ( x y dx f

dy

(4)

欧拉法和修正的欧拉法(单步法)

1)

区域离散:取定步长

h,

xn = x0 + nh, ( n = 1,2, ···, N )

2)

格式:

Euler

公式(法),

yn+1 = yn + h f( xn, yn )



0 0

0

) (

), ,

( y x

y

x x

y x dx f

dy

近似解求法(

Euler

法)

: v

问题:

问 :

f( xn, yn )

其实可以看作什么?

(5)

欧拉法和修正的欧拉法(单步法)

y’ = f (x, y)

1 ( , ( ))

) (

)

( 1 n

n

x n x

n y x f x y x dx

x y

)]

, (

) ,

( 2 [

)) (

,

( 1 1

1

xn f x y x dx h f xn yn f xn yn

2.2)

梯形公式

:

) ,

1 n ( n n

n y hf x y

y  

2.1)

左矩形公式:

xxn 1 f (x, y(x))dx hf (xn, yn )

n

nn1 ( ) xxnn1 ( , ( )) x

x y x dx f x y x dx

近似解求法(修正

-Euler

法)

:

(6)

欧拉法和修正的欧拉法(单步法)

) ,

~ (

n n

n

n y hf x y

y 1  

~ )]

, (

) ,

(

2 [ 1 1

1

n n n n n

n y h f x y f x y

y

)]

, (

) ,

(

2 [ 1 1

1

n n n n n

n y h f x y f x y

y

预-校方法又称为修正的

Euler

,

算法如下

k1 = f(xn , yn) ,

k2 = f( xn+1 , yn+ h k1) ,

] 2 [

1 2

1

y h k k

y

n

n

 

3)

由梯形公式推出的预-校方法:

(7)

局部截断误差和p阶精度

y

n

= y(x

n

), R

n+1

=y(x

n+1

) - y

n+1

为局部截断误差

.

) 2 (

) ) (

( ) (

) (

)

(x 1 y x x 1 x y x x 1 x 2 y

y n n n n n n n 

) 2 (

) ,

( )

( )

(x 1 y x hf x y h2 y

y n n n n 

即 由泰勒公式

Euler

公式

: yn+1 = yn+ hf (xn, yn)

的局部截断误差

y(xn+1) – yn+1=y(xn) – yn+ O(h2) = O(h2)

Euler

公式的局部截断误差记为

: O(h2)

Euler 1

局部截断误差(欧拉公式):

(8)

局部截断误差和p阶精度

若局部截断误差为

O(h p+1),则称显式单步法(如

欧拉法)具有

p

阶精度。

(

计算格式的精度概念

)

3.

证明修正的

Euler

法具有 2 阶精度

~ )]

, (

) ,

(

2 [

1 1

1

n

n n

n n

n

y h f x y f x y

y

) ,

~ (

1 n n n

n

y hf x y

y

 

将预测公式 代入

yn+1 = yn + 0.5h[f(xn,yn)+f(xn+1, yn+hf(xn, yn))]

f(xn+1, yn+hf(xn, yn))= f(xn+h, yn+hf(xn, yn))

= f (xn, yn)+h[fx]n + hf(xn,yn) [fy]n + O(h2) )

, (

)

(x f x y

y

y (x ) d f ( x , y )

(9)

局部截断误差和p阶精度

利用泰勒展开:

y(x

n+1

)=y(x

n

)+hy’(x

n

)+0.5h

2

y”(x

n

)+O(h

3

) 0.5h[f(x

n

,y

n

)+f(x

n+1

, y

n

+hf(x

n

, y

n

))]

=hy’(x

n

)+0.5h

2

y”(x

n

)+ O(h

3

)

局部截断误差

: y(xn+1) – yn+1 = y(xn) – yn + O(h3)

= O(h

3

)

y

n+1

= y

n +

hy’(x

n

)+0.5h

2

y”(x

n

)+ O(h

3

)

故修正的

Euler

法具有

2

阶精度。

(10)

Range-Kutta公式

由欧拉方法的截断误差可知:

1)用一阶泰勒多项式近似函数可以得其局部截断 误差为一阶泰勒余项

O(h2)

2)类似地,若用

p

阶泰勒多项式近似函数,则局部 截断误差应该为

p

阶泰勒余项

O(hp+1)

3)因此,理论上只要

y(x)

充分光滑,利用函数的 泰勒展开可以构造任意精度的数值方法

但是: 具体实施时是很困难的!因为:若直接对

y(x)

高次泰勒多项式近似,会出现

f(x,y)

的各阶偏导数

,使得计算变得十分复杂并且工作量巨大。

因此一般不直接使用泰勒展开方法, 但可以间接 使用。

所以:此处介绍的

Runge-Kutta

方法就属于间接

(11)

Range-Kutta公式

建立高精度的单步递推格式。

单步递推法的基本思想是从

(xi , yi ) 点出发,以某一斜率

沿直线达到

(xi+1 , yi+1)

点。

注意:欧拉法及其各种变形所能达到的最高精度为2阶。

考察改进的欧拉法,可以将其改写为:

) ,

(

) ,

( 2

1 2

1

1 2

1

2 1

1

hK y

h x

f K

y x

f K

K K

h y

y

i i

i i

i i





斜率

一定取

K1 K2

的平均值吗?

步长一定是一个

h

吗?

(12)

Range-Kutta公式

首先希望能确定系数

1

2

p1

p2

,使得到的算法格式 有

2

阶精度,即在

yi y(xi )

的前提假设下,使得

) (

)

( x 1 y 1 O h3

y

Ri i i

Step 1:

K2

(xi , yi )

点作

Taylor

展开

(

用二元函数泰勒展开

)

将改进欧拉法推广为:

) ,

(

) , (

] [

1 2

1

2 2 1

1 1

p2hK y

p1h x

f K

y x f K

K K

h y

y

i i

i i i i

) , ( ) , ( )

, (

) , ( )

, (

) , ( )

(

y x f y x f y

x

f dx

y dy x f y

x f

y x dx f

x d y

y x

y x



Step 2:

K2

代入第

1

式,得到

(13)

Range-Kutta公式

Step 3:

yi+1

y( xi+1 )

xi

点的泰勒展开作比较

) ( )

2 ( )

( )

( )

( x 1 y x hy x h2 y x O h3

y i i i  i

要求

Ri y(xi1) yi1 O(h3)

,则必须有:

这里有

个未知 数,

个方程。

3 4

问题: 为获得更高的精度,应该如何进一步推广?

注意到,当 p

1

=p

2

, 就是改进的欧拉法。

满足上述方程的一族公式称为二阶龙格 - 库塔格式 。

(14)

Range-Kutta公式

其中 

i

( i = 1, …, m ) , 

i

( i = 2, …, m )

ij

( i = 2, …, m; j = 1, …, i1 ) 均为待定系 数,确定这些系数的步骤与前面相似。

... ) ,

( ...

...

) ,

(

) ,

(

) ,

(

] ...

[

1 1 2

2 1

1

2 32

1 31

3 3

1 21

2 2

1

2 2 1

1 1

m m m m

m m

i m

i i

i i

i i

m m

i i

hK hK hK

y h x

f K

hK hK

y h x

f K

hK y

h x

f K

y x f K

K K

K h

y y

二阶龙格 - 库塔格式推广得到更高精度格式

(15)

Range-Kutta公式

最常用为四阶经典龙格-库塔法 /*

Classical Runge-Kutta Method */ :

) ,

(

) ,

(

) ,

(

) ,

(

) 2

2 (

3 4

2 2 3 2

2 1 2 2

1

4 3

2 6 1

1

hK y

h x

f K

K y

x f K

K y

x f K

y x

f K

K K

K K

y y

i i

i h i h

i h i h

i i

i h i

(16)

Range-Kutta公式

注:

龙格

-

库塔法的运算在于计算

Ki

的值,即计算

f

的值。

Butcher

1965

年给出了计算量与可达

到的最高精度阶数的关系 (本书不作要求):

7 5

3

可达到的最高 精度

6 4

每步须算

Ki

2

个数

) (h2

O O(h3) O(h4) O(h4) O(h5) O(h6) O(hn2)

8 n

由于龙格

-

库塔法的导出基于泰勒展开,故精度

主要受解函数的光滑性影响。对于光滑性不太

好的解,最好采用低阶算法而将步长

h

取小(

(17)

Range-Kutta公式

三阶

Range-Kutta

公式一般形式

y

n+1

= y

n

+ h[k

1

+4k

2

+k

3

]/6 k

1

=f(x

n

,y

n

),

k

2

=f(x

n

+0.5h, y

n

+0.5hk

1

) k

3

=f ( x

n

+h, y

n

– hk

1

+2 hk

2

)

四阶

Range-Kutta

公式一般形式

y

n+1

= y

n

+ h[k

1

+2k

2

+2k

3

+k

4

]/6 k

1

=f(x

n

,y

n

),

k

2

=f ( x

n

+ 0.5 h, y

n

+ 0.5 hk

1

) k

3

=f(x

n

+0.5h, y

n

+0.5hk

2

), k

4

=f(x

n

+h, y

n

+hk

3

)

类似二阶推导,可得三阶、四阶RK公式:

(18)

Range-Kutta公式





1 )

0 (

2 0

,

2

y

x xy

dx y dy

e x

x x

y

 

2 1

) 1

4 (

数值实验

:

几种不同求数值解公式的误差比较

n 10 20 30 40 h 0.2 0.1 0.0667 0.05

RK4 6.862e-005 3.747e-006 7.071e-007 2.186e-007 RK3 0.0012 1.529e-004 4.517e-005 1.906e-005 RK2 0.0123 0.0026 0.0011 5.9612e-004 Euler 0.1059 0.0521 0.0342 0.0256

(19)

线性单步法的收敛性和稳定性

一、收敛性

/*Convergence*/

1

( , , )

n n n n

y

y h x y h  

对于初值问题

的一

0 0 0

( , )

( ) ;

dy f x y

y x dx y x x

 

 

  

( )  1

Def

显式单步法

产生的近似解,

如果对于任一固定的 x

, n

x nh

0

 均有

, 则称该 单步法是收敛的

lim

0 n

( )

n

h

y y x

类似地可以定义隐式单步法的收敛性

(20)

线性单步法的收敛性和稳定性

定理

8.2

: 设初值问题(

*

)对应的下列单步法是

阶精度,

1

( , , )

n n n n

y

yh x y h

p

且函数 

满足对

y

Lipschitz

条件,即存在常数

L 0

1 2 1 2 1 2

| ( , , )x y h ( , , ) |x y h L y| y | y y,

并且初值

y0

是准确的,即

y0 = y(x),

则该单步法是 收敛的 , 且

y x( )n yn O h( )p

证明: e

n

y x ( )

n

y

n

由截断误差的定义

1 1

( n ) ( )n ( , ( ), )n n n y x y xh x y x h T 

1 [ ( , ( ), ) ( , , )] 1

n n n n n n n

e eh x y x h

x y hT

(21)

线性单步法的收敛性和稳定性

因为单步法是

p 阶的:  h

0

, 0   h h

0

满足 | T

n1

|Ch

p1

1 1

| e

n

| | |e

n

hL e | |

n

Ch

p

  | | e

n

 

其中 

 1 hL,

Chp1

1 2 2

| | e

n

  | e

n

|     | e

n

|    

3 2

3 1

| en | ( )

  

      

2 1

0

1

| | e

n

 

n

| | e   (       ...

n

)

0 0 1 0

1

| | exp[ ( e

n

L x x

n

)]| | eCh L

p

{exp[ ( L x x

n

)] }

1{exp[ ( 0)] }1

p n

Ch L L x x

  

( )

p

e

n

O h

0(h 0)

 

=

=

(22)

线性单步法的收敛性和稳定性

二、绝对稳定性

/*Absolute Stibility*/

计算过程中产生的舍入误差对计算结果的影响

首先以

Euler

公式为例,来讨论一下舍入误差的传播

:

1

( , )

n n n n

y

y hf x y

设实际计算得到的点

x

n

的近似函数值为

y

n

y

n

 

n

y

n

其中

为精确值,

n

为误差

1

( , )

n n n n

y

yhf x y

n1

y

n1

y

n1

1

[ ( , ) ( , )] [ 1 ( , )]

n n

h f x y

n n

f x y

n n

hf x

y n n

       

如果

| 1  hf |  1 ,则误差是不增的,故可认为是稳定的

(23)

线性单步法的收敛性和稳定性

例如: 对于初值问题

( )

0

y y

y x a

  

 

精确解为

x x0

y ae

而实际求解的初值问题为

( )

0

y y

y x a a

  

   

精确解为 y a    ( a e )

x x 0

x

n

处的误差为  ae

xn x0

可见误差随着

x

n

的增加呈指数函数增长

如果初值问题为

( )

y y

y x a

  

   精确解为

0

y ae

x x

(24)

线性单步法的收敛性和稳定性

实际求解的初值问题为

( )

0

y y

y x a a

  

    

精确解为 y a    ( a e )

x x0

x

n

处的误差为  ae

x x0 n

可见误差随着

x

n

的增加呈指数函数递减

f

y

 0 时,微分方程是不稳定的;

f

y

 0 时,微分方程是稳定的。

上面讨论的稳定性,与数值方法和方程中

f 有关

(25)

线性单步法的收敛性和稳定性

实验方程: y    y   C ,Re( )   0

1

( , , )

n n n n

y

yh x y h

对单步法

应用实验方程,

1

( )

n n

y

E h y

Def 3

h

如果

,当

E h ( )   1 时,则称该 单步法是绝对稳定的,在复平面上复变量

满足

( ) 1

E h   的区域,称为该单步法的绝对稳定域,

它与实轴的交集称为绝对稳定区间。

(26)

线性单步法的收敛性和稳定性

1

( ) ( 1 )

n n n n

y

yh y    h y

4

:分别求

Euler

法和经典的

R-K

法的绝对稳定区间。

( ) 1

E h     h

解: 

Euler

公式: y

n1

y hf x y

n

( , )

n n

将其应用于实验方程

绝对稳定域: 1   h  1

1   h     1 2  h  0

  R 时,

绝对稳定区间: ( , )  2 0

经典的

R-K

公式: y

n1

y

n

6 h ( k

1

2 k

2

2 k k

3

4

)

(27)

线性单步法的收敛性和稳定性

1

( , )

n n

kf x y

2

(

n

h 2 ,

n

h 2

1

) (

n

h 2

1

) kf xyk   yk

3

(

n

h 2 ,

n

h 2

2

) (

n

h 2

2

) kf xyk   yk

4

(

n

,

n 3

) (

n 3

)

kf x h y hk     y hk

2

(   2 h y )

n

 

2 3 2

2 4

(   hh y )

n

  

3

y

n

hk

 

 

2 3 4

1 2 3 4

( ) ( ) ( )

( ) ! ! !

h h h

E h     h      

2 2 3 3 4 4

1

1

2 3 4

( )

! ! !

n n

h h h

y

   h       y y

n

(28)

线性单步法的收敛性和稳定性 当 

R 时,

绝对稳定区间: ( .  2 785 0 , )

2 3 4

1 1

2 3 4

( ) ( ) ( )

( ) ! ! !

h h h

E h     h       

可以证明:

存在唯一极小值点

2 3 4

1 2 3 4

( ) ! ! !

t t t

g t    t  

1 596 . ; ( ) 0 27 0 . t

  g t

 

2 3 4

1 1

2 3 4

( ) ! ! !

t t t

g t    t   

(29)

线性多步法简介

1

1 -r 1

RK , ,

n n

n n n n

y y

y y y y

单步法在计算 时,只用到前一步的信息 。 为提高精度,需重新计算多个点处的函数值,如

方法,计算量较大。如何通过较多地利用前面的已知 信息,如 , , 来构造高精度的算法计算 , 这就是多步法的基本思想。

线性多步法(理解思想即可)

Referensi

Dokumen terkait

4.1 【封面故事】指数函数及其反函数图象的公共点——郭子伟 本期封面图来源于经典的“互为反函数的指数函数与对数函数的函数图象公共点个数问题”。 初次判断,很容易会漏掉一种情况,就是封面图的三个公共点的情形。造成这种疏漏的原因,多数在于判 断时仅是徒手画出函数的大致图象,观察一下就妄下定论,想当然而出错。这种错误并不少见,甚至连命题者

图1 分数阶导数主要具有以下优势:1.分数阶导数具有全局相关能较好地体现系统函数发展 的历史依赖过程;而整数阶导数具有局部性,不适合描述有历史依赖过程。 2.分数阶导数 模型克服了经典整数阶微分模型理论与实验结果吻合不好的严重缺点,使用较少几个参数就 可获得很好的效果。3.在描述复杂物理力学问题时,与非线性模型比较,分数阶模型的物理 意义更清晰,表述更简洁。

一般积分方法 有理函数 分解 多项式及 部分分式之和 指数函数有理式 指数代换 三角函数有理式 万能代换 简单无理函数 根式代换

重点 多元函数基本概念,偏导数,全微分 ,复合函数求导,隐函数求导,偏导数的几 何应用,多元函数极值。 难点 多元函数极限、复合函数求导, 多元微积分的概念、理论、方法是一元 微积分的推广和发展,它们既有相似之处(概 念及处理问题的思想方法)又有许多本质的不 同,要善于比较、注意区别。 CH8 多元函数微分学 及其应用... 多元函数的定义;区域的概念;

习题课 级数的收敛、求和与展开 三、幂级数和函数的求法 四、函数的幂级数和傅式级数 展开法 一、数项级数的审敛法 二、求幂级数收敛域的方法

《数值分析》20 主要内容: 导数的数值计算方法 数值求导的外推方法 解微分方程的差分法简介含常微分方程数值解法... 学到了什么? 导数的数值计算方法 数值求导的外推方法

理解并会用罗尔 Rolle 定理、拉格朗日 Lagrange 中值定 理和泰勒 Taylor 定理,了解并会用柯西 Cauchy 中值定理... 掌握用定积分表达和计算一些几何量 平面图形的面积、 平面曲线的弧长、旋转体的体积及侧面积、平行截面面积为已知 的立体体积等

GFDワークノート 第10章1次元移流方程式の数値解法 9 群速度の分散性の具体例 空間的に滑らかな関数 Yxを考える.. 例えば波長の長い正弦波 Yxを空間方 向に離散化したものをYj とし, Yj =Yx