第八章常微分方程数值解PPT课件
第8章常微分方程数值解法

的解为
y ( x) e
x2
x 0
e dt
t2
但要计算它的值,还需要用数值积分的方法。如果要 对许多个 x 值计算解 y(x) 的近似值,那么工作量非常大。况 且实际计算不一定要求解析表达式,而是只需求在某些点 上满足精度的解的近似值或解的近似表达式就可以了。
由于高阶常微分方程可以转化为一阶常微分方程组,因 此,为了不失一般性,本章主要介绍一类一阶常微分方程初 值问题
的解来近似微分方程初值问题(8.2)的解,其 中 h (b- a) / 2 ,式(8.3)也称为欧拉公式。
欧拉法的几何意义是用一条自点 ( x0 , y0 ) 出发的 折线去逼近积分曲线 y f (x) ,如图8.1所示。 因此,这种方法又称为折线法。显然,欧拉法 简单地取折线的端点作为数值解,精度非常差。
float euler(float x0,float xn,float y0,int N) { float x,y,h; int i; x=x0; y=y0; h=(xn-x0)/(float)N; /* 计算步长 */ for(i=1;i<=N;i++) /* 欧拉公式 */ { y=y+h*func(x,y); x=x0+i*h; } return(y); }
8.4 龙格—库塔(Runge-Kutta)法 8.4.1 龙格—库塔法的基本思想
在欧拉法 yi 1 yi h f ( xi , yi ) (i 0,1,) 中,用解函数 y f (x) 在 点 x i 处的斜率 f ( xi , y i ) 计算从 yi 到 y i 1 的增量,y i 1 的表达式 与 y( xi 1 ) 的Taylor展开式的前二项相等,使方法只有一阶精度。 改进的欧拉法用两个点 x i ,x i 1 处的斜率 f ( xi , y i )、f ( xi 1 , yi 1 ) 的平均值计算增量,使方法具有二阶精度,即 y i 1 的表达式 与 y( xi 1 ) 的Taylor展开式的前三项相等。 由此龙格和库塔提出了一种间接地运用Taylor公式的方法, y (x) 即利用 在若干个待定点上的函数值和导数值做出线性组 合式,选取适当系数使这个组合式进行Taylor展开后与 y( xi 1 ) 的Taylor展开式有较多的项达到一致,从而得出较高阶的数 值公式,这就是龙格—库塔法的基本思想。
第八章常微分方程的数值解法

y( xn1 )
15
Euler法的收敛性
称初值问题(8.1.1)的数值解法是收敛的,如:
h0 ( n )
lim yn y ( x)
其中: x xn x0 nh , x [ x0 , b]
16
例考察以下初值问题Euler法的收敛性
dy y dx y (0)=y0 ( 0)
★
可得: h (k ) ( k 1) y y | f ( xn 1 , yn ) f ( x , y 1 n 1 n 1 ) | 2 hL ( k ) hL k 1 (1) ( k 1) (0) | yn 1 yn 1 | ( ) | yn 1 yn 1 | 2 2 hL k 1 ( k 1) 从而 : lim( ) 0 , 故有 lim yn 1 y n 1 。 k 2 k
★
由y0=y( x0 ), 假定yn=y( xn ), 往证:
y0 yn 1 y ( xn 1 ) xn 1; x0
14
证明
yn yn1 yn hf ( xn , yn ) yn h xn 1 1 yn (1 h ) y( xn )(1 h ) xn xn y0 y0 1 xn (1 h ) ( xn h) x0 xn x0 y0 xn 1 x0
8
局部截断误差
假设第n步在点xn的值计算没有误差,即yn y( xn ), 由单步法计算出yn1 , 则
Tn1 y( xn1 ) yn1 称为点xn1上的局部截断误差.
从初值y( x0 ) y0出发,由单步法显式或隐式 逐步计算,得xn 1的值yn 1 , 则
n1 y( xn1 ) yn1
高等数学11单元第八章常微分方程

授课11单元教案第一节微分方程的基本概念教学过程一、引入新课初等数学中就有各种各样的方程:线性方程、二次方程、高次方程、指数方程、对数方程、三角方程和方程组等等。
这些方程都是要把研究的问题中的已知数和未知数之间的关系找出来,列出包含一个未知数或几个未知数的一个或者多个方程式,然后求取方程的解。
方程的定义:含有未知数的的等式。
它表达了未知量所必须满足的某种条件。
根据对未知量所施行的数学运算的不同,我们可以将方程分成许多不同的类型来研究。
引例1二、新授课1、微分方程的定义:含有未知函数的导数或微分的方程,称为微分方程如果未知函数是一元函数的微分方程称为常微分方程式;如果未知函数是多元函数的微分方程式称为偏微分方程。
例如,22;d yx y x dx=+=dx 和是常微分方程dyzxy x∂=∂是偏微分方程. 微分方程中未知函数的最高阶导数的阶数,称为微分方程式的阶。
一阶微分方程的一般形式为 (,,)0F x y y '= 例如:2354()0y x y x '+-=,2()20dy dyx y x dx dx-+=都是一阶微分方程。
二阶微分方程的一般形式为 (,,,)0F x y y y '''= 例如:222sin 0d y dyyx dx dx-+=,2223()(2)y k y '''=+都是二阶微分方程。
类似可写出n 阶微分方程的一般形式 ()(,,,,)0n F x y y y y '''=。
其中F 是n +2个变量的函数。
这里必须指出,在方程()(,,,,)0n F x y y y y '''=中,()n y 必须出现,而,,,x y y '(1),n y y -''等变量可以不出现。
例如()()n y f x =也是n 阶微分方程。
例1 .指出下列方程中哪些是微分方程,并说明它们的阶数:122222222(1) 0; (2) 2;(3) sin 0; (4) 3;(5) '''3; (6) ;(7) '''(')0. t dy y dx y y x d yxdy y xdx y e dt yy y x dy dx x y xy y -==++=+=+==+-=2、微分方程的解能够满足微分方程的函数都称为微分方程的解 求微分方程的解的过程,称为解微分方程例如,函数3x 16是微分方程22d y x dx =的解。
第八章常微分方程的数值解23页PPT文档

由 y ( x 0 ) f( x 0 ,y 0 ), y ( x 0 ) y 0
得 y (x 1 ) y 0 h(x f0 ,y 0 ) y 1
同理,在x= xn 处,用差商代替导数: y(xn)y(x x n n 1 1 ) x y n (xn)y(xn 1)h y(xn)
第八章 常微分方程的数值解
引言 简单的数值方法
欧拉方法 梯形方法
8.1 引言
在高等数学中我们见过以下常微分方程:
yf(x,y) axb (1)y(a)y0
yf(x,y,y) axb
(2) y(a)y0,y(a)
yf(x,y,y) axb (3) y(a)y0,y(b)yn
(1),(2)式称为初值问题,(3)式称为边值问题。
2.6
0.3351 0.3459 0.0108
2.8
0.3167 0.3246 0.0079
3.0
0.3000 0.3057 0.0057
由表中数据可以看到,微分方程初值问题的数值解和解
析解的误差一般在小数点后第二位或第三位小数上,这
说明Euler方法的精度是比较差的。
数值解和解析解的图示比较如下:
考虑一阶常微分方程初值问题
y f (x, y) (1)y(x0) y0
其中,y = y(x) 是未知函数,y(x0) = y0 是初值条 件,而f(x, y) 是给定的二元函数.
由常微分方程理论知,若f(x)在x[a,b]连续且 f 满足对 y 的Lipschitz条件:
f(x ,y 1 )f(x ,y2)L y 1y2
因 y n (k 1 1 ) y n 1 h f(x n 1 ,y n (k 1 )) f(x n 1 ,y n 1 )
常微分方程数值解-PPT精品文档

称为局部截断误 差。显然,这个 y ( x ) y ( x ) h 误差在逐步计算 n 1 n y ' ( x ) y ' ' ( ) n n 过程中会传播, h 2 积累。因此还要 y ( x ) y ( x ) h n 1 n f ( x , y ( x )) y ' ' ( ) 估计这种积累 n n n h 2
对于一个常微分方程:
9.1 Euler方法
dy y ' f( x ,y ), x [ a , b ] dx 通常会有无穷个解。如:
dy cos( x ) y sin( x ) a , a R dx 因此,我们要加入一个限定条件。通常会在端点出给出, 如下面的初值问题: dy f (x , y) , x [a ,b ] dx )y 0 y(a 为了使解存在唯一,一般,要加限制条件在f上,要求f对y 满足Lipschitz条件:
求 y ( x ) 在 x i 上的近似值
y i 。 { y i } 称为分割 I
上的格点函数
我们的目的,就是求这个格点函数
② 由微分方程出发,建立求格点函数的差分方程。这个方程应该满足: A、解存在唯一;B、稳定,收敛;C、相容 ③ 解差分方程,求出格点函数
数值方法,主要研究步骤②,即如何建立差分方程,并研究 差分方程的性质。
x0
x1
y i 1 y i h f ( x i 1 , yi 1 ) ( i 0, ... , n 1)
由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故 称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。 一般先用显式计算一个初值,再迭代求解。
《微分方程的数值解》课件

谱方法:将微分方程离散化为谱方程, 然后求解
边界元法:将微分方程离散化为边界 元方程,然后求解
有限元法:将微分方程离散化为有限 元方程,然后求解
网格法:将微分方程离散化为网格方 程,然后求解
数值解法的步骤
确定微分方程的初值 和边界条件
选择合适的数值解法, 如欧拉法、龙格-库塔 法等
实解
应用:广泛应 用于工程、物 理、化学等领
域
优缺点:优点 是计算速度快, 缺点是精度较
低
非线性方程的数值解法
牛顿法:通过迭 代求解非线性方 程
拟牛顿法:通过 迭代求解非线性 方程,比牛顿法 收敛更快
割线法:通过迭代 求解非线性方程, 适用于求解单变量 非线性方程
迭代法:通过迭 代求解非线性方 程,适用于求解 多维非线性方程
05 数值解法的实现
M AT L A B 编 程 实 现
MATLAB简介: MATLAB是一种高 级编程语言,广泛 应用于科学计算、 数据分析等领域
数值解法:包括欧 拉法、龙格-库塔 法、四阶龙格-库 塔法等
MATLAB实现:使 用MATLAB编写程 序,实现数值解法 的计算
示例代码:给出 MATLAB实现数值 解法的示例代码, 并解释其含义和作 用
设定时间步长和空间 步长
计算微分方程的解, 并进行误差分析
绘制解的图形,并进 行结果分析
对比不同数值解法的 优缺点,选择最优解 法
04 常用的数值解法
欧拉方法
基本思想:将微分 方程转化为差分方 程,然后求解差分 方程
优点:简单易行, 适用于初值问题
缺点:精度较低, 稳定性较差
改进方法:改进欧 拉方法,如改进欧 拉方法、龙格-库 塔方法等
常微分方程数值解法ppt课件

若存在正的常数 L 使:
(Lipschitz)条件
|f( x ,y 1 ) f( x ,y 2 ) | L |y 1 y 2 | ( 1 .3 )
使 得 对 任 意 的 x [ a , b ] 及 y 1 ,y 2 都 成 立
则称 f (x,y) 对y 满足李普希兹条件,L 称为 Lipschitz常数.
节点 x i a i h i , 一 般 取 h i h ( ( b a ) / n ) 即 等 距
要计算出解函数 y(x) 在一系列节点
ax 0x 1x nb
处的近似值 y y(x ) i 完整版PPT课件i
16
yf(x,y) axb (1 .1 )
y(x 0) y0
(1 .2 )
对微分方程(1.1)两端从 xn到 xn1 进行积分
在大量的实际方程中出现的函数起码的连续性都 无法保证,更何况要求阶的导数
求解数值解
很多微分方程 根本求不到 问题的解析解!
重要手段。
完整版PPT课件
7
5.常微分方程数值解法的特点 常微分方程的数值解法常用来求近似解
根据提供的算法 通过计算机
数值解法得到的近似 解(含误差)是一个 离散的函数表.
便捷地实现
欧拉方法的导出把区间ab分为n个小区间步长为要计算出解函数yx在一系列节点iiyyx?iiixaihhhban?????一般取即等距节点处的近似值01naxxxb?????1iiihxx??nn等分001112yfxyaxbyxy????????对微分方程11两端从1nnxx?到进行积分11nnnnxxxxydxfxyxdx??????11nnxnnxyxyxfxyxdx?????右端积分用左矩形数值求积公式22baggxdxbagaba???????gxfxyx?令11nnnnxxnnfxyxnnyyfxyxh??????得x0x11nnnnnnyxyxhyxyhfxy??????1
常微分方程数值解法课件

根据选择的步长,确定当 前时刻的数值解的近似值 。
重复上述步骤,直到达到 所需的时间积分区间终止 点。
龙格-库塔方法的误差分析
误差主要来源于时间步长 的离散化,步长越小,误 差越小。
龙格-库塔方法的收敛性 和稳定性取决于所选步长 和步数。
ABCD
机械工程
在机械工程中,机构的动力学行为可以用常微分方程来描 述,如机器人的运动轨迹、机械臂的姿态等,通过数值解 法可以模拟这些机构的运动。
在金融问题中的应用
股票价格模拟
股票价格的变化可以用常微分方程来描述,通过数值解法可以模 拟股票价格的走势,预测未来的股票价格。
期货价格模拟
期货价格的变化也可以用常微分方程来描述,通过数值解法可以 模拟期货价格的走势,预测未来的期货价格。
可以通过增加步数来减小 误差,但会增加计算量。
在实际应用中,需要根据 具体问题选择合适的步长 和步数,以达到精度和计 算效率的平衡。
05
数值解法的应用
在物理问题中的应用
计算物体运动轨迹
通过数值解法求解常微分方程,可以模拟物体的运动轨迹,如行星 运动轨迹、炮弹弹道等。
模拟振动系统
在物理中,许多系统可以用常微分方程来描述,如弹簧振荡器、电 磁振荡器等,通过数值解法可以模拟这些系统的振动行为。
终止条件
当达到预设的精度或迭代次数时,停止迭代并输出结果。
欧拉方法的误差分析
截断误差
由于欧拉方法使用离散化近似 ,因此存在截断误差。这种误 差的大小取决于步长$h$的选
择。
稳定性
欧拉方法对于某些微分方程可 能是不稳定的,这意味着随着 迭代的进行,解可能会发散或
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
都是一次的,则称它是线性的,否则称为非线性的。
在高等数学中,对于常微分方程的求解,给出 了一些典型方程求解析解的基本方法,如可分离变 量法、常系数齐次线性方程的解法、常系数非齐次 线性方程的解法等。但能求解的常微分方程仍然是 有限的,大多数的常微分方程是不可能给出解析解。 譬如
Euler法的求解过程是:从初
Pi+1 Pn y=y(x)
始点P0(即点(x0,y0))出发, 作积分曲线y=y(x)在P0点上
P1
P1 P0
Pi
Pn
Pi Pi+1
切线 P0 P1 (其斜率为
y(x0)f(x0,y0)),与x=x1直线
x0 x1
xi xi+1 xn
相交于P1点(即点(x1,y1),得到y1作为y(x1)的近似值,
选择不同的计算方法计算上式的积分项
xi1 xi
x0 x1
xi xi+1 xn
同样, 过点P1(x1,y1),作积分曲线y=y(x)的切线
交直线x=x2于P2点,切线 P1 P2 的斜率 y(x1) = f (x1, y1)
直线方程为
y y 1 f(x 1 ,y 1 )x ( x 1 )
当 x x2 时,得 y 2 y 1 f(x 1 ,y 1 )x 2 ( x 1 )
P1
P1 P0
Pi+1 Pn
Pi
Pi
Pi+1
y=y(x) Pn
x0 x1
xi
xi+1
xn
由此获得了P2的坐标。重复以上过程,就可获得一系
列的点:P1,P1,…,Pn。对已求得点 Pi(xi, yi)
以 y(xi)f(xi,yi)为斜率作直线 yyif(xi,yi)x(xi)
当 x xi1 时,得 y i 1 y i f(x i,y i)x i( 1 x i)
x i x 0 i,hi 1 ,2 , ,n 数值解法需要把连续性的问题加以离散化,从而求
出离散节点的数值解。
对常微分方程数值解法的基本出发点就是离散 化。其数值解法采用“步进式”,即求解过程顺着 节点排列的次序一步一步地向前推进。描述这类算 法,要求给出用已知信息 yi,yi1,yi2, ,y0来计 算 y i 1 的递推公式。建立这类递推公式的基本方法 是在这些节点上用数值积分、数值微分、泰勒展开 等离散化方法,对初值问题
y f (x, y) y(x0) y0
中的导数 y 进行不同的离散化处理。
对于初值问题 y f (x, y)
y(x0) y0
的数值解法,首先要解决的问题就是如何对微分方 程进行离散化,建立求数值解的递推公式。递推公 式通常有两类,一类是计算yi+1时只用到xi+1, xi 和yi, 即前一步的值,因此有了初值以后就可以逐步往下 计算,此类方法称为单步法;其代表是龙格—库塔 法。另一类是计算yi+1时,除用到xi+1,xi和yi以外, 还要用到 xip,yip(p1,2, ,k),即前面k步的值,此 类方法称为多步法;其代表是亚当斯法。
如上图所示。过点(x0,y0),以f(x0,y0)为斜率的切线
方程为
y y 0 f(x 0 ,y 0 )x ( x 0 )
当x x1时,得
y 1 y 0 f(x 0 ,y 0 )x ( 1 x 0 )
这样就获得了P1点的纵坐标。
P1
P1 P0
Pi+1 Pn
Pi Pi Pi+1
y=y(x) Pn
8.2 欧拉(Euler)法 8.2.1 Euler公式
欧拉(Euler)方法是解初值问题的最 简单的数值方法。初值问题
y f (x, y) y(x0) y0
的分方程的积分曲线。积分曲线上每一点 (x, y) 的切线的斜率 y(x) 等于函数 f (x, y) 在 这点的值。
f(x ,y 1)f(x ,y2)L y 1y2 对R内任意两个 y1, y2 都成立,则方程( 8.1.1 )的解 yy(x) 在a, b上存在且唯一。
对常微分方程初值问题(8.1.1)式的数值解法,就是 要算出精确解y(x)在区间a,b上的一系列离散节点 处的函a 数 值x 0 x 1 x n 1 x n b y(x0)y ,(x1) ,,y(xn)的近似值 y0,y1,,yn 。 相邻两个节点的间距 hxi1xi 称为步长,步 长可以相等,也可以不等。本章总是假定h为定数, 称为定步长,这时节点可表示为
P1
P1 P0
Pi+1 Pn
Pi
Pi
Pi+1
y=y(x) Pn
x0 x1
xi
xi+1
xn
这样,从x0逐个算出 x1,x2,xn
对应的数值解
y1, y2,yn
从图形上看,就获得了一条近似于曲线y=y(x)
的折线 P1P2P3Pn 。
通常取 xi1xi hi h(常数),则Euler法的计算格式
yyi01yy(xi 0)hf(xi,yi)
i=0,1,…,n
( 8.2.1 )
还可用数值微分、数值积分法和泰勒展开法推导
Euler格式。以数值积分为例进行推导。
将方程 yf(x,y)的两端在区间 xi ,xi1 上积分得,
xi1ydx xi1 f(x,y)dx
xi
xi
y (x i 1 ) y (x i) x x ii 1f(x ,y ) d y x (x i) x x ii 1fx ,y (x )dx (8.2.2)
yx2 y2
这个一阶微分方程就不能用初等函数及其积 分来表达它的解。
从实际问题当中归纳出来的微分方程,通常主要
依靠数值解法来解决。本章主要讨论一阶常微分方
程初值问题
y f (x, y) y(x0 ) y0
在区间a ≤ x ≤ b上的数值解法。
( 8.1.1 )
可以证明,如果函数 f (x, y)在带形区域 R={a≤x≤b, -∞<y<∞}内连续,且关于y满足李普希兹 (Lipschitz)条件,即存在常数L(它与x,y无关)使
第八章 常微分方程的数值解法
8.1 引言 包含自变量、未知函数及未知函数的导数或微
分的方程称为微分方程。在微分方程中, 自变量的 个数只有一个, 称为常微分方程.。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分 方程的阶数。如果未知函数y及其各阶导数