第七章 常微分方程数值解

合集下载

(整理)第七章常微分方程数值解1

(整理)第七章常微分方程数值解1

第七章常微分方程数值解本章介绍求解微分方程数值解的基本思想和方法.●常微分方程含有自变量、未知函数和它的一阶导数和高阶导数的方程.它是描述运动、变化规律的重要数学方法之一,分为两类:1.初值问题,即给出未知函数及导数在初始点的值2.边值问题,即给出未知函数及(或)它的某些导数在区间两个端点的值●常微分方程初值问题00(,),, ||(),,y f x y a x b y y a y y R '=<≤<∞⎧⎨=∈⎩ 其中f 为,x y 的已知函数,0y 为给定的初值. 这里仅讨论一阶标量微分方程初值问题的数值解法.而高阶微分方程通常可化为一阶微分方程组来研究.数值解法寻求微分方程初值问题之解()y x 在一系列离散点012N a x x x x b =<<<<=上的近似值:,,,210y y yN y , 的方法.{}n y : 问题的数值解数值解所满足的离散方程统称为差分格式. 步长:1i i i h x x -=- ,一般取定步长i h h =● 初值问题的适定性(其解是否唯一存在)记(带形)区域:[,]a b R ⨯为G ,即G =[,]a b R ⨯. 设:f G R →为连续映射,若存在常数0L >使得不等式1212|(,)(,)|||f x y f x y L y y -≤- 对一切12(,),(,)x y x y G ∈都成立,则称(,)f x y 在G 上关于y 满足Lipschitz 条件,而式中的常数L 称为Lipschitz 常数.定理 初值问题00(,),, ||(),,y f x y a x b y y a y y R '=<≤<∞⎧⎨=∈⎩,当(,)f x y 在G 上连续,且关于y 满足Lipschitz 条件,则其解存在且唯一.§ 7.1 Euler 方法● Euler 公式将初值问题⎩⎨⎧∈=∞<≤<=',,)(||,),,(00R y y a y y b x a y x f y 的求解区间],[b a N 等分,分点:),,2,1,0(,N n nh a x n =+= ,其中N ab h -=将),(y x f y ='写成等价的积分方程形式:⎰++=+hx x d y f x y h x y τττ))(,()()(,在上式中令n x x =,并用左矩形公式计算右端积分,得到n n n n n R x y x hf x y h x y ++=+))(,()()(, (*)⎰+-=1))(,())(,(n nx x n n n x y x hf dx x y x f R ——余项将(*)中的余项n R 截去,可得))(,()()(1n n n n x y x hf x y x y +≈+则有)(n x y 的近似值n y 的递推公式1,,1,0),,(1-=+=+N n y x hf y y n n n n (*1)----------Euler 公式n R 表示当)(n n x y y =为精确值时,利用(*1)即Euler 公式计算)(1+n x y 时的误差.n n n y x y -=)(ε 为Euler 方法的局部截断误差.例1 用Euler 公式解初值问题⎪⎩⎪⎨⎧=≤<-='1)0(10,2y x y x y y解:取1.0=h ,Euler 公式的具体形式为)2(),(1nnn n n n n n y x y h y y x hf y y -+=+=+其中)10,,1,0,1.0 ===n n nh x n ( 已知10=y ,则有1.11.01)2(0001=+=-+=y x y h y y191818.1)1.12.01.1(1.01.1)2(11112=-+=-+=y x y h y y… … … 依次计算可得109876543,,,,,,,y y y y y y y y其部分结果见下表可见Euler 方法的计算结果精度不太高。

第7章 常微分方程数值解法简介-2011-04

第7章 常微分方程数值解法简介-2011-04
将区间 a, b (T b a 0) 作N等分,小区间的长度 T / N h 称为步长,点列 xi a ih (i 0,1,..., N) 称为节点, 0 a 。 x 由已知初值 y( x0 ) y0 ,可算出 y ( x) 在 x x0 的导数
y' ( x0 ) f ( x0 , y( x0 )) f ( x0 , y0 ) 。
容易求出这个一阶微分方程初值问题的解为
(7.1.1)
u ua (u0 ua )ekt
u1 ua (u0 ua )e10k
0 0 u0 u 将 150 C , a 24 C 代入,得
(7.1.2)
根据问题所给的条件知 t 10 ,当时,u u1 1000 C ,得到
(7.2.4)
Euler法有明显的几何意义:
实际上,初值问题(7.2.1)的解是xy平面上过点 ( x0 , y0 ) 的一 条积分曲线。按Euler法,过初始点 ( x0 , y0 ) 作经过此点的积分曲线的 切线(斜率为 f ( x0 , y0 ) ),沿切线取点1 , y1( y1 按式(7.2.4)计算) (x ) 作为 ( x1 , y( x1 )) 的近似.然后,过 ( x1 , y1 ) 作经过此点的积分曲线的切线 (斜率为 f ( x1 , y1 ) ),沿切线取点 ( x2 , y2 ) y2按式(7.2.4)计算)作 ( 为 ( x2 , y( x2 )) 的近似.如此下去,即得一条以 ( xn , yn ) 为顶点的折线, 这就是用Euler法得到的近似积分曲线,如图7-1所示.从几何图形上 看, h 越小,此折线逼近积分曲线越好,因此也称Euler法为Euler 折线法。
f ( x, y1 ) f ( x, y2 ) L y1 y2

常微分方程数值解法资料.

常微分方程数值解法资料.

y(x)
y(xn ) (x xn ) y/ (xn )
(x xn )2 2
y// ( )
y(xn1)
y(xn ) (xn1 xn ) y/ (xn )
(xn1 xn )2 2
y// ( )
y ( xn1 )
y(xn ) hy/ (xn )
h2 2
y// ( )
初值问题的Euler方法
yn
k1 )
(n 0,1, 2,...)
该式称为改进Euler方法, 亦可写成
yn1
yn
h[ 2
f
(xn,yn )
f
( xn 1 ,
yn
hf
(xn ,
yn ))]
初值问题的Euler方法
例 设初值问题
dy dx
y
2x y
y(0) 1
试分别用Euler法和改进Euler法求解,并与
精确解y 1 2x进行比较。
的不同在于,它每算一步要解函数方程(2)才能得到
yn1。
初值问题的Euler方法
如果取以上两式的算术平均值的结果,则得
yn1
yn
h[ 2
f
(xn ,
yn )
f (xn1, yn1)]
(n 0,1,2,..).
称为梯形公式。
计算yn时常用以下迭代式:
y(0) n1
yn
hf
(xn ,
yn )
y (k 1) n1
y ( xn 1 )
y(xn ) hy/ (xn )
h2 2
y// ( )
则:y(xn1) yn1 O(h2 )
局部截断误差为:O(h2 )
改进的Euler方法局部截断误差为O(h3)

第七章常微分方程数值解法

第七章常微分方程数值解法

h2 h3 y ( xi 1 ) y ( xi h) y ( xi ) hy '( xi ) y ''( xi ) y '''( xi ) 2! 3!
丢掉高阶项,有
y( xi 1 ) y( xi h) y( xi ) hy '( xi ) yi hf ( xi , yi )
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | ,
那么模型问题在 [ a, b] 存在唯一解。
Lipschitz 连续: | f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | .
(1) 比连续性强: y1 y2 可推出 f ( x, y1 ) f ( x, y2 ) ; (2) 比连续的 1 阶导弱:具有连续的 1 阶导,则
f | f ( x, y1 ) f ( x, y2 ) || ( ) || y1 y2 | L | y1 y2 | . y
常微分方程数值解法
目标:计算出解析解 y ( x) 在一系列节点 a x0 x1 xn1 xn b 处的近似值 yi y( xi ) ,即所谓的数值解。节点间距 hi xi 1 xi ,一般 取为等距节点。
常微分方程初值问题的数值解法一般分为两大类: (1)单步法:在计算 yn 1 时,只用到前一步的值,即用到 xn1 , xn , yn ,则给定初
值之后,就可逐步计算。例如 Euler 法、向后欧拉法、梯形公式、龙格-库塔法;
(2) 多步法: 这 类 方 法 在 计算 yn 1 时 , 除 了 用 到 xn1 , xn , yn 外 , 还 要 用到

第七章常微分方程数值解 课件

第七章常微分方程数值解 课件

这样就获得了 P1点的坐标。
P1?
P1 P0
P?i+1 Pn? y=y(x)
Pi?
Pn
Pi Pi+1
x0 x1
xi xi+1 xn
同样, 过点P1(x1,y1),作积分曲线 y=y(x)的切线
交直线 x=x2于P2点,切线 P1P2 的斜率 y?(x1) = f (x1, y1 ) 直线方程为
y ? y1 ? f ( x1 , y1 )( x ? x1 )
xi xi+1 xn
相交于 P 1点(即点 (x1,y1),得到y1作为y(x 1)的近似值 , 如上图所示。过点 (x0,y0),以f(x0,y0)为斜率的切线 方程为
y ? y 0 ? f ( x 0 , y 0 )( x ? x 0 )
当x ? x1时,得
y1 ? y0 ? f (x0 , y0 )( x1 ? x0 )
称为定步长,这时节点可表示为 xi ? x0 ? ih, i ? 1,2,? , n
数值解法需要把连续性的问题加以离散化,从而求
出离散节点的数值解。
对常微分方程数值解法的基本出发点就是离散
化。其数值解法有两个基本特点,它们都采用“步
进式”,即求解过程顺着节点排列的次序一步一步
地向前推进,描述这类算法,要求给出用已知信息
Tel: 86613747 E-mail : lsszjtcm 授课: 68 学分:4
第七章 常微分方程的数值解法
7.1 引言 包含自变量、未知函数及未知函数的导数或微
分的方程称为微分方程。在微分方程中 , 自变量的 个数只有一个 , 称为常微分方程 .。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分 方程的阶数。如果未知函数 y及其各阶导数

第7章 常微分方程数值解法

第7章  常微分方程数值解法

代入(6―3)式得
h yi 1 yi [ f ( xi , yi ) f ( xi 1 , yi 1 )] 2 i 0,1, 2, , n 1
(6―5)
这样得到的点列仍为一折线,只是用平均斜率 来代替原来一点处的斜率。式(6―5)称为改进的欧拉 公式。
不难发现,欧拉公式(6―3)是关于yi+1 的显式,只
h y xi 1 yi 1 f xi 1 , y xi 1 f xi 1 , yi 1 2 (6―15) h 3 '' f 12
因此
hL h3 y ( xi 1 ) yi 1 y ( xi 1 ) yi 1 f ( ) 2 12 h3 (1 q) y ( xi 1 ) yi 1 f ( ) 12 y ( xi 1 ) yi 1 O ( h 3 )
c 并取 yi 1 yi(1)
(6―7)
虽然式(6―7)仅迭代一次,但因进行了预先估计,
故精度却有较大的提高。 在实际计算时,还常常将式(6―7)写成下列形式:
k1 f ( xi , yi ) k f ( x h, y hk ) i i 1 2 h yi 1 yi 2 (k1 k2 ) i 0,1, 2,
在进行误差分析时,我们假设yi=y(xi),考虑用
yi+1 代替y(x
i+1)而产生截断误差,确定欧拉公式和改
进的欧拉公式的精确度。 设初值问题(6―1)的准确解为y=y(x),则利用泰 勒公式
y ( xi 1 ) y ( xi h ) h2 y ( xi ) hy ( xi ) y ( xi ) 2! h3 y ( xi ) 3!

第七章 常微分方程的数值解法

第七章 常微分方程的数值解法

yi 1 yi h f ( xi , yi ) (i 0, ... , n 1)
依上述公式逐次计算可得:
y1 y0 hf ( x0 , y0 ) y2 y1 hf ( x1 , y1 ) yn 1 yn hf ( xn , yn )
/* Euler’s polygonal arc method*/ 故也称 Euler为单步法
1 1 2 1 , 2 p 2
这里有 3 个未知 数, 2 个方程。
存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库 塔格式。注意到,p 1, 1 2 1 就是改进的欧拉法。
2
Q: 为获得更高的精度,应该如何进一步推广?
yi1 yi h[ 1 K1 2 K2 ... m Km] K1 f ( xi , yi ) K2 f ( xi 2 h, yi 21 hK1 ) K3 f ( xi 3 h, yi 31 hK1 32 hK2 )
y ( x)
欧拉方法
y
pn
pn1
y y ( x)
p xn1
xn
xn 1
x
欧拉折线法
x1 y1
x2 y2
x3 y3
… …
xn yn
局部截断误差
在假设第i步计算是精确的前提下,考虑截断误差
Ri y( xi 1 ) yi 称为局部截断误差
•定义:若某算法的局部截断误差为O(hp+1),则称该 算法有p 阶精度。
y0 y( x0 ), xn1 xn h yn1 yn hf ( xn , yn ),( n 0,1,2,)
连续问题:
yn1 yn h

常微分方程数值解法

常微分方程数值解法

第七章 常微分方程数值解法常微分方程中只有一些典型方程能求出初等解(用初等函数表示的解),大部分的方程是求不出初等解的。

另外,有些初值问题虽然有初等解,但由于形式太复杂不便于应用。

因此,有必要探讨常微分方程初值问题的数值解法。

本章主要介绍一阶常微分方程初值问题的欧拉法、龙格-库塔法、阿达姆斯方法,在此基础上推出一阶微分方程组与高阶方程初值问题的 数值解法;此外,还将简要介绍求解二阶常微分方程值问题的差分方法、试射法。

第一节 欧拉法求解常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(y x y y x f dxdy(1)的数值解,就是寻求准确解)(x y 在一系列离散节点 <<<<<n x x x x 210 上的近似值 ,,,,,210n y y y y{}n y 称为问题的数值解,数值解所满足的离散方程统称为差分格式,1--=i i ix x h 称为步长,实用中常取定步长。

显然,只有当初值问题(1)的解存在且唯一时,使用数值解法才有意义,这一前提条件由下 面定理保证。

定理 设函数()y x f ,在区域+∞≤≤-∞≤≤y b x a D ,:上连续,且在区域D 内满足李普希兹(Lipschitz)条件,即存在正数L ,使得对于R 内任意两点()1,y x 与()2,y x ,恒有()()2121,,y y L y x f y x f -≤-则初值问题(1)的解()x y 存在并且唯一。

一、欧拉法(欧拉折线法)若将函数)xy 在点nx处的导数()n x y '用两点式代替, 即()hx y x y x y n n n )()(1-≈'+,再用n y 近似地代替()n x y ,则初值问题(1)变为⎩⎨⎧==++=+ ,2,1,0),()(001n x y y y x hf y y n n n n(2)(2)式就是著名的欧拉(Euler)公式。

以上方法称 为欧 拉法或欧拉折线法。

第七章常微分方程数值解

第七章常微分方程数值解

第七章 常微分方程数值解§1 引言一 一阶初值问题解的存在唯一性一阶常微分方程初值问题0(,)()dyf x y dxy x α⎧=⎪⎨⎪=⎩ (*)其中(,)f x y 是xy 平面某一区域D 上的连续函数,如果(),[,]y y x x a b =∈,满足 1(,())x y x D ︒∈002()y x y ︒=3()y x '︒存在,并满足方程'()(,)y x f x y =那么()y y x =是初值问题(*),在[,]a b 上的解。

对于(*)是否有唯一解?对(,)f x y 还要附加一些条件。

定义 如果存在正常数L ,使得对任意12,x x R ∈有1212()()x x L x x ϕϕ-≤-则称ϕ满足Lipschitz 条件,L 称为Lipschitz 常数。

如果 '()x L ϕ≤,那么有12121212()()'()()'()x x x x x x L x x ϕϕϕζϕζ-=-=⋅-≤-导数有界⇒满足Lipschitz 条件如果存在常数0L >,使得对一切[,]x a b ∈及12,y y R ∈有 1212(,)(,)f x y f x y L y y -≤-则称f 对y 满足Lipschitz 条件。

同理,只要 f(x,y)对 y 的偏导数有界,则f(x,y) 满足对y 的Lipschitz 条件。

定理(存在唯一性),设f 是在 {}(,),D x y a x b y R =≤≤∈上的连续函数,而且f 对y 满足Lipschitz 条件,则对任意00[,],x a b y R ∈∈,初值问题(*)在[,]a b 上存在唯一的连续可微解()y y x =。

二 本章研究的问题例1 ,满足微分方程和初始条件的解是 y(x)=,无法给出具体表达式。

为了对初值问题进行求解,一些简单问题有解析解,大量非线性问题没有解析表达式,就是线性问题也不一定有解析解,因此,近似求解和数值求解常微分方程是非常必要的。

第七章常微分方程数值解(2013-07)

第七章常微分方程数值解(2013-07)

§7.2 Euler方法 7.2.1 Euler公式
假设初值问题( 7.1)-(7.2)式的解y =y (x)存在且足够光滑, 对求解区域[a, b]分成n+1个节点: a x0 x1 xn xN b
其中节点xn x0 nh, n 1, 2,, N , h为步长, 数值解法就是求 精确解y ( x)在节点xn上的近似值yn , 使 : y n y ( xn ) n 1, 2, , N
从计算结果可见,改进的Euler方法明显地改的误差分析
为了简化对误差的分析, 我们主要研究进行一步计算时产生的误差. 假设yn y ( xn ), 误差y ( xn 1 ) yn 1称为局部截断误差, 它可以反映出差分公 式的精度.
1. 估计Euler公式的局部截断误差 .假设yn y ( xn ), 注意到 y( xn ) f ( xn , y ( xn )) f ( xn , yn )
xn1
推计算出 y1 , y2 , , y N . 类似地, 若对(7.3)式右端的积分应用梯形 求积公式
h yn 1 yn [ f ( xn , yn ) f ( xn 1 , yn 1 )] 2 y0 a n 0, 1,
如果在区间 [ xn 1 , xn 1 ]上积分方程 (7.1), 则得到 y ( xn 1 ) y ( xn 1 )
构造 欧拉公式 的基本 思 想是 : 通过 离散化方 法将常 微 分方 程 (7.1)在剖 分节点 {xn }上离 散化 , 建立 关于节点 近似值 { yn }的差 分方 程,然后 结合定解 条件由 差 分方 程求出近 似值 yn , (n 1, 2, ). 为此 在区间 [ xn , xn 1 ]上对方程 (7.1)做积分, 得到

Cht7 常微分方程数值解法1_2017112822

Cht7 常微分方程数值解法1_2017112822

i 1
f (xn , yn )
i 1
Ki
f (xn aih, yn h bij K j )
j 1
(i 2, 3
, p)
其中ai,bij , ci都是参数,确定它们的原则是使近似公式
在(xn , yn )处的Taylor展开式与y(x)在xn处的Taylor展开式 的前面项尽可能多地重合。
yn1 yn h(c1K1 c2K2 )
xn dx
xn
用yn1, yn代替y(xn1), y(xn ), 对右端积分采用 取左端点的矩形公式
则有
xn1 xn
f
(x,
y)dx
hf
(xn , yn )
yn1 yn hf (xn , yn ) (n 0,1, ) 14
C 在xn 附近 y(x) 的 Taylor 展开:
y(xn
h)
y(xn)
当p 2时,近似公式为
K1
f (xn , yn )
K2 f (xn a2h, yn hb21K451)
上式在(xn , yn )处的Taylor展开式为
yn1 yn h[c1 f (xn , yn ) c2 f (xn a2h, yn hb21 f (xn , yn ))]
yn h{c1 f (xn , yn ) c2[ f (xn , yn ) a2hfx (xn , yn )
y0 1,yn1 yn h yn1
因此,在第n步,近似解为yn 1 h n。
对负的,要求
1 h 1 1
这对一切正的步长h都成立。
30
三、梯形公式
微分方程y f (x, y)等价于积分方程
y
xn1
y
xn

第七章常微分方程的数值解法课件

第七章常微分方程的数值解法课件
量总是从温度高的物体向温度低的物体传导的;在一定的温度范围内,
一个物体的温度变化速度与这个物体的温度和其所在的介质温度的差
值成正比。这是已为实验证实了的牛顿(Newton)冷却定律。设物 体在时刻的温度为 u , u则(t)温度的速度以 来示d。u
dt
注意到热量总是从温度高的物体向温度低的物体传导,因而 。u0 所 u以a 温 度差 恒正u;又ua因物体将随时间而逐渐冷却,故温度变化速度恒负。故有:
不过并不是所有的微分方程模型都可用上述方法求解出来。1638年莱布尼 茨向全世界提出如下的求解方法.
dy x2 y2 dx
该问题1886年才被数学家刘维尔证明没有解析解。只能借助于本章要介绍的 数值解法。
7.2 初值问题数值解法的推导方式及常用解法
我们先考虑常微分方程初值问题。它的数学模型是:求 y,使y(之x)满足
取步长h=0.02.
解 因为步长h=0.02,所以各节点xi 0.02i,i 0,1, 2,3, 4,5. 因为 y0 利1,用欧拉法的计算公式
yi1
yi
0.9hyi 1 2xi
,
可取 y1 0.9820, y2 0.9650, y3 0.9489, y4 0.9337, y5 0.9192.
,
需要知道两个初值.在此,我们利用后退欧拉法计算的结 果 y1 再 0依.9次830计, 算
y2 0.9660, y3 0.9508, y4 0.9354, y5 0.9218.
例7.2.1的解析解是 y (1 2用x)它0.45计, 算各节点的函数值可得
y1 0.9825055161, y2 0.9659603719, y3 0.9502806582,
把上述y4 三 0种.9方353法92计54算62的, y结5 果0.同921准23确07对78照3.,可以看出它们确 实都是准确值的近似值,只是误差不一样.欧拉法的误差偏 小,后退欧拉法偏大,中点法最小.这跟它们的局部截断误差 的符号、阶数、大小是一致的。

第七章 常微分方程数值解

第七章 常微分方程数值解

第七章常微分方程数值解7.1 引言本章讨论常微分方程初值问题(7.1.1)的数值解法,这也是科学与工程计算经常遇到的问题,由于只有很特殊的方程能用解析方法求解,而用计算机求解常微分方程的初值问题都要采用数值方法.通常我们假定(7.1.1)中f(x,y)对y满足Lipschitz条件,即存在常数L>0,使对,有(7.1.2)则初值问题(7.1.1)的解存在唯一.假定(7.1.1)的精确解为,求它的数值解就是要在区间上的一组离散点上求的近似.通常取,h称为步长,求(7.1.1)的数值解是按节点的顺序逐步推进求得.首先,要对方程做离散逼近,求出数值解的公式,再研究公式的局部截断误差,计算稳定性以及数值解的收敛性与整体误差等问题. 7.2 简单的单步法及基本概念7.2.1 Euler法、后退Euler法与梯形法求初值问题(7.1.1)的一种最简单方法是将节点的导数用差商代替,于是(7.1.1)的方程可近似写成(7.2.1)从出发,由(7.2.1)求得再将代入(7.2.1)右端,得到的近似,一般写成(7.2.2)称为解初值问题的Euler法.Euler法的几何意义如图7-1所示.初值问题(7.1.1)的解曲线y=y(x)过点,从出发,以为斜率作一段直线,与直线交点于,显然有,再从出发,以为斜率作直线推进到上一点,其余类推,这样得到解曲线的一条近似曲线,它就是折线.Euler法也可利用的Taylor展开式得到,由(7.2.3) 略去余项,以,就得到近似计算公式(7.2.2).另外,还可对(7.1.1)的方程两端由到积分得(7.2.4)若右端积分用左矩形公式,用,,则得(7.2.2).如果在(7.2.4)的积分中用右矩形公式,则得(7.2.5)称为后退(隐式)Euler法.若在(7.2.4)的积分中用梯形公式,则得(7.2.6)称为梯形方法.上述三个公式(7.2.2),(7.2.5)及(7.2.6)都是由计算,这种只用前一步即可算出的公式称为单步法,其中(7.2.2)可由逐次求出的值,称为显式方法,而(7.2.5)及(7.2.6)右端含有当f对y非线性时它不能直接求出,此时应把它看作一个方程,求解,这类方法称为稳式方法.此时可将(7.2.5)或(7.2.6)写成不动点形式的方程这里对式(7.2.5)有,对(7.2.6)则,g与无关,可构造迭代法(7.2.7)由于对y满足条件(7.1.2),故有当或,迭代法(7.2.7)收敛到,因此只要步长h足够小,就可保证迭代(7.2.7)收敛.对后退Euler法(7.2.5),当时迭代收敛,对梯形法(7.2.6),当时迭代序列收敛.例7.1用Euler法、隐式Euler法、梯形法解取h=0.1,计算到x=0.5,并与精确解比较.解本题可直接用给出公式计算.由于,Euler法的计算公式为n=0时,.其余n=1,2,3,4的计算结果见表7-1.对隐式Euler法,计算公式为解出当n=0时,.其余n=1,2,3,4的计算结果见表7-1.表7-1 例7.1的三种方法及精确解的计算结果对梯形法,计算公式为解得当n=0时,.其余n=1,2,3,4的计算结果见表7-1.本题的精确解为,表7-1列出三种方法及精确解的计算结果.7.2.2 单步法的局部截断误差解初值问题(7.1.1)的单步法可表示为(7.2.8)其中与有关,称为增量函数,当含有时,是隐式单步法,如(7.2.5)及(7.2.6)均为隐式单步法,而当不含时,则为显式单步法,它表示为(7.2.9)如Euler法(7.2.2),.为讨论方便,我们只对显式单步法(7.2.9)给出局部截断误差概念.定义2.1设y(x)是初值问题(7.1.1)的精确解,记(7.2.10)称为显式单步法(7.2.9)在的局部截断误差.之所以称为局部截断误差,可理解为用公式(7.2.9)计算时,前面各步都没有误差,即,只考虑由计算到这一步的误差,此时由(7.2.10)有局部截断误差(7.2.10)实际上是将精确解代入(7.2.9)产生的公式误差,利用Taylor展开式可得到.例如对Euler法(7.2.2)有,故它表明Euler法(7.2.2)的局部截断误差为,称为局部截断误差主项.定义2.2 设是初值问题(7.1.1)的精确解,若显式单步法(7.2.9)的局部截断误差,是展开式的最大整数,称为单步法(7.2.9)的阶,含的项称为局部截断误差主项.根据定义,Euler法(7.2.2)中的=1故此方法为一阶方法.对隐式单步法(7.2.8)也可类似求其局部截断误差和阶,如对后退Euler法(7.2.5)有局部截断误差故此方法的局部截断误差主项为,也是一阶方法.对梯形法(7.2.6)同样有它的局部误差主项为,方法是二阶的.7.2.3 改进Euler法上述三种简单的单步法中,梯形法(7.2.6)为二阶方法,且局部截断误差最小,但方法是隐式的,计算要用迭代法.为避免迭代,可先用Euler法计算出的近似,将(7.2.6)改为(7.2.11)称为改进Euler法,它实际上是显式方法.即(7.2.12)右端已不含.可以证明,=2,故方法仍为二阶的,与梯形法一样,但用(7.2.11)计算不用迭代.例7.2用改进Euler法求例7.1的初值问题并与Euler法和梯形法比较误差的大小.解将改进Euler法用于例7.1的计算公式当n=0时,.其余结果见表7-2.表7-2 改进Euler法及三种方法的误差比较从表7-2中看到改进Euler法的误差数量级与梯形法大致相同,而比Euler法小得多,它优于Euler法.讲解:求初值问题(7.1.1)的数值解就是在假定初值问题解存在唯一的前提下在给定区间上的一组离散点上求解析解的一组近似为此先要建立求数值解的计算公式,通常称为差分公式,简单的单步法就是由计算下一步,构造差分公式有三种方法,一是用均差(即差商)近似,二是用等价的积分方程(7.2.4)用数值积分方法,三是用函数的Taylor展开,其中Taylor展开最有普遍性,可以得到任何数值解的计算公式及其局部截断误差。

第七章 常微分方程数值解法.

第七章  常微分方程数值解法.
本章解决的问题:一阶常微分方程的初值问题
y f ( x, y), x [a,b]

y(
x0
)

y0
23
7.1 欧拉法和改进的欧拉法
欧拉公式

yi1 yi y0 y( x0 )
h
f
(xi ,
yi )
,
i

0,1,2,
改进的欧拉公式

yi
1

26
引言:
公式构造思想:从泰勒公式出发,寻找更高阶的 数值公式。
例如,泰勒公式计算到二阶可得
y(x + h) = y(x) + yⅱ(x)h + 1 y ?(x)h2 + O(h3) 2!

ìïïïíïïïî
y¢(x) = yⅱ(x) =
f (x, y(x)) df (x, y(x))
dx
=
fx (x, y(x)) +
可证明预测-校正公式的截断误差也为 O(h3)。
18
7.1.2 改进的欧拉法及预测-校正公式
例 取步长h=0.2,用改进的欧拉法的预测-校正公
式求解初值问题的数值解y1 , y2 .
ìïïíïïî
y¢= x + y(0) = 1
y

f (x, y) = x + y, x0 = 0, y0 = 1
预测-校正公式具体是
y( p) 2
=
0.2x1 +
1.2 y1
=
0.2?
0.2
1.2? 1.24
1.528
y2 = y1 + 0.1[(x1 + y1) + (x2 + y2( p) )] = 1.24 + 0.1(0.2 + 1.24 + 0.4 + 1.528) = 1.5768

常微分方程数值解

常微分方程数值解
第七章 常微分方程数值解
汇报人姓名
汇报时间:12月20日
Annual Work Summary Report
7.1 引言
7.2 简单的单步法及基本概念
7.3 Runge-Kutta方法
7.4 单步法的收敛性与绝对稳定性
7.5 线性多步法
7.6 一阶方程组与高阶方程数值方法
第七章 常微分方程数值解
注3 用k步法计算时须先用其它方法(如Runge-Kutta法)求出前面k个值作为初值,此后每推进一步只须计算一个新的f值。
1
继而考虑Adams方法的稳定性:
2Adams方法的稳定性Adams方法的稳定性
7.5.3 Adams预测-校正方法 Adams修正的预估校正公式:利用4步Adams显式和3步隐式公式具有同阶截断误差但系数不同的特点,将截断误差用显式公式(预估值,用表示)和隐式公式(校正值,用表示)表示出来,继而进行补足,具体做法如下:
四阶Runge-Kutta法:每推进一步须计算四次函数值的4阶单步法。
7.4 单步法的收敛性与绝对稳定性
7.4.1 单步法的收敛性
01
7.4.2 绝对稳定性
02
7.4.2 绝对稳定性
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。您的内容已经简明扼要,字字珠玑,但信息却千丝万缕、错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容易造成观者的阅读压力,适得其反。正如我们都希望改变世界,希望给别人带去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露滋养。恰如其分地表达观点,往往事半功倍。当您的内容到达这个限度时,或许已经不纯粹作用于演示,极大可能运用于阅读领域;无论是传播观点、知识分享还是汇报工作,内容的详尽固然重要,但请一定注意信息框架的清晰,这样才能使内容层次分明,页面简洁易读。如果您的内容确实非常重要又难以精简,也请使用分段处理,对内容进行简单的梳理和提炼,这样会使逻辑框架相对清晰。为了能让您有更直观的字数感受,并进一步方便使用,我们设置了文本的最大限度,当您输入的文字到这里时,已濒临页面容纳内容的上限,若还有更多内容,请酌情缩小字号,但我们不建议您的文本字号小于14磅,请您务必注意。单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。您的内容已经简明扼要,字字珠玑,但信息却千丝万缕、错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容易造成观者的阅读压力,适得其反。正如我们都希望改变世界,希望给别人带去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露滋养。恰如其分地表达观点,往往事半功倍。当您的内容到达这个限度时,或许已经不纯粹作用于演示,极大可能运用于阅读领域;无论是传播观点、知识分享还是汇报工作,内容的详尽固然重要,但请一定注意信息框架的清晰,这样才能使内容层次分明,页面简洁易读。如果您的内容确实非常重要又难以精简,也请使用分段处理,对内容进行简单的梳理和提炼,这样会使逻辑框架相对清晰。为了能让您有更直观的字数感受,并进一步方便使用,我们设置了文本的最大限度,当您输入的文字到这里时,已濒临页面容纳内容的上限,若还有更多内容,请酌情缩小字号,但我们不建议您的文本字号小于14磅,请您务必注意。单击此处添加正文,

《数值分析》第7章 常微分方程的数值解法

《数值分析》第7章 常微分方程的数值解法

1.040818
0.4
1.056100
1.070320
0.5
1.090490
1.106531
7.2.2 隐式Euler公式
隐式Euler公式除了可以用上一小节中的方法来推导外,亦可以用差商近似
导数的方法来推导。
在 xn1点处列出式(7.1)中的常微分方程,得
y( xn1) f (xn1, y( xn1))
h(1 2
h)
xn
h 2
( xn
h
h(2 2
h) )
= 0.905yn 0.095xn 0.1
7.2.4 改进Euler公式
当n=0时, y1 0.905 y0 0.095x0 0.1 1.005其00余0结果见表7-4。由
表7-4可以看出,改进Euler公式与梯形公式的精度相当。
y(xn1) y(xn ) hf (xn , y(xn ))
(7.3)
用 yn 代替 ,得到下列递推公式
yn1 yn hf (xn , yn ) (n 0,1, 2,…)
(7.4)
由 y(x0 )=y0依次递推得到 y1, y2 ,…, yn ,…式(7.4)称为Euler公式。
7.2.1 欧拉法
例1 用Euler公式计算下列初值问题(取步长h=0.1):
y y x 1 (0 x 0.5)
y(0)
1
解:Euler公式的计算格式为
yn1 yn hf (xn , yn ) yn +0.(1 -yn xn +1) 0.9 yn 0.1xn 0.1
由 y(0) 1进行递推计算得:
xn
二阶Taylor公式yn 四阶Taylor公式yn
yn1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欧拉(Euler)公式当然很粗糙。
例1 用欧拉法解初值问题
y y xy 2 y (0) 1 (0 x 0.6)
取步长h=0.2 ,计算过程保留4位小数
解: h=0.2, f ( x, y) y xy 2 欧拉迭代格式 yi 1 yi hf ( xi , yi ) yi hyi hxi yi2
定义7.2 数值方法的局部截断误差为 O(h p1 ) ,则称这 种数值方法的阶数是P。步长(h<1) 越小,P越高, 则局 部截断误差越小,计算精度越高。欧拉公式的局部截
断误差为 O(h 2 ) , 欧拉方法仅为一阶方法。
两步欧拉公式比欧拉公式精度也是高一个数值
方法,设 yi y( xi ) , yi1 y( xi 1 ) 前两步准确,则两步 欧拉公式
对于初值问题
y f ( x, y ) y ( x0 ) y 0
的数值解法,首先要解决的问题就是如何对微分方 程进行离散化,建立求数值解的递推公式。递推公 式通常有两类,一类是计算yi+1时只用到xi+1, xi 和yi,
即前一步的值,因此有了初值以后就可以逐步往下
计算,此类方法称为单步法;其代表是龙格—库塔 法。另一类是计算yi+1时,除用到xi+1,xi和yi以外, 还要用到
yi 1 y( xi 1 ) 2hf ( xi , y( xi ))
把y(xi-1)在xi处展开成Taylor级数,即
y ( xi ) y ( xi 1 ) y ( xi ) y ( xi )(xi 1 xi ) ( xi 1 xi ) 2 O(h 3 ) 2!
y x y
2
2
这个一阶微分方程就不能用初等函数及其积 分来表达它的解。
再如,方程
y y y (0) 1
的解 y e x ,虽然有表可查,但对于表 上没有给出 e x 的值,仍需插值方法来 计算
从实际问题当中归纳出来的微分方程,通常主要依 靠数值解法来解决。本章主要讨论一阶常微分方程 初值问题
y y1 f ( x1 , y1 )(x x1 )
当 x x2 时,得
y2 y1 f ( x1 , y1 )(x2 x1 )
P1 P1 P0
Pi+1 Pn Pi Pi+1 Pi
y=y(x) Pn
x0
x1
xi
xi+1
xn
由此获得了P2的坐标。重复以上过程,就可获得一系 列的点:P1,P1,…,Pn。对已求得点 Pn ( xn , yn )
0.2 yi (4 xi yi ) (i 0,1,2)
当 k=0, x1=0.2时,已知x0=0,y0=1,有 y(0.2)y1=0.2×1(4-0×1)=0.8 当 k=1, x2=0.4时,已知x1 =0.2, y1 =0.8,有 y(0.4) y2 =0.2×0.8×(4-0.2×0.8)=0.6144 当 k=2, x3 =0.6时,已知x2 =0.4, y2 =0.6144,有 y(0.6) y3=0.2×0.6144×(4-0.4×0.6144)=0.4613
地向前推进,描述这类算法,要求给出用已知信息
yi , yi 1 , yi 2 ,, y0 计算 y i 1 的递推公式。建立
这类递推公式的基本方法是在这些节点上用数值积
分、数值微分、泰勒展开等离散化方法,对初值问 题
y f ( x, y ) y ( x0 ) y 0
中的导数 y 进行不同的离散化处理。
y y0 f ( x0 , y0 )(x x0 )
当x x1时,得
y1 y0 f ( x0 , y0 )(x1 x0 )
这样就获得了P1点的坐标。
P1 P1 P0
Pi+1 Pn y=y(x) Pi Pn Pi+1 Pi
x0
x1
xi
xi+1
xn
同样, 过点P1(x1,y1),作积分曲线y=y(x)的切线 交直线x=x2于P2点,切线 P P 的斜率 y( x1 ) = f ( x1 , y1 ) 1 2 直线方程为
y=y(x) Pn
x0
x1
xi
xi+1
xn
这样,从x0逐个算出 x1 , x2 , xn 对应的数值解
y1 , y 2 , y n
从图形上看,就获得了一条近似于曲线y=y(x) 的折线 P P P P 。 1 2 3 n
通常取 xi1 xi hi h (常数),则Euler法的计算格式
y ( xi 1 ) y ( xi ) y ( xi )(xi 1
h y ( xi ) hy ( xi ) y ( xi ) O(h 3 ) 2!
y ( xi ) xi ) ( xi 1 xi ) 2 O(h 3 ) 2! 2
由 yi 1 y( xi 1 ) 2hf ( xi , yi )
y , y ,, y
( n)
都是一次的,则称它是线性的,否则称为非线性的。
在高等数学中,对于常微分方程的求解,给出
了一些典型方程求解析解的基本方法,如可分离变
量法、常系数齐次线性方程的解法、常系数非齐次
线性方程的解法等。但能求解的常微分方程仍然是 有限的,大多数的常微分方程是不可能给出解析解。 譬如
7.2.2 梯形公式 为了提高精度,对方程 y f ( x, y) 的两端在区间上
( 7.4 )
xi , xi1 积分得,
y( xi 1 ) y( xi )
xi 1 xi
f x, y( x)dx
改用梯形方法计算其积分项,即

xi 1
xi
xi 1 xi f ( xi , y( xi )) f ( xi 1 , y( xi 1 )) f x, y ( x)dx 2
yi 1 yi hf ( xi , yi ) y 0 y ( x0 )
i=0,1,…,n ( 7.2 )
还可用数值微分、数值积分法和泰勒展开法推导
Euler格式。以数值积分为例进行推导。
将方程 y f ( x, y)的两端在区间 xi , xi 1 上积分得,
以 y ( xn ) = f ( xn , yn ) 为斜率作直线 y yn f (xn , yn )(x xn )
当 x xn1 时,得 yn1 yn f ( xn , yn )(x x1 xn ) 取 y( xn ) y n
P1 P1 P0
Pi+1 Pn Pi Pi+1 Pi
h y i f ( xi , y i ) f ( xi 1 , y i 1 ) ( 7.5 ) 2
(7.5)式的右端含有未知的yi+1,它是一个关于
yi+1的函数方程,这类数值方法称为隐式方法。相
反地,欧拉法是关于yi+1的一个直接的计算公式,
这类数值方法称为显式方法。
欧拉法的局部截断误差 衡量求解公式好坏的一个主要标准是求解公式的 精度, 因此引入局部截断误差和阶数的概念。

xi 1
xi
y dx
xi 1
xi
f ( x, y)dx
xi 1 xi
y( xi 1 ) y( xi )
xi 1
xi
f ( x, y)dx y( xi )
f x, y( x)dx
(7.3)
选择不同的计算方法计算上式的积分项

xi 1
xi
f x y2 都成立,则方程( 7.1 )的解 y y (x) 在a, b上存在且唯一。
数值方法的基本思想 对常微分方程初值问题(7.1)式的数值解法,就 是要算出精确解y(x)在区间a,b上的一系列离散节
点 a x0 x1 xn1 xn b 处的函数值 y( x0 ), y( x1 ),, y( xn ) 的近似值 y 0 , y1 ,, y n 。相邻两个节点的间距 h xi 1 xi 称为步长,步
第七章 常微分方程的数值解法
7.1 引言
包含自变量、未知函数及未知函数的导数或微
分的方程称为微分方程。在微分方程中, 自变量的 个数只有一个, 称为常微分方程.。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分
方程的阶数。如果未知函数y及其各阶导数
的解y=y(x)代表通过点 ( x0 , y0 ) 的一条称之为 微分方程的积分曲线。积分曲线上每一点 ( x, y ) 的切线的斜率 y (x) 等于函数 f ( x, y) 在 这点的值。
Euler法的求解过程是:从初 始点P0(即点(x0,y0))出发, 作积分曲线y=y(x)在P0点上
P0
定义7.1 在yi准确的前提下, 即 yi y( xi ) 时, 用数值
方法计算yi+1的误差 Ri y( xi 1 ) yi 1 , 称为该数值方法
计算时yi+1的局部截断误差。
yi 1 y( xi ) h f ( xi , y( xi )) y( xi ) hy ( xi )
h2 y( xi ) hy ( xi ) y ( xi ) O(h 3 ) 2hf ( xi , yi ) 2! h2 (7.8) y ( xi ) hy ( xi ) y ( xi ) O(h 3 ) 2!
h y i f ( xi , y i ) f ( xi 1 , y i 1 ) 2
代入(7.4)式,并用近似代替式中即可得到梯形公式
y i 1
( 7.5 )
由于数值积分的梯形公式比矩形公式的精度高, 因此梯形公式(7.5)比欧拉公式( 7.2 )的精度高 一个数值方法。
相关文档
最新文档