第五章 常微分方程数值解

合集下载

5 常微分方程数值解分解

5 常微分方程数值解分解

y(
x0
)
y0
显式欧拉法(1 阶精度) yn1 yn hf ( xn , yn ) 改进的欧拉法(2 阶精度)
yn1 yn hk1
k1
f ( xn , yn )
yp yn h f ( xn , yn )
yc yn h f ( xn1, y p )
yn1
( yp
yc )
2
yn1 yn h(k1 k2 ) / 2
如果计算 y,i1只用到前一步的值 ,y则i 称这类方
法为单步方法。
如果计算yi1需用到前r步的值yi, yi1, , yir1
,则称这类方法为r步方法。
§2 欧拉方法
➢一. 欧拉公式(单步显示公式):
y y(
x0
f )
(x, y y0
)
向前差商近似导数
y( x0 )
y( x1 ) h
定义 若某算法的局部截断误差为O(hp+1),则称该 算法有p 阶精度。
欧拉法的局部截断误差:
泰勒展开式
Ri
y(xi1)
yi1
[ y(xi ) hy(xi )
h2 2
y(xi ) O(h3)][ yi
hf (xi ,
yi )]
h2 2
y( xi ) O(h3 )
Ri 的主项
hy( xi) hf ( xi , yi )
k1 f ( xn, yn )
k2 f ( xn1, yn hk1)
y (xn1) 在点 xn 处的一阶泰勒展开式为:
y( xn1 ) y( xn h) y( xn ) h y( )
k*
y( xn ) h f [ , y( )] ( xn , xn1)

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

数值分析常微分方程数值解法
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

常微分方程数值解法欧拉法

常微分方程数值解法欧拉法

)
f ( xn1, yn1)
hL
y(k ) n 1
yn1
L
hL
k 1
y(0) n 1
yn1
Q
hL 1,
y (k 1) n 1
yn1 (k
)
在迭代公式中取极限,有
yn1 yn h f ( xn1, yn1 ) 因此yn(k1)的极限就是隐式方程的解
几何意义
y
设已知曲线上一点 Pn (xn , yn ),过该 点作弦线,斜率为(xn+1 , yn +1 ) 点的 方向场f(x,y)方向,若步长h充分小, 可用弦线和垂线x=xn+1的交点近似 曲线与垂线的交点。
式。隐式公式不能直接求解,一般需要用Euler显式公式
得到初值,然后用Euler隐式公式迭代求解。因此隐式公
式较显式公式计算复杂,但稳定性好
y0 n1
yn
h
y(k 1) n1
yn
h
f (xn , yn )
f
( xn1 ,
y(k) n1
)
收敛性
y (k 1) n 1
yn1
h
f
( xn1,
y(k ) n 1
如何求解
解析解法:(常微分方程理论)
只能求解极少一类常微分方程;实际中给定的问题不一 定是解析表达式,而是函数表,无法用解析解法。
数值解法: 求解所有的常微分方程
计算解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
处的近似值 yi y( xi ) (i 1, ... , n)
y(xn1) y(xn ) hy(xn ) y(xn ) yn
y(xn1) yn1 yn h f (xn , yn )

常微分方程数值解法5262115页PPT文档

常微分方程数值解法5262115页PPT文档
x 1 ( t ) 表示时刻 t 食饵的密度,x 2 ( t ) 表示捕食者的密度;
r 表示食饵独立生存时的增长率;
d 表示捕食者独立生存时的死亡率;
a 表示捕食者的存在对食饵增长的影响系数,反映捕
食者对食饵的捕获能力;
b 表示食饵的存在对捕食者增长的促进系数,反映食
饵对捕食者的喂养能力
150 100
令 y 1 y ,y 2 y ',y 3 y '', ,y n y ( n 1 )
可以将以上高阶微分方程化为如下一阶常微分方程组
y1 ' y2 y2 ' y3 yn ' an(x)y1
a1(x)yn f (x)
例:P120,1(a),Bessel方程
常微分方程的数值解
一般地,凡表示未知函数,未知函数的导 数与自变量之间的关系的方程叫做微分方 程.未知函数是一元函数的,叫常微分方 程;未知函数是多元函数的,叫做偏微分方 程.

y ' x y'x2y2 y''y'xy
Matlab实现 [t,x]=ode45(f,ts,x0,options,p1,p2,......)
50 0 0
30 20 10
0 0
10
20
50
30
20
10

0
30
0
10
8
6
4
2
100
0
50
100
150
50
100
高阶常微分方程的解法
高阶常微分方程
y ( n ) a 1 ( x ) y ( n 1 ) a ( n 1 ) ( x ) y ' a n ( x ) y f( x )

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

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

则有
yn 1 yn hf ( xn , yn )
( 5.2 ) Euler格式
例5.1 用Euler格式解初值问题
2x y y y y (0) 1
取步长h=0.1.
(0 x 1)
Euler格式的具体形式为
y n 1 y n hf ( x n , y n ) 2 xn yn 0.1( yn ) yn 0.2 xn 1.1 yn yn
计算公式的精度 常以Taylor展开为工具来分析计算公式的精度. 为简化分析,假定yn是准确的,即在 yn y ( xn ) 的前提下估计误差 y ( xn 1 ) yn 1 Euler格式的局部截断误差 由 从而 局部截断误差
f ( xn , yn ) f ( xn , y ( xn )) y '( xn ) y ( xn 1 ) yn 1 y ( xn 1 ) ( yn hf ( xn , yn )) y ( xn 1 ) y ( xn ) hy '( xn )
y ( xn ), y ( xn 1 ), 的近似值 y1 , y2 , , yn , yn 1 ,
相邻两个节点的间距 h xi 1 xi 称为步长,步 长可以相等,也可以不等.本章总是假定h为定数, 称为定步长,这时节点可表示为
xn x0 nh , n 0,1, 2,
由f ( xn 1 , yn 1 ) f ( xn 1 , y ( xn 1 )) f y ( xn 1 , )( yn 1 y ( xn 1 )) f ( xn 1 , y ( xn 1 )) y '( xn 1 )(在xn点Taylor展开) h2 y '( xn ) hy ''( xn ) y '''( xn ) ... 2 3 2 h h 因此yn 1 y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 4 h f y ( xn 1 , )( yn 1 y ( xn 1 )) 2 h2 h3 y ( xn 1 ) y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 3!

数值分析第五章常微分方程数值解法讲解

数值分析第五章常微分方程数值解法讲解

? ? ?
? ?
yn+1
?
1 2
yp ? yc
§1 欧拉方法 /* Euler's Method */
y( xn?1) ? y(xn ) ? hy?( xn ) ? y(xn ) ? yn
y( xn?1) ? yn?1 ? yn ? h f ( xn , yn )
§1 Euler's Method
Taylor 展开法
yn?1 ? yn ? h f (xn , yn ) n ? 0, 1,...
?
y??xn?1 ??
y??xn ??
hy???xn ??
h2 2
y????xn ??
?
yn?1
?
? hf
?
y
xn ? 1 ,?
??? yn ? 1
?
y ?xn?1 ??? ?
y ?xn ?
?
hy??xn ??
h2 y???xn ??
h3 2
y????xn ??

y ?xn?1 ??
y ?xn ??
就是用差商近似导数
在xn点用一阶向前差 商近似一阶导数
y ?( xn ) ?
y(xn?1) ? h
y(xn )
y(xn?1) ? y(xn ) ? hy?(xn )
Euler's method
? y(xn ) ? yn y(xn?1) ? yn?1 ? yn ? h f (xn , yn )
? 欧拉公式的改进 :
式。隐式公式不能直接求解,一般需要用 Euler 显式公式
得到初值,然后用Euler 隐式公式迭代求解。因此隐式公
式较显式公式计算复杂,但稳定性好(后面分析)。

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

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

2hyxn
2h3 3!
y
yxn1
yxn1 2hyxn
h3 3
y ②
将①、②两式相减:
y
xn1
h3 yn1 3
y
——两步法局部截断误差
18
第19页/共24页
2024年8月7日
(2)梯形公式
yn1
yn
h 2
f
xn , yn
f
xn1 , yn1
yxn
hf
2
xn ,
yn1 yxn1 2hyxn ①
2024年8月7日
17
第18页/共24页
2024年8月7日
将函数用泰勒级数展开:( h 较小, 相差不大)
yxn1
yxn
h 1!
yxn
h2 2!
yxn
h3 3!
y
yxn1
yxn
h
1!
yxn
h2
2!
yxn
h3
3!
y
yxn1
yxn1
yxn
f
xn1 , yxn1
yn1
yxn
h 2
y
xn
yxn1 ①
将函数用泰勒级数展开:
yxn1
yxn
h 1!
yxn
h2 2!
yxn
h3 3!
y ②
yxn1
yxn
h 1!
yxn
h2 2!
y ③
( h 较小, 相差不大)
19
第20页/共24页
2024年8月7日
①、②两式相减,并代入③式:
(图示表示梯形法计算结果)

常微分方程数值解法

常微分方程数值解法

欧拉方法
总结词
欧拉方法是常微分方程数值解法中最基础的方法之一,其基本思想是通过离散化时间点上的函数值来 逼近微分方程的解。
详细描述
欧拉方法基于微分方程的局部线性化,通过在时间点上逐步逼近微分方程的解,得到一系列离散点上 的近似值。该方法简单易行,但精度较低,适用于求解初值问题。
龙格-库塔方法
总结词
影响
数值解法的稳定性对计算结果的精度和可靠 性有重要影响。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有稳定性和收敛性。
数值解法的收敛性
定义
数值解法的收敛性是指随着迭代次数的增加, 数值解逐渐接近于真实解的性质。
影响
数值解法的收敛性决定了计算结果的精度和 计算效率。
分类
根据收敛速度的快慢,可以分为线性收敛和 超线性收敛等。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有收敛性。
误差分析
定义
误差分析是指对数值解法计算过程中 产生的误差进行定量分析和估计的过 程。
分类
误差可以分为舍入误差、截断误差和 初始误差等。
影响
误差分析对于提高计算精度和改进数 值解法具有重要意义。
分析方法
通过建立误差传递公式或误差估计公 式,对误差进行定量分析和估计。
生物学
生态学、生物种群动态和流行病传播 等问题可以通过常微分方程进行建模
和求解。
化学工程
化学反应动力学、化学工程流程模拟 等领域的问题可以通过常微分方程进 行描述和求解。
经济学
经济系统动态、金融市场模拟和预测 等问题可以通过常微分方程进行建模 和求解。
02 常微分方程的基本概念
常微分方程的定义
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tn1 tn
f (x(t),t)dt , n 0,1 ,2, .
(5-3)
然后数值积分。 或采用台劳展开的 ,方 即 hn 法 tn1 tn (tn) x(tn1) x(tn) hnxn (5- 4)
然后按精度要求截断。 定义:若 x 只 计用 算到 前 面 x 一 ,即 步 算 信 法 息 是 n 1 n x x h ( x ,t ,h ) n 1 n n n n n
本章只介绍初始问题的解法,原因是初始问题系统科学中 研究的最重要的问题。 §5.2 初始问题的单步法
一、欧拉法 1、显式欧拉法 x n 1 x n h n f n n 0 ,1, 2 , 其中, h n t n 1 t n , f n f ( x n , t n ) 局部截断误差: T x ( t ) ~ x (t
二、龙格-库塔法(RK)
我们的目的是构造更高阶的单步法!
p 1 结论:若单 截 步 断 法 T 误 的 o 差 ( h 局 ), 则 部 此单 n 1
p 步法的整 err 体 o ( 误 h ). 即 差 此单 p 阶 步方 法法 为 n 1
分 析 : 由 x (t n 1 ) x ( t n )
j i 1 j
j 1

x ( t n ) h ( a i a i 1 ) k i 1 o ( h 2 ) x ( t n ) h b ji k i 1
i 1 j
b ji 待 定
k j f ( x ( t n ) h b ji k i 1 , t n a j h )
这样做的根据是:1)对实验模型数值不稳定的方法,不可用; 2)一般的初始问题在其解的存在区域内,可局部线性化转化 为试验方程。
几个常用算法的数值稳定性
1、显式欧拉法的绝对稳 定区域 显式 Euler 用于试验模型的计算公 式为 x n 1 x n h x n (1 h ) x n n 1 (1 h ) n 绝对稳定区域 : 1 h 1 当 为实数时,绝对稳定区 间: h ( 2, 0) 步长 h 不仅要满足算法收敛( o ( h ))限制,而且 还要满足算法数值稳定 性(0 h 2 )限制.
i1
j 1: m
称此结构为m+1级龙格-库塔法。它最多是m+1阶的。
一些常用的显式RK方法 1、二级二阶RK法 改进的欧拉法(p277),中点公式(p278),休恩方法(p278)等。 2、三级三阶RK法 休恩三阶方法(P279),库塔三阶方法(P279)等
3、四级四阶RK法
经典四级四阶RK法(P280),基尔四级四阶RK法(P280)
当 为实数时,绝对稳定区 步长 h 不仅考虑满足算法收敛 还要考虑数值稳定性(
n 1 n 1
~ x ( t n 1 ) x ( t n ) h n f ( x ( t n ), t n ) T n 1 x ( ) 2 hn 2 !!
n 1 )
总体误差: err n 1 x ( t n 1 ) x n 1 x (t n 1 ) ~ x (t n 1 ) ~ x (t n 1 ) x n 1 ~ x (t ) x
4 、经典四级四阶
RK 法的绝对稳定区域 RK 法用于试验模型的计算 公式为
经典四级四阶
(h )2 (h )3 (h )4 x n 1 ( 1 h ) xn 2! 3! 4! (h )2 (h )3 (h )4 n 1 ( 1 h ) n 2! 3! 4! 绝对稳定区域 (h )2 (h )3 (h )4 :( 1 h ) 1 2! 3! 4! 间: h ( 2 . 78 , 0) ( o ( h 2 )) 限制,而且
一 般F (t , x, x,, x( n) ) 0 均 可 化为 dx f ( x, t ) dt 形 式 , 称 此 为标 准 模。 式
例如 d 2 x ( 1 x 2 ) dx x f ( t ) dt dt 2 引入 x 1 x , x 2 dx ,则 dt dx 1 x2 dt dx 2 ( 1 x 12 ) x 2 x 1 f ( t ) dt
第五章 常微分方程数值解 §5.1 问题的提出
常微分方程定解问题 1 、初始问题 dx f ( x , t ), t t 0 dt (5 - 1) x (t0 ) x 0 x ( t ) R n , t t 0 是其解析解。 2 、边值问题 dx f ( x , t ) , a t b (5 - 2) dt x (a ) x a , x (b ) xb x ( t ) R n , a t b 是其解析解。
的绝对稳定区域包含了
A - 稳定的算法,只要
3、改进的欧拉法的绝对 稳定区域 改进的 Euler 用于试验模型的计算公 式为 h 2 h x n 1 x n ( x n x n 1) x n 1 xn 2 2 h n 1 2 h n 2 h 2 h 绝对稳定区域 : 1, 是 A 稳定的。 2 h 当 为实数时,绝对稳定区 间: h ( , 0) 步长 h 只需考虑满足算法收敛 ( o ( h 2 ))限制即可!
对于非线性问题很难求 得解析解 x ( t) 。数值解法 求在给定时刻 t ,t , ,t 的近似值 x ,x , ,x . 然后在利 0 1 n 0 1 n ~ 值逼近的方法得到 x ( t) 得近似 x ( t).
* 初始问题算法的构 微造 分是 方程 5( 1 ) 积 分 方 程 : x(tn1) x(tn)

2、 隐 式 欧 拉 法 的 绝 对 稳
定区域 式为 1 xn 1 h
隐 式 Euler 用 于 试 验 模 型 的 计 算 公 x n 1 x n h x n 1 x n 1
1 n 1 n 1 h 绝对稳定区域 : 1 h 1 当 为实数时,绝对稳定区 步长 h 只需考虑满足算法收敛 定义:一个算法如果它 面的整个左半平面,则 显然,凡是 是绝对稳定的。 称此算法是 间: h ( , 0) ( o ( h )) 限 制 即 可 ! h 复平 A 稳定的。 Re( ) 0, h 0 都
则称之为单步 则 算 为 法 多 。 步 否 算法。
* 边值问题的算法构造方 有限元法等。差分法的
法很多,有差分方法、 例子:
x (1 x 2 ) x x f ( t ), 0 t 1 x ( 0 ) 0 , x (1 ) 1 x ( t i ) 1 ( x i 1 x i ), x ( t i ) 12 ( x i 1 2 x i x i 1 ) h h 12 ( x i 1 2 x i x i 1 ) (1 x i2 ) 1 ( x i 1 x i ) x i f ( t i ) h h i 1:n 1 x 0 0 , 1 ( x n x n 1 ) 1 h 由此解出 x 0 , x1 , , x n .
设 h max( hk , k 1 : n ), M 2 max( x ( t ) , t 0 t t n 1 ), M2 2 则 T n 1 h ,及 2 M2 2 err n 1 h (1 hL ) err n 2 M2 2 n h ( (1 hL ) k ) (1 hL ) n 1 err 0 2 k 0 M 2 2 (1 hL ) n 1 1 M 2 ( n 1) hL err n 1 h (e 1) h 2 hL 2L err n 1 o ( h ) !!
n 1 n 1
x ( t n ) x n h n ( f ( x ( t n ), t n ) f ( x n , t n )) ~ x (t n 1 ) x n 1 x (t n ) x n h n L x (t n ) x n ~ x ( t n 1 ) x n 1 (1 h n L ) x ( t n ) x n err n 1 T n 1 (1 h n L ) err n 其 中 , L 为 f的 李 布 希 兹 常 数
三、单步法的数值稳定性 若计算 x n 产生误差 n ( n ),即实际得到近似值
ˆn , x
ˆ n , 则用单步法 n xn x x n 1 x n h ( x n , t n , h ) 计算 x n 1时,将产生误差 ˆ n 1 n 1 x n 1 x ˆ n h [ ( x n , t n , h ) ( x ˆ n , t n , h )] xn x ˆ n , t n , h ) 太依赖于 f ( x , t ), 估计其大 由于 ( x n , t n , h ) ( x 小很困难。为摆脱这种 依赖性,在讨论方法的 数值 稳定性时,都针对同一 试验模型: x x , 为复常数
以上说明显式欧拉法是一阶收敛的算法
2、隐式欧拉法
xn 1 xn hn f ( xn 1 , t n 1 ) n 0,1,2, 一阶收敛的方法,即 errn 1 o ( h ) 3、改进的欧拉法(隐式) xn 1 xn hn [ f ( xn , t n ) f ( xn 1 , t n 1 )] n 0,1,2, 二阶收敛的方法,即 errn 1 o ( h 2 )。
i 1
j 1:m
(**)
由 式* ( )和式 * * ( )可知:适当选 cj ,取 aj ,b 参 可 数 构造 m 出 1 阶 ji 的显式单步法:
相关文档
最新文档