第六章—常微分方程的数值解法 PPT
- 格式:ppt
- 大小:832.00 KB
- 文档页数:62


第十五章 常微分方程的解法
建立微分方程只是解决问题的第一步,通常需要求出方程的解来说明实际现象,并
加以检验。如果能得到解析形式的解固然是便于分析和应用的,但是我们知道,只有线
性常系数微分方程,并且自由项是某些特殊类型的函数时,才可以肯定得到这样的解,
而绝大多数变系数方程、非线性方程都是所谓“解不出来”的,即使看起来非常简单的方程如22xy
dxdy
+=,于是对于用微分方程解决实际问题来说,数值解法就是一个十
分重要的手段。
§1 常微分方程的离散化下面主要讨论一阶常微分方程的初值问题,其一般形式是
⎪⎩⎪
⎨⎧
=≤≤=
0)(),(
yaybxayxf
dxdy
(1)
在下面的讨论中,我们总假定函数),(yxf连续,且关于y满足李普希兹(Lipschitz)条
件,即存在常数L,使得 |||),(),(|yyLyxfyxf−≤−
这样,由常微分方程理论知,初值问题(1)的解必定存在唯一。
所谓数值解法,就是求问题(1)的解)(xy在若干点
bxxxxa
N=<<<<=L
210
处的近似值),,2,1(Nny
nL=的方法,),,2,1(NnynL=称为问题(1)的数值解,
nnnxxh−=
+1称为由nx到1+nx的步长。今后如无特别说明,我们总取步长为常量h。
建立数值解法,首先要将微分方程离散化,一般采用以下几种方法:
(i)用差商近似导数若用向前差商
hxyxy
nn)()(
1−
+代替)('
nxy代入(1)中的微分方程,则得
),1,0())(,()()(
1L=≈−
+nxyxf
hxyxy
nnnn
化简得
))(,()()(
1nnnnxyxhfxyxy+≈
+
如果用)(
nxy的近似值ny代入上式右端,所得结果作为)(
1+nxy的近似值,记为1+ny,
则有
),1,0(),(
1L=+=+nyxhfyy
nnnn (2)
这样,问题(1)的近似解可通过求解下述问题
⎩⎨⎧
==+=
+
)(),1,0(),(
01
ayynyxhfyy
nnnnL
115 §6常微分方程的求解
一、知识背景
常微分方程在物理学,工程技术中运用非常广泛,相当重要。许多物质运动的过程用常微分方程来描述,如:质点的加速运动、谐振动、电容充放电过程及电感通电断电等过程,因此,求解常微分方程成为很多物理问题求解的一种常用方法。
而有时很难求出解析解,但可求出常微分方程的数值解以逼近解析解,以完成对摸型的研究。
求解常微分方程数值解通常有欧拉法和龙格-贝塔法。欧拉法解法的基本思想是在小区间上用差商代替导数,并通过把小区间不断地划分求极限,从而最终得到数值解。龙格-贝塔方法基本思想也是用差商代替导数,但是该方法是在小区间内运用了微分中值定理,在小区间内多取点,再取加权平均值来构造精度更高的计算式。在MATLAB系统中,主要采用龙格-贝塔法来计算常微分方程的数值解。
图 6-1
0ddcqtqR 或 cqtqRdd
我们也可写成右面方程组形式: ),(ddtqftq,00)(qtq
这即是一阶常微分方程初值问题的一般形式。
二、 计算指令 —— ode23,ode45
语句格式(以ode23为例):
[ t, y ] = ode23 (‘f’,tspan,y0,tol )
语句中各符号意义如下
f:求解的常微分方程的文件名,把方程写成函数形式并存储于m文件中。方程形式为y'=f(t,y)。 举例:如图6-1中所示电路,先将开关k掷向“1”端,待电容器c充完电后,将开关k掷向“2”端,电容器开始放电。放电过程满足下面方程: 116 tspan:输入[t0,tf],分别为自变量的初始值和最终值,为单调递增(减)的积分区间。
y0:函数的初始值矢量。
Tol:误差范围,(缺省值为0.000001)
[t,f]:t是输出的时间列矢量,矩阵y的每个列矢量是解的一个分量。
例1:用求数值解方法,求解常微分方程:3'xx,初始值x(0)=1。
常微分方程初值问题数值解法
初值问题:即满足初值条件的常微分方程的解
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 个点的值 yl
1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值
①初值条件:给出因变量在某个点上的值
• 具体过程
第一步:将初值条件带入微分方程,得到在该点的导数值
第二步:在该点,用taylor进行展开,舍去二次项,将一次函数近似函数y
第三:计算第二个点在直线上的值,用这个值近似函数 y(x)
的在第二个点的值,依此类推,直到迭代完成
一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法
-----迭代---将微分方程在区间 [xn,xn+1] 进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
• 局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为 O(hp+1)
• p阶精度:由理论证明:若局部误差阶的时间复杂度为 O(hp+1)
-
.-- 第八章 常微分方程数值解法
教学目的 1. 掌握解常微分方程的单步法:Euler方法、Taylor方法和Runge-Kutta方法;2. 掌握解常微分方程的多步法:Adams步法、Simpson方法和Milne方法等;3. 了解单步法的收敛性、相容性与稳定性;多步法的稳定性。
教学重点及难点 重点是解常微分方程的单步法:Euler方法、Taylor方法和Runge-Kutta方法和解常微分方程的多步法:Adams步法、Simpson方法和Milne方法等;难点是理解单步法的收敛性、相容性与稳定性及多步法的稳定性。
教学时数 20学时
教学过程
§1基本概念
1.1常微分方程初值问题的一般提法
常微分方程初值问题的一般提法是求函数bxaxy),(,满足
)2.1()()1.1(),,(aybxayxfdxdy
其中),(yxf是已知函数,是已知值。
假设),(yxf在区域},),{(ybxayxD上满足条件:
(1)),(yxf在D上连续;
(2)),(yxf在D上关于变量y满足Lipschitz条件:2121),(),(yyLyxfyxf,
21,,yybxa (1.3)
其中常数L称为Lipschitz常数。我们简称条件(1)、(2)的基本条件。
由常微分方程的基本理论,我们有:
定理1 当),(yxf在D上满足基本条件时,一阶常微分方程初值问题(1.1)、(1.2)对任意给定存在唯一解)(xy在],[ba上连续可微。
定义1 方程(1.1)、(1.2)的解)(xy称为适定的,若存在常数0和0K,对任意满足条件及)(x的和)(x,常微分方程初值问题 -
.-- aazbxaxzxfdxdz)(),(),(