数值分析71常微分方程初值问题数值解引言

合集下载

第9章常微分方程初值问题数值解法

第9章常微分方程初值问题数值解法

h2 y(n )
2!
略去 h2项: y( xn1) y( xn ) hf ( xn1, y( xn1))
然后用 yn代替 y( xn ) ,即得
yn1 yn hf ( xn1, yn1) n 0,1, 2, , N 1
称上述公式为向后Euler 公式。
向后Euler 公式为隐式格式,需要利用迭代法求解
dx
x
,
0
y
0
13
数值分析
第9章 常微分方程初值问题数值解法
等步长为h,则 x1 x0 h,可由切线算出y1 : y1 y0 hf(x0 , y0)
逐步计算出y y( x) 在 xn1点的值 : yn1 yn hf(xn , yn) n 0,1,2,
D {a x b; y }
且关于 y满足Lipschitz条件,即存在常数 L, 使0
| f ( x, y1) f ( x, y2 ) | L | y1 y2 |;x, y D
则初值问题 (存) 在唯一解,且解是连续可微的。
Def 所谓数值解是指:在解的存在区间上取一系列点
x0 x1 x2 ... xn ...
数值分析
Numerical Analysis
李小林
重庆师范大学数学学院
数值分析
第9章 常微分方程初值问题数值解法
第九章 常微分方程初值问题数值解法
/*Numerical Method for Ordinary Differential Equations*/
许多实际问题的数学模型是微分方程或微分方 程的初值问题,如物体运动,电路震荡,化学反映及 生物群体的变化等。
(1) 用差商近似导数
dy
y xn1 y xn

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

数值分析常微分方程数值解法
7
第8页/共105页
➢ 数值积分方法(Euler公式)
设将方程 y=f (x, y)的两端从 xn 到xn+1 求积分, 得
y( xn1) y( xn )
xn1 f ( x, y( x))dx :
xn
xn1 F ( x)dx
xn
用不同的数值积分方法近似上式右端积分, 可以得到计算 y(xn+1)的不同的差分格 式.
h2 2
y''( )
Rn1
:
y( xn1)
yn1
h2 2
y''( )
h2 2
y''( xn ) O(h3 ).
局部截断误差主项
19
第20页/共105页
➢ 向后Euler法的局部截断误差
向后Euler法的计算公式
yn1 yn hf ( xn1, yn1 ), n 0, 1, 2,
定义其局部截断误差为
y 计算 的n递1 推公式,此类计算格式统称为差分格式.
3
第4页/共105页
数值求解一阶常微分方程初值问题
y' f ( x, y), a x b,
y(a)
y0
难点: 如何离散 y ?
➢ 常见离散方法
差商近似导数 数值积分方法 Taylor展开方法
4
第5页/共105页
➢ 差商近似导数(Euler公式)
(0 x 1)
y(0) 1.
解 计算公式为
yn1
yn
hfn
yn
h( yn
2xn ), yn
y0 1.0
n 0, 1, 2,
取步长h=0.1, 计算结果见下表
13

常微分方程初值问题数值解法

常微分方程初值问题数值解法
根据微分方程的性质和初始条件,常 微分方程初值问题可以分为多种类型, 如一阶、高阶、线性、非线性等。
数值解法的必要性
实际应用需求
许多实际问题需要求解常微分方程初值问题,如物理、 化学、生物、工程等领域。
解析解的局限性
对于复杂问题,解析解难以求得或不存在,因此需要 采用数值方法近似求解。
数值解法的优势
未来发展的方向与挑战
高精度算法
研究和发展更高精度的算法,以提高数值解的准确性和稳定性。
并行计算
利用并行计算技术,提高计算效率,处理大规模问题。
自适应方法
研究自适应算法,根据问题特性自动调整计算精度和步长。
计算机技术的发展对数值解法的影响
1 2
硬件升级
计算机硬件的升级为数值解法提供了更强大的计 算能力。
它首先使用预估方法(如欧拉方法)得到一个 初步解,然后使用校正方法(如龙格-库塔方法) 对初步解进行修正,以提高精度。
预估校正方法的优点是精度较高,且计算量相 对较小,适用于各种复杂问题。
步长与误差控制
01
在离散化过程中,步长是一个重要的参数,它决定 了离散化的精度和计算量。
02
误差控制是数值逼近的一个重要环节,它通过设定 误差阈值来控制计算的精度和稳定性。
能够给出近似解的近似值,方便快捷,适用范围广。
数值解法的历史与发展
早期发展
早在17世纪,科学家就开始尝 试用数值方法求解常微分方程。
重要进展
随着计算机技术的发展,数值 解法在20世纪取得了重要进展, 如欧拉法、龙格-库塔法等。
当前研究热点
目前,常微分方程初值问题的 数值解法仍有许多研究热点和 挑战,如高精度算法、并行计
软件优化
软件技术的发展为数值解法提供了更多的优化手 段和工具。

第九章常微分方程初值问题的数值解法

第九章常微分方程初值问题的数值解法
4
当r=0时,称为单步法,这恰好就是欧拉方法.
3 当r =1时,称为二步法,其局部截断误差为 O h .
Adams线性多步法的特点:
r r , 1. 对任意的 j 1
r j 0
2. Adams线性多步法的截断误差的来源是数值积分的截断误差, 而数值积分的截断误差来源于插值误差,因此阿达姆斯方法的 的局部截断误差是 O hr 2 3. Adams线性多步法与Runge-Kutta法比较,R-K每提高一阶精 度至少需要多计算一个函数值;而线性多步法每提高一阶精 度只需多用一个已知的数据,所以从这个角度看计算量较小, 但线性多步法必须在单步法的基础上做. 所以在实际计算时 常常把两者相结合. 13
i
再对右端的积分应用数值积分(用函数值的线性组合来近似积分)
r yi 1 yi h j f xi j , yi j r j 0


12
由于 j 仅与r , j 有关, 而与f , i 无关,所以可以事先制成表。
r
当r =2时,称为三步法,其局部截断误差为 O h

i i
这个方法称二阶泰勒方法
6
2. 梯形方法和改进欧拉方法
xi 1 x i
h y x dx y xi 1 y xi [ f xi , yi f xi 1, yi 1 ] 2 h yi 1 yi [ f xi , yi f xi 1 , yi 1 ] 2
常微分方程初值问题解的存在唯一性定理:
以后我们总假定给出的方程都满足该定理的条件. 微分方程初值问题数值解法的特点: 先把方程离散化,即在区间[a,b ]中插入一些节点(通常采用等 距节点) ba

数值计算中的常微分方程初值问题

数值计算中的常微分方程初值问题

数值计算中的常微分方程初值问题常微分方程是描述许多自然规律和现象的数学方法之一,常常在科学研究和工程应用中被广泛应用。

求解常微分方程的数值算法称为数值方法,这些方法用于求解微分方程的初始值问题(Initial Value Problem,简称IVP)。

本文将讨论常微分方程初值问题以及数值方法的应用。

1. 常微分方程初值问题常微分方程初值问题是一类形如$y^{\prime}=f(t,y),y(t_0)=y_0$的微分方程。

其中,$f(t,y)$是已知的函数,$y^{\prime}$表示$y$对$t$的导数,$y_0$和$t_0$是已知的初始条件。

将微分方程的解表示为$y=y(t)$,则其在$t=t_0$处的值为$y(t_0)=y_0$。

对于一个给定的常微分方程初值问题,我们需要求出其解$y=y(t)$。

常微分方程的解是一类内禀函数,通常没有解析表达式。

因此,求解微分方程的目标是得到一个数值近似解,以使得这个近似解能够满足应用上的需要。

但是,求解微分方程时需要注意最小化误差,以充分利用计算机资源和减小不确定性。

2. 数值方法数值方法是一种使用数值计算技术快速求解微分方程的方法。

常见的数值方法包括显式欧拉法,向后欧拉法,中点法,龙格–库塔法等。

2.1 显式欧拉法显式欧拉法是最简单的求解微分方程的数值方法之一,它通过计算初始值函数的斜率来求解下一个点的值,使得下一个点的值可读性更高。

具体来说,显式欧拉法使用前项差分公式:$$y_{n+1}=y_n+hf(t_n,y_n)$$其中$t_n=n \cdot h$是离散时间步($h$是时间步长)。

显式欧拉法的误差随时间步长变小。

但显式欧拉法的缺点是它难以处理比较复杂的微分方程,因为这可能需要使用较小的时间步长。

此外,显式欧拉法可能产生的数值不稳定性也是一个挑战。

2.2 龙格-库塔法龙格-库塔方法是一种经典的提高微分方程数值解精度的数值方法。

龙格-库塔法是一类迭代方法,它使用多次计算初始值函数的斜率,以生成更准确的导数值。

数值分析-常微分方程初值问题的解法

数值分析-常微分方程初值问题的解法
类似,可以算出其误差估计式:
2 e O ( h ) n 1
2阶的方法
是个隐式的方法, 要用迭代法求解
5、欧拉公式的改进:
• 隐式欧拉法 向后差商近似导数
y ( x ) y ( x ) 1 0 y ( x ) 1 h
y ( x1 ) y0 h f ( x1 , y ( x1 ))
多一个初值, 可能影响精度
• 改进欧拉法
Step 1: 先用显式欧拉公式作预测,算出 y Step 2: 再将 y
n1 n1
代入隐式梯形公式的右边作校正,得到
y y h f( x ,y ) n 1 n n n h y y x ,y )f( x ,y ) ] n 1 n [f( n n n 1 n 1 2
局部截断误差
2 h h y ( x ) y ( x ) [ f ( x , y ( x )) f ( x , y ( x ))] f ' ' ' ( ) n 1 n n n n 1 n 1 2 12

所以,有
h y y [ f ( x , y ) f ( x , y )] n 1 n n n n 1 n 1 2
例如:
=x+y , x [01 ,] y (0 )1 y
x
其解析解为: y x 1 2 e
但是, 只有一些特殊类型的微分方程问题能够得到用解析 表达式表示的函数解,而大量的微分方程问题很难得到其解 析解。 因此,只能依赖于数值方法去获得微分方程的数值解。
y =e , x [0,1] 例如: y(0) 1
i 0 ,, 1, 9
算例 分别用显式Euler方法,梯形方法和预估-校正Euler方法

常微分方程出值问题得数值解法

常微分方程出值问题得数值解法
2019/2/10 6
ቤተ መጻሕፍቲ ባይዱ、离散化方法
建立常微分方程初值问题数值解法的过程,就是通 过一定的离散化方法,将对连续性问题的求解转化 为求解常微分方程在有限个离散节点上解的近似值 的过程,这个过程通常称为数值离散.常用的数值 离散化方法有: 差商代替微商法 Taylor展开法 数值积分法
2019/2/10
y ( x n 1 ) y ( x n ) hf ( x n 1 , y ( x n 1 )), n 0,1, 2,
y n 1 y n hf ( x n 1 , y n 1 ), n 0,1, 2,
上式是一个隐式的单步方法,称为隐式欧拉公式或后 退的欧拉公式。利用此公式,每一步都要把上式作为 yn+1的一个方程来求解。从数值积分的误差分析,很 难期望隐式欧拉法比显式欧拉法更精确。
2019/2/10 11
隐式Euler公式(续)
通常情况下,隐式欧拉公式很难直接求出yn+1的值, 故常用迭代法求解。在实际计算时,该公式通常与 显式Euler公式结合使用,并由显式Euler公式的结果 作为迭代的初始值,从而有如下数值格式 ( 0) yn 1 y n hf ( x n , y n ) ( s 1) (s) y y hf ( x , y n1 n n 1 n 1 ) n 1,2,, N 1 对 s 0,1,2, 循环计算,若 ( s 1) y 给定的误差限),则取 n1 作为yn+1的近似值.
四、等价的积分方程
若y(x)是初值问题的解,对方程两边同时积分, 利用初始条件可得:
该方程为与初值问题同解的积分方程,我们可以 从积分方程出发去构造初值问题的求解公式。
2019/2/10 4

常微分方程初值问题数值解法 ppt课件

常微分方程初值问题数值解法  ppt课件
5
数值方法的基本思想 对常微分方程初值问题(9.1)式的数值解法,就 是要算出精确解y(x)在区间a,b上的一系列离散节

处的函数值 a x0 x1 xn1 xn b y( x0 ), y( x1 ),, y( xn ) 的近似值 y0 , y1 , , yn .
( k 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
2017/7/23
4
从实际问题当中归纳出来的微分方程,通常主 要依靠数值解法来解决。本章主要讨论一阶常微分 方程初值问题
y f ( x , y ) ( 9.1 ) y ( x ) y 0 0 在区间a ≤ x ≤ b上的数值解法。 可以证明,如果函数在带形区域 R:{ a≤x≤b,
yn1 yn hf ( xn , yn )
2017/7/23 16
Euler 格式用数值微分方法得到。 将方程 y f ( x , y )的两端在区间 xi , xi 1 上积分得,

xi 1
xi
ydx
xi 1 xi
xi 1
xi
f ( x, y )dx
xi 1 xi
中的导数 y 进行不同的离散化处理。
2017/7/23 7
对于初值问题
y f ( x , y ) y ( x 0 ) y0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 常微分方程初值问题数值解法
• 7.1 引言 • 7.2 欧拉方法与改进的欧拉方法 • 7.3 龙格-库塔方法
7.1 引 言
本章将考察一阶方程的初值问题
y f ( x, y),
y(
x0
)
y0 .
(1.1) (1.2)
我们知道,只要 f(x, y) 适当光滑—譬如关于 y 满 足利普希茨(Lipschitz)条件
可得欧拉法(2.1)的公式误差为
y( xn1)
yn1
h2 2
y(n )
h2 2
y( xn ),
(2.3)
称为此方法的局部截断误差.
如果对方程(1.1)从xn到xn+1积分,得
y( xn1) y( xn )
xn1 f (t, y(t))dt .
xn
(2.4)
右端积分用左矩形公式 hf(xn,y(xn)) 近似,再以 yn代 替 y(xn),yn+1代替 y(xn+1)也得到欧拉公式(2.1),局部 截断误差也是(2.3).
如果右端积分用右矩形公式 hf(xn+1,y(xn+1))近似, 则得到另一个公式
yn1 yn hf (xn1, yn1),
(2.5)
称为(隐式)后退的欧拉公式.
后退的欧拉公式与欧拉公式有着本质的区别, 后 者是关于yn+1的一个直接计算公式,这类公式称作是 显式的;前者公式的右端含有未知的yn+1,它实际上 是关于yn+1的一个函数方程,这类方程称作是隐式的.
7.2 欧拉方法与改进的欧拉方法
7.2.1 欧拉法与后退欧拉法
在xoy平面上,微分方程(1.1)式的解y=f(x)称作它 的积分曲线,积分曲线上一点(x, y)的切线斜率等于 函数f(x, y)的值. 如果按 f(x, y) 在xoy平面上建立一个 方向场,那么,积分曲线上每一点的切线方向均与 方向场在该点的方向相一致.
上的近似值 y1, y2, ,yn, yn+1, . 相邻两个节点的间距 hn=xn+1-xn 称为步长. 假定 hi=h (i=1,2, )为定数, 这时 节点为 xi=x0+ih (i=0,1,2, ) (等距节点).
初值问题的数值解法有个基本特点: 都采取“步 进式”,即求解过程顺着节点排列的次序一步一步地 向前推进.
y1
h( y1
2 x1 y1
)
1.1
0.1(1.1
0.2 ) 1.1
1.191818
依次计算下去,部分计算结果见下表.
xn 欧拉公式数值解yn 准确解y(xn)
0.2 1.191818
1.183216
0.4 1.358213
1.341641
0.6 1.508966
1.483240
0.8 1.649783
点Pn,Pn+1的坐标有关系
yn1 yn xn1 xn
yn1 yn h
f ( xn , yn ),
斜率

yn1 yn hf (xn, yn )
(2 .1)
这就是著名的(显式)欧拉(Euler)公式. 若初值y0已知,
则依公式(2.1)可逐次逐步算出各点数值解.
y1 y0 hf (x0, y0 ), y2 y1 hf (x1, y1),
例1 用欧拉公式求解初值问题
y
Байду номын сангаас
y
2x y
(0 x 1),
y(0) 1.
(2.2)
解 取步长h=0.1,欧拉公式的具体形式为
yn1
yn
h( yn
2xn yn
)
其中xn=nh=0.1n (n=0,1, ,10), 已知y0 =1, 由此式可得
y1
y0
h(
y0
2 x0 y0
)
1
0.1
1.1
y2
f (x, y) f (x, y) L y y .
理论上就可以保证初值问题的解 y=f(x) 存在并且唯一.
虽然求解常微分方程有各种各样的解析方法,但 解析方法只能用来求解一些特殊类型的方程,实际问 题中归结出来的微分方程主要靠数值解法.
所谓数值解法, 就是寻求解y(x)在一系列离散节点
x1 x2 xn xn1
还可以通过几何直观来考察欧拉方法的精度.假设
yn=y(xn),即顶点Pn落在积分曲线y=y(x)上,那么,
按欧拉方法做出的折线
PnPn+1便是y=y(x)过点Pn y
pn1
y y(x)
的切线.从图形上看,这样
定出的顶点Pn+1偏离了 原来的积分曲线,可见
pn
p xn1
欧拉方法是相当粗糙的.
xn
基于上述几何解释,我们从初始点P0(x0, y0)出发, 先依方向场在该点的方向推进到x=x1上一点P1,然后 再从P1点依方向场在该点的方向推进到 x=x2 上一点 P2 , 循环前进做出一条折线P0 P1 P2 .
一般地,设已做出该折线的顶点Pn,过Pn(xn, yn)依
方向场的方向再推进到Pn+1(xn+1, yn+1),显然两个顶
显式与隐式两类方法各有特点,考虑到数值稳 定性等其他因素,人们有时需要选用隐式方法,但 使用显式算法远比隐式方便.
注:隐式方程通常用迭代法求解,而迭代过程的实 质是逐步显式化.
设用欧拉公式
y(0) n1
yn
hf
( xn ,
yn )
给出迭代初值 yn(0)1,用它代入(2.5)式的右端,使之转
xn 1
x
为了分析计算公式的精度,通常可用泰勒展开将
y(xn+1)在xn处展开,则有
y(xn1)
y( xn
h)
y( xn ) hy( xn )
h2 2
y(n )
y( xn ) hf
( xn ,
yn)
h2 2
y(n )
n ( xn , xn1 ).
在yn=y(xn)的前提下,f(xn,yn )=f(xn,y(xn))=y(xn).于是
1.612452
1.0 1.784770
1.732051
误差 0.008602 0.016572 0.025726 0.037331 0.052719
与准确解 y 1 2x相比,可看出欧拉公式的计算结
果精度很差.
欧拉公式具有明显的几何意义, 就是用折线近似代
替方程的解曲线,因而常称公式(2.1)为欧拉折线法.
首先,要对微分方程离散化,建立求解数值解的 递推公式. 一类是计算 yn+1 时只用到前一点的值 yn,称 为单步法. 另一类是用到 yn+1前面 k 点的值 yn, yn-1, , yn-k+1,称为 k步法. 其次,要研究公式的局部截断误差 和阶,数值解 yn 与精确解 y(xn) 的误差估计及收敛性, 还有递推公式的计算稳定性等问题.
相关文档
最新文档