第9章 常微分方程初值问题数值解法
第九章_常微分方程初值问题的数值解法
向与已给向量场在该点的方向一致。
而欧拉递推公式 (9.7) 所定义的点 ( xi , yi ) 可以看作 是通过准确初始点 ( x0 , y0 ) 的曲线多边形的顶点,而 每根连线的方向由它左边终点的向量场决定。
y
y y ( x)
o
x0
x1
x2
图9.2
xn
x
由于欧拉方法是用一条折线近似地代替解 y ( x) , 所以欧拉方法也叫做折线法。
(9.23) , n 1
称为 r 阶泰勒( Taylor )方法。当 r 1 时就是欧拉方法的 公式,现取 r 2 ,则有
y0 y( x0 ) 2 h yi1 yi hf ( xi , yi ) ( f x( xi , yi ) f ( xi , yi ) f y( xi , yi )) i 0,1,2, , n 1 2
令
i1 yi1 yi*1
(9.17)
* i 1
* * y y 其中, i 1 是 yi 1 的近似值,若 i 1 不大,则 i 1 可以
作为 y( xi1 ) 的近似值, 若 i 1 很大,y 就不能用。
定义用一个数值方法,求解微分方程
y y
其中, 是一个复常数, 对给定步长 h 0 , 在计算 yi 时 引入了误差 i 。 若这个误差在计算后面的 yi k (k 1, 2, ) 中所带来的误差按绝对值均不增加, 就说这个数值方 法对于这个步长 h 和复数 是绝对稳定的。
(9.26)
(9.26)式中的 yi 1 可以用欧拉方法得到,即得
(0) y i 1 yi hf ( xi , yi ) ( k 1) (k ) y y hf ( x , y i i 1 i 1 ) i 1
常微分方程初值问题数值解法
数值解法的必要性
实际应用需求
许多实际问题需要求解常微分方程初值问题,如物理、 化学、生物、工程等领域。
解析解的局限性
对于复杂问题,解析解难以求得或不存在,因此需要 采用数值方法近似求解。
数值解法的优势
未来发展的方向与挑战
高精度算法
研究和发展更高精度的算法,以提高数值解的准确性和稳定性。
并行计算
利用并行计算技术,提高计算效率,处理大规模问题。
自适应方法
研究自适应算法,根据问题特性自动调整计算精度和步长。
计算机技术的发展对数值解法的影响
1 2
硬件升级
计算机硬件的升级为数值解法提供了更强大的计 算能力。
它首先使用预估方法(如欧拉方法)得到一个 初步解,然后使用校正方法(如龙格-库塔方法) 对初步解进行修正,以提高精度。
预估校正方法的优点是精度较高,且计算量相 对较小,适用于各种复杂问题。
步长与误差控制
01
在离散化过程中,步长是一个重要的参数,它决定 了离散化的精度和计算量。
02
误差控制是数值逼近的一个重要环节,它通过设定 误差阈值来控制计算的精度和稳定性。
能够给出近似解的近似值,方便快捷,适用范围广。
数值解法的历史与发展
早期发展
早在17世纪,科学家就开始尝 试用数值方法求解常微分方程。
重要进展
随着计算机技术的发展,数值 解法在20世纪取得了重要进展, 如欧拉法、龙格-库塔法等。
当前研究热点
目前,常微分方程初值问题的 数值解法仍有许多研究热点和 挑战,如高精度算法、并行计
软件优化
软件技术的发展为数值解法提供了更多的优化手 段和工具。
数值分析 第9章 常微分方程初值问题数值解法
9 .2 .2 梯形方法/* trapezoid formula */— 显、隐式两种算法的平均 为得到比欧拉法精度高的计算公式, 在等式( 2.4) 右端积分 中若用梯形求积公式近似, 并用yn 代替y ( xn ) , yn+1 代替y ( xn+1 ) ,则得
h yn 1 yn [ f ( xn , yn ) f ( xn 1 , yn 1 )], 2
yn 1 yn f ( xn , yn ), xn 1 xn
即 yn+1 = yn + hf ( xn , yn ) . ( 2 .1)
这就是著名的欧拉( Euler ) 公式.
• 若初值y0 已知, 则依公式( 2.1)可逐步算出
• y1 = y0 + hf ( x0 , y0 ) ,
为了分析迭代过程的收敛性, 将( 2. 7) 式与(2. 8 )式相减, 得
h ( k 1) (k ) yn 1 yn [ f ( x , y ) f ( x , y 1 n 1 n 1 n 1 n 1 )] 2
于是有
| yn 1 y
( k 1) n 1
hL (k ) | | yn 1 yn 1 |, 2
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 |, y1, y2 R,
定理1 设f在区域D={(x,y)|a≤x ≤b,y∈R}上连续, 关于y满足利普希茨条件,则对任意x0 ∈[a,b], y0 ∈R,常微分方程初值问题(1.1)式和(1.2)式当x ∈[a,b]时存在唯一的连续可微解y(x). 定理2 设f在区域D上连续,且关于y满足利 普希茨条件,设初值问题
1 2 1 2 dy x ydy xdx y x c 2 2 dx y y (0) 2 y2 x2 4
第9章 常微分方程初值问题数值解法
数值分析
第11页
ba , xn a n h 将求解区间[a, b]分成 N 等分, 令 h N (n=0,1,…, N).
9.2 简单的数值方法
1. (欧拉(Euler)公式)若在xn点列出方程式
y( xn ) f ( xn , y( xn ))
将y'(xn)表示为数值微分方程
如果存在实数L>0,使得 y1 , y2 R
f ( x, y1 ) f ( x, y2 ) L y1 y2 .
则称 f 关于 y 满足利普希茨(Lipschitz)条件, L 称为 y 的利普希茨常数(简称Lips.常数).
上页
下页
数值分析
第4页
定理1 (解的存在唯一性定理)
设 f 在区域
L x x0
s1 s2 .
定理表明解对初值依赖的敏感性, 它与右端函数 f 有 关, 当f 的Lips.常数 L 较小时, 解对初值和右端函数相 对不敏感, 可视为好条件. 若L较大则可认为坏条件, 即病态问题.
上页 下页
数值分析
第6页
如果右端函数 f 可导, 由中值定理有
f ( x , ) f ( x , y1 ) f ( x , y2 ) y1 y2 , 在y1 , y2 之间. y
算稳定性等问题.
上页 下页
数值分析
第10页
9.2 简单的数值方法
9.2.1 欧拉法与后退欧拉法 在xOy平面上,微分方程的解y=f(x)称作它的积分 曲线, 积分曲线上一点(x, y)的切线斜率等于函数f(x, y) 的值. 如果按f(x, y)在xOy平面上建立一个方向场,那 么积分曲线上每一点的切线方向均与方向场在该点 的方向相一致. 基于上述几何解释, 我们从初始点P0(x0, y0)出发, 先依方向场在该点的方向推进到x=x1上一点P1, 然后 再从P1点依方向场在该点的方向推进到 x=x2 上一点 P2 , 循环前进做出一条折线P0 P1 P2.
第9章 常微分方程初值问题数值解法
数值分析
第9章 常微分方程初值问题数值解法
《常微分方程》中介绍的微分方程主要有:
(1)变量可分离的方程 (2)一阶线性微分方程(贝努利方程) (3)可降阶的一类高阶方程 (4)二阶常系数齐次微分方程 (5)二阶常系数非齐次微分方程 (6)全微分方程 本章主要介绍一阶常微分方程初值问题的数值解法。
进一步: 令
y n1 y n
xn 1 xn
y n 1 y( x n 1 ) , y n y( x n )
f ( x , y( x ))dx h f ( x n , y n )
宽
9
高
实际上是矩形法
数值分析
第9章 常微分方程初值问题数值解法
(3)
用Taylor多项式近似并可估计误差
解决方法:有的可化为显格式,但有的不行 18
数值分析
第9章 常微分方程初值问题数值解法
与Euler法结合,形成迭代算法 ,对n 0,2, 1,
( yn0 )1 yn hf x n , yn ( k 1) h ( yn1 yn f x n , yn f x n1 , ynk )1 2
7
数值分析
第9章 常微分方程初值问题数值解法
建立数值解法的常用方法
建立微分方程数值解法,首先要将微分方程离散 化. 一般采用以下几种方法: (1) 用差商近似导数
dy yx yx x x dx x y
n 1 n n 1 n
n
,
n
进一步: 令
yn1 y( xn1 ) , yn y( xn )
由 x0 , y0 出发取解曲线 y y x 的切线(存在!),则斜率
第9章 常微分方程初值问题数值解法
oa
b
a f ( x)dx (b a) f (b)
中矩形公式
b
ab
a f ( x)dx (b a) f ( 2 )
计算方法
梯形公式
bx
右矩形公式 中矩形公式 左矩形公式
§ 欧拉方法几何意义
y y y(x)
y0 y1 y2 0 x0 x1 x2
计算方法
x
§ 隐式欧拉方法
➢隐式欧拉法 /* implicit Euler method */
初 值 问 题 的 解 必 存 在 且唯 一 。
计算方法
§9.1 引言
三. 数值解法含义
所谓数值解法, 就是设法将常微分方程离散化, 建 立差分方程, 给出解在一些离散点上的近似值。
微分方程的数值解: 设方程问题的解y(x)的存在区 间是[a,b], 令a= x0< x1<…< xn =b, 其中hk=xk+1-xk, 如是等距节点h=(b-a)/n, h称为步长。
yi1 yi1 2h f ( xi , yi ) i 1, ... , n 1
计算方法
预估-校正法
三. 预估 — 校正法
/* predictor-corrector method */
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单
稳定性最好
精度提高
精度低
精度低, 计算量大
计算量大
精度提高, 显式
在x0 x X上的数值解法。
四. 误差估计、收敛性
和稳定性
计算方法
§9.2 简单的数值方法与基本概念
一. 欧拉(Euler)格式
设 节 点 为xi a ih (i 0,1,2 , n) 方 法 一 :Taylor展 开 法
专业计算方法第九章-常微分方程初值问题的数值解法-2012.2
第九章常微分方程初值问题的数值解法§1 相关知识§2 几种简单的数值方法§3 Runge–Kutta方法§4 单步法的进一步讨论§5 线性多步法西北工业大学理学院欧阳洁1上述定理称为一阶常微分方程初值问题解的适定性(存在性、惟一性与稳定性)定理。
对所讨论的一阶常微分方程初值问题,本章假设该问题是适定的,即解析解y(x)在区间[a,b]上是存在、惟一,且具有充分的光滑度。
因此f(x,y(x))也充分光滑。
西北工业大学理学院欧阳洁3西北工业大学理学院欧阳洁5常微分方程初值问题的数值解法分为:①单(一)步法:计算时,只用到和,即前一步的值。
1+n y n y n n x x ,1+显式单步法的一般形式为②多步法:计算时,除用到和以外,还用到和,即用到前k 步的值。
p n x −)1;1,2,1(>−=−k k p y p n L 1+n y n y n n x x ,1+对单步法与多步法,有显式与隐式方法之分。
显式、隐式多步法的一般形式类似。
隐式单步法的一般形式为),,(1h y x h y y n n n n ϕ+=+),,,,(111h y x y x h y y n n n n n n ++++=ϕ数值解法建立的过程:通过一定的离散化方法,将连续性问题的求解转化为有限个离散节点上解析解近似值的求解。
常用的离散化方法:Taylor 展开法;差商直接代替微商;数值积分法。
西北工业大学理学院欧阳洁16设一般的单步法为:显式公式隐式公式定义为某一数值方法在处的整体截断误差。
111()n n n e y x y +++=−1n x +五单步法的局部截断误差和阶整体截断误差不仅与这一步的计算有关,还依赖于前面各步的计算。
1+n x 011,,,,x x x x n n L −下面着重分析计算中某一步的误差(局部截断误差),后面将对显式单步法,给出整体截断误差与局部截断误差之间的关系。
常微分方程初值问题的数值解法
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。
•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。
注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
数值分析李庆扬第9章常微分方程初值问题数值解法讲义.
② 由 x0 , y0 f x0 , y0 切线 P0P1 ,
切线与 x x1 交点 P1 : y1 的近似值 ;
③ 再由 x1 , y1 向前推进到 P2 , 得到折线 P0P1 Pn ,近似 y yx 。
7
2021年5月4日
《数值分析》 黄龙主讲
h
yxn
yxn1
yn1 yn f
h
xn1 , yn1
yn1 yn h f xn1 , yn1
——后退的欧拉公式(隐式)
注意:① 显式计算方便,隐式稳定性较好;
② 上式隐含 yn1 ? ,采用迭代法求解。
12
2021年5月4日
《数值分析》 黄龙主讲来自欧拉公式的另一种理解:
将常微分方程 y f x, y 改写 dy f t , ytdt
“步进式”:顺着节点排列顺序,一步一步地向前推进。
步长:常用等步长 hn xn1 xn ,节点为 xn x0 nh 单步法:计算 yn1 时,只用到前一点的值 yn k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk1
5
2021年5月4日
《数值分析》 黄龙主讲
对微分方程从 xn 到 xn1 积分
y xn1 yxn
xn1 f t , yt dt
xn
由积分左矩形公式得
xn1 xn
f
t ,
yt dt
hf
xn ,
yxn
例如:
lim
h0
yxn1
h
yxn
yxn
yxn1
h
yxn
yxn
f xn , yxn
9 常微分方程初值问题数值解法
即当yn=y(xn)时,计算一步,即有
y(xn1) yn1 y(xn1) [ y xn h(xn, y xn , h)] Tn1.
所以,局部截断误差可理解为用方法(2.10)计算 一步的误差,也即公式(2.10)中用准确解y(xn)代替数 值解产生的公式误差. 根据定义, 显然欧拉法的局部 截断误差为
h2 2
y( xn ).
上页 下页
同样对梯形法(2.7)有
Tn1
y( xn1 )
y(xn)
h 2
[
y(
xn
)
y( xn1 )]
hy( xn )
h2 2
y( xn )
h3 3!
y( xn )
h 2
[
y(
xn
)
y( xn ) hy( xn )
h2 2
y( xn )] O(h4 )
h3 12
果精度不高.
上页 下页
显式与隐式两类方法各有特点:隐式方法有利 于数值稳定性,显式算法有利于计算.
隐式方程通常用迭代法求解,而迭代过程的实质 是逐步显式化,一开始可以借用显式公式给出迭代初 值:
上页 下页
用显式欧拉公式
y(0) n1
yn
hf
( xn ,
yn )
给出迭代初值
y(0) n1
,用它代入隐式(2.5)式的右端,使
此处数值解法, 就是寻求解y(x)在一系列离散节点
x1 x2 xn xn1
上的近似值 y1,y2,, yn, yn+1,. 相邻两个节点的间距
hn=xn+1-xn称为步长. 今后如不特别说明,总是假定
07_常微分方程初值问题的数值解法.doc
第九章 常微分方程初值问题的数值解法第一部分 内容提要一、数值解的一般概念常微分方程初值问题00'()(,)()y x f x y y x y =⎧⎨=⎩的数值解是指通过一定的近似方法得出准确解()y y x =在一列离散点012,,,,,n x x x x 上的近似值012,,,,,n y y y y 。
数值解的特征是步进式,即()y x 在1n x +点的近似值1n y +是由1,,n n x x -等若干点处的近似值1,,n n y y -的信息给出的递推公式。
若1n y +依赖于前面k 步的值11,,,n n n k y y y --+,则称为k 步法;1k =称为单步法。
利用()y x 在11,,,n n n k x x x --+的精确解11(),(),,()n n n k y x y x y x --+借助某种算法计算出1n y +,则称11()n n y x y ++-为该方法的局部截断误差。
如果一个算法的局部截断误差是1()p O h +,则称该方法是p 阶的;而利用数值解11,,,n n n k y y y --+得到的1n y +与微分方程的精确解之差11()n n y x y ++-称为整体截断误差,即是该数值方法的误差。
对于固定的0x x >,取0x x h n-=,用某种算法得到n y ,如有lim ()n h y x y →-=0,则称该方法是收敛的。
注意,因x 是固定的,随着0h →,数值解的步数n →∞。
在实际计算时由于舍入误差不可避免,实际得到数值解是n y ,稳定性即研究n n y y -是否随着计算步骤n 的增加而增加。
通常所提的稳定性是通过模型方程(0)y y λλ'=<来讨论的。
若当某一步n y 有舍入误差时,在以后的计算中误差不会逐步扩大,则称这种稳定性为绝对稳定性。
二、简单单步法及其收敛性、稳定性Euler 法1(,)n n n n y y hf x y +=+的局部截断误差为2()O h ,整体截断误差为()O h ,即一阶收敛。
07_常微分方程初值问题的数值解法
第九章 常微分方程初值问题的数值解法第一部分 内容提要一、数值解的一般概念常微分方程初值问题00'()(,)()y x f x y y x y =⎧⎨=⎩的数值解是指通过一定的近似方法得出准确解()y y x =在一列离散点012,,,,,n x x x x 上的近似值012,,,,,n y y y y 。
数值解的特征是步进式,即()y x 在1n x +点的近似值1n y +是由1,,n n x x -等若干点处的近似值1,,n n y y -的信息给出的递推公式。
若1n y +依赖于前面k 步的值11,,,n n n k y y y --+,则称为k 步法;1k =称为单步法。
利用()y x 在11,,,n n n k x x x --+的精确解11(),(),,()n n n k y x y x y x --+借助某种算法计算出1n y +,则称11()n n y x y ++-为该方法的局部截断误差。
如果一个算法的局部截断误差是1()p O h +,则称该方法是p 阶的;而利用数值解11,,,n n n k y y y --+得到的1n y +与微分方程的精确解之差11()n n y x y ++-称为整体截断误差,即是该数值方法的误差。
对于固定的0x x >,取0x x h n-=,用某种算法得到n y ,如有lim ()n h y x y →-=0,则称该方法是收敛的。
注意,因x 是固定的,随着0h →,数值解的步数n →∞。
在实际计算时由于舍入误差不可避免,实际得到数值解是n y ,稳定性即研究n n y y -是否随着计算步骤n 的增加而增加。
通常所提的稳定性是通过模型方程(0)y y λλ'=<来讨论的。
若当某一步n y 有舍入误差时,在以后的计算中误差不会逐步扩大,则称这种稳定性为绝对稳定性。
二、简单单步法及其收敛性、稳定性Euler 法1(,)n n n n y y hf x y +=+的局部截断误差为2()O h ,整体截断误差为()O h ,即一阶收敛。
第九章+常微分方程初值问题数值解法
第九章 常微分方程初值问题的数值解法在自然科学的工程技术的许多领域中,常会遇到常微分方程初值问题,但这种问题大多数情况下不存在初等形式的解析解,只能用近似方法来求解。
近似解法主要有两类:一类叫做近似解析方法,它能给出解得近似表达式,例如熟知的级数解法和逐次逼近法等;另一类近似解法称为数值解法,它可以给出解在一些离散点上的近似值。
数值方法便于电子计算机求解微分方程。
本章讨论初值问题常用的数值解法,并介绍有关的基本理论。
假设给定一阶常微分方程的初值问题:(,),()dyf x y a x b dx y a a⎧=≤≤⎪⎨⎪=⎩ (9.1)(9.2) 其中f 为x, y 的已知函数,α为给定的初始值。
由微分方程的理论可知,如果 f (x,y )在区域a x b ≤≤,y -∞<<+∞内连续,且关于y 满足李普希兹(Lipschitz)条件,即存在常数L ,使|(,)(,)||f x y f x y L y y -≤-对所有的a x b ≤≤及任何y ,y 均成立,则初值问题(9.1),(9.2)有连续可微的解y (x )存在且唯一。
所谓初值问题的数值解,则是问题的解y (x )在一系列点01212...N N a x x x x x b --=<<<<<=处的值()n y x 的近似值n y (n =0,1,…,N )。
这里相邻两个节点之间的距离1n n n h x x -=-通常称为步长,通常将步长n h 取为常数h 。
§9.1 欧拉方法与改进的欧拉方法欧拉(Euler)方法是最简单的数值方法,由于它的精确程度较差,已不常用于实际计算。
但构造这个方法的基本原理,对于构造一般的数值方法具有普遍意义,因此首先对它进行讨论。
9.1-1 欧拉方法的构造将方程(9.1)中点n x 处的导数()n y x '用差商近似地表示为1()()()n n n y x y x y x h+-'≈即在该点有近似等式1()()(,())n n n n y x y x f x y x h+-≈用近似值n y 代替()n y x ,由上式可以导出其近似值满足的差分方程:1(,()),0,1,...,1n n n n y y hf x y x n N +=+=- (9.3)(9.3)式称为欧拉方法的计算公式或称为欧拉公式。
9、常微分方程初值问题数值解法
( k +1) yn +1
xn +1 ∫xn
− yn +1 |≤
hL 2
|
(k ) yn +1
− yn +1 |,
( 只要 hL < 1,则( 2.8)的ynk +1)收敛到(2.7)的yn +1. +1 2
三、单步法的局部截断误差与阶
一阶常微分方程初值问题(1.1)(1.2)的单步法的一般形式 yn +1 = yn + hϕ ( xn , yn , yn +1, h).
clear x=0,yn=1 %初始化 for n=1:10 yp=yn+0.1*(yn-2*x/yn); %预测 x=x+0.1; yc=yn+0.1*(yp-2*x/yp) ; yn=(yp+yc)/2 %校正 end
( 2.2)
作业: 作业:P381, 1, 2(1).
龙格—库塔 库塔(Runge-Kutta)法 §3 龙格 库塔 法
进一步 y ( xn +1 ) = y ( xn ) + ∫
xn +1 xn
f ( x, y ( x))dx,
(Байду номын сангаас.3)
∫
⇒ 其中
xn +1 xn
f ( x, y ( x))dx ≈ h ∑ ci f ( xn + λi h, y ( xn + λi h)).
yn +1 = yn + hϕ ( xn , yn , h),
i =1
r
(3.4) (3.5) 欧拉法r = 1, p = 1.改进
第9章常微分方程初值问题数值解法
0 . 2 y ( 4 x y ) ( i 0 , 1 , 2 ) i i i
当 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,有 2019/3/10 y(0.6) y3=0.2×0.6144×(4-0.4×0.6144)=0.4613 15
y y f ( x , y )( x x ) 1 1 1 1
10
当 x x2 时,得
2019/3/10
y y f ( x , y )( x x ) 2 1 1 1 2 1
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
y=y(x) Pn
x0
x1
xi
xi+1
xn
y f ( x, y) y( x0 ) y0
( 9.1 )
在区间a ≤ x ≤ b上的数值解法。 可以证明,如果函数在带形区域 R:{ a≤x≤b, -∞<y<∞}内连续,且关于y满足李普希兹
(Lipschitz)条件,即存在常数 L(它与x,y无关)使
f ( x , y ) f ( x , y ) L y y 1 2 1 2
y (x 取 n) y n 2019/3/10
11
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
y=y(x) Pn
x0
x1
xi
xi+1
生物数学:第九章 常微分方程初值问题
➢对于一般计算,经典R-K公式的精度足够。由于龙格-库塔 法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。 对于光滑性不太好的解,最好采用低阶算法而将步长h 取小。
方程的稳定性
例:考察初值在区间[0,
0.5]上的解。
y(0) 1
分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。
欧拉公式的误差分析
➢ 若设第i步及其以前的计算无误差, 即 yi y(ti) 则第i+1步的误差作局部截断误差。
y(ti1)
yi
(ti 1
ti )
dy dt
ti
1 2
(t i 1
ti ) 2
d2 y dt2
ti
yi
hf
(ti , yi )
1 h2 2
f
(ti, y i )
(9 17)
yi1
➢ 最常用的为 ode23和ode45这两个函数, 在MATLAB中,分别与二三阶、四五阶 龙格-库塔公式相对应。
MATLAB求解
➢ ode23函数的调用格式为:
[T,Y]=ode23(F,TSPAN,Y0,options) 其中F:定义此微分方程的形式y=F(t,y);函数
F(t,y)应当返回一列向量
| y(xi)-yi|
0
1.00000
1.00000
0
0.2 1.01000
1.01873
0.00873
0.4 1.05610
1.07032
0.01422
0.6 1.13144
1.14881
0.01737
0.8 1.23046
1.24932
0.01886
1.0 1.34867
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Euler法的求解过程是:从初 始点P0(即点(x0,y0))出发, 作积分曲线 y=y(x) 在P0点上
P0 P1 P1
Pi+1 Pn y=y(x) Pi Pn Pi Pi+1
切线 P0 P1 (其斜率为 y( x0 ) f ( x0 , y0 ) ),与x=x1直线
直线方程为
y y1 f ( x1 , y1 )( x x1 )
当 x x2 时,得 y2 y1 f ( x1 , y1 )( x2 x1 )
2016/11/19
y2 y1 hf ( x1 , y1 )
16
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
yk 1 0.2 yk (4 xk yk ) 2016/11/19 y0 1
( k 0,1,2)
20
y y xy2 例9.1 用欧拉法解初值问题 , (0 x 0.6) y ( 0) 1
取步长 h=0.2 ,计算过程保留4位小数。 解:
常系数齐次线性方程的解法、常系数非齐次线性方程
的解法等。但能求解析解的方程是有限的,大多数的
常微分方程不能给出解析解。
2 2 y x y
譬如:
这个一阶微分方程就不能用初等函数来表达 它的解。
2016/11/19 3
再如,方程
y y y(0) 1
虽然有解 y e x ,仍需插值方法来计算各点的值
yk 1 yk hf ( xk , yk )
Euler 法的计算格式为:
2016/11/19
10
Euler 格式用泰勒展开方法得到。
微分方程 y f ( x, y ),
将 y( xk 1 ) 在节点 xk 处 Taylor展开
h2 y( xk 1 ) y( xk h) y( xk ) hy( xk ) y( ) 2 h2 略去 h 的高次项 y( ) 2 y( xk 1 ) y( xk ) hy( xk )
y( xi 1 ) y( xi )
xi
f ( x, y)dx
xi
f [ x, y( x )]dx (9.3)
选择不同的计算方法计算上式的积分项 就会得到不同的计算公式。
2016/11/19
xi 1
xi
f [ x, y( x )]dx
12
用左矩形方法计算积分项
y( xi 1 ) y( xi )
2016/11/19
4
从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。本章主要讨论一阶常微分 方程初值问题
y f ( x , y ) y ( x 0 ) y0 在区间 a ≤ x ≤ b 上的数值解法。
( 9.1 )
可以证明,如果函数在带形区域 R:{ a≤x≤b,
yi 1 yi hf ( xi , yi ) y0 y ( x 0 )
2016/11/19
i 0,1, , n 1
(9.2)
19
y y xy2 例9.1 用欧拉法解初值问题 , (0 x 0.6) y ( 0) 1
取步长 h=0.2 ,计算过程保留4位小数 解:
2016/11/19 这样就获得了 P1点的坐标: y1 y0 f ( x0 , y0 )h 15
P1 P0 P1
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点,切线 P1 P2 的斜率 y( x1 ) f ( x1 , y1 )
xi 1
xi
f [ x, y( x)]dx (9.3)
xi 1
xi
f [ x, y( x)]dx ( xi 1 xi ) f [ xi , y( xi )]
代入(9.3)式,并用 yi近似代替式中 y(xi)即可得 到向前欧拉(Euler)公式
yi 1 yi hf ( xi , yi )
的数值解法,首先要解决的问题就是如何对微分方 程中的导数进行离散化,建立求数值解的递推公式。 递推公式通常有两类,一类是计算yi+1时只用到xi+1, xi
和yi,即前一步的值,因此有了初值以后就可以逐步
往下计算,此类方法称为单步法;其代表是龙格— 库塔法。另一类是计算yi+1时,除用到xi+1,xi和yi以 外,还要用到
y=y(x) Pn
x0
x1
xi
xi+1
xn
由此获得了P2的坐标。重复以上过程,就可获得一系 列的点: P1 , P2 ,, Pn 。对已求得点 Pk ( xk , yk ) 以 y( xk ) f ( xk , yk ) 为斜率作直线 y yk f ( xk , yk )( x xk ) 当 x x k 1 时 ,得 取
y( x k 1 ) y( x k ) y ( x k ) h y( x k 1 ) y( x k ) f ( x k , yk ) h
yk 1 yk hf ( xk , yk )
2016/11/19
此公式称为欧拉公式
9
y f ( x , y ) 微分方程 y0 y ( x 0 ) 欧拉公式
2016/11/19
yk 1 yk f ( xk , yk )( xk 1 xk )
17
y( xk 1 ) yk 1 , k 0,1,, n 1.
P1 P0 P1
Pi+1 Pn Pi Pi+1 Pi
y=y(x) Pn
x0
x1
xi
xi+1
xn
这样,从x0 出发逐个算出 x1 , x2 , xn对应的数值解
xi p , yi p ( p 1,2 ,, k ) ,即前。
2016/11/19 8
§9.2 简单的数值方法与基本概念
一阶微分方程的数值解可用数值微分、数值积
分和泰勒展开等方法得到。
微分方程 y f ( x, y )
节点xk 的导数用差商代替
长可以相等,也可以不等。本章总是假定 h 为定数, 称为定步长,这时节点可表示为
xi x0 ih, i 1,2,, n 数值解法需要把连续性的问题加以离散化,从
而求出离散节点的数值解。 2016/11/19
6
对常微分方程数值解法的基本出发点就是离散 化。其数值解法有两个基本特点,[1]它们都采用 “步进式”,即求解过程顺着节点排列的次序一步
一步地向前推进,描述这类算法,要求给出用已知
y0 , y2 ,, yi 信息
计算 的递推公式。[2]建 yi 1 立这类递推公式的基本方法是在这些节点上用数值 积分、数值微分、泰勒展开等方法,对初值问题中 的
y f ( x , y ) y( x0 ) y0
xk 1 xk
5
数值方法的基本思想 对常微分方程初值问题(9.1)式的数值解法,就 是要算出精确解 y(x)在区间a,b上的一系列离散节
处的函数值 a x0 x1 xn1 xn b y( x0 ), y( x1 ), , y( xn ) 的近似值 y0 , y1 , , yn . 相邻两个节点的间距 hi xi 1 xi 称为步长,步 点
y1 , y2 , yn
从图形上看,就获得了一条近似于曲线y=y(x) 的折线 P 1P 2P 3 P n 。
2016/11/19 18
y f ( x , y ) 微分方程的初值问题 y( x0 ) y0
通常取 xi 1 xi hi h (常数),则 用折线近似于曲线得到的计算公式称为欧拉公式 Euler 法的计算格式为:
h 0.2, xi x0 ih
x0 0, x1 0.2, x2 0.4, x3 0.6, f ( x, y ) y xy 2
计算 y(0.2), y(0.4), y(0.6) 的近似值
欧拉迭代格式
2 yk 1 yk hf ( xk , yk ) yk 0.2( yk xk yk )
ydx
xk 1 xk xk 1 xk
f ( x, y )dx f ( x, y )dx
y
导数 2016/11/19
yk 1 yk
yk 1 yk f ( x k , yk ) 进行不同的离散化处理。 7 x k 1 xk
对于初值问题
y f ( x , y ) y( x0 ) y0
x0
x1
xi
xi+1
xn
相交于P1点(即点(x1,y1),得到y1作为y(x1)的近似值, 如上图所示。过点(x0,y0),以f(x0,y0)为斜率的切线 方程为
y y0 f ( x0 , y0 )( x x0 )
当 x x1 时,得 y1 y0 f ( x0 , y0 )( x1 x0 )
yk 1 yk hf ( xk , yk )
2016/11/19 11
Euler 格式用数值积分方法得到。 将方程 y f ( x , y )的两端在区间xi , xi 1 上积分得,
xi 1
xi
ydx
xi 1
xi 1
xi
f ( x, y )dx
xi 1
-∞<y<∞}内连续,且关于 y 满足李普希兹
(Lipschitz)条件,即存在常数 L(它与x,y无关)使