常微分方程数值解法简介.ppt

上传人:牧羊曲112 文档编号:6570776 上传时间:2023-11-13 格式:PPT 页数:93 大小:2.29MB
返回 下载 相关 举报
常微分方程数值解法简介.ppt_第1页
第1页 / 共93页
常微分方程数值解法简介.ppt_第2页
第2页 / 共93页
常微分方程数值解法简介.ppt_第3页
第3页 / 共93页
常微分方程数值解法简介.ppt_第4页
第4页 / 共93页
常微分方程数值解法简介.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《常微分方程数值解法简介.ppt》由会员分享,可在线阅读,更多相关《常微分方程数值解法简介.ppt(93页珍藏版)》请在三一办公上搜索。

1、科学计算与数学建模,中南大学数学科学与计算技术学院,第7章 常微分方程数值解法简介,第七章常微分方程数值解法简介,微分方程在科学和工程技术中有很广泛的应用。许多实际问题的数学模型都可以用微分方程来描述,归结为常微分方程的定解问题。很多偏微分方程问题,也可以化为常微分方程问题来近似求解,但是求出所需的解绝非易事。实际上,除了极特殊情形外,人们不可能求出微分方程的解析解,只能用各种近似方法得到满足一定精度的近似解。在常微分方程中已经熟悉了级数解法和Picard逐步逼近法,这些方法可以给出解的近似表达式,称为近似解析方法。另一类方法只给出解在一些离散点上的值,称为数值方法。数值方法应用范围更广,特别

2、适合用计算机计算,本章主要介绍常用的常微分方程数值解法。,函数是事物的内部联系在数量方面的反映,如何寻找变量之间的函数关系,在实际应用中具有重要意义.在许多实际问题中,往往不能直接找出变量之间的函数关系,但是有时却容易找出变量的改变量之间的关系,从而建立描述问题的微分方程模型.,1 实际问题的微分方程模型,例7.1 将初始温度 的一碗汤放置于环境温度 保持在的桌上,10 分钟后测得汤的温度为1000C。如果汤的温度低于550C才可以喝,问再过20分钟后这碗汤能喝了吗?,设物体在 时刻的温度为,从,温度从,注意到热量总是从温度高的物体向温度低的物体传导,因而,所以温度差 恒正,又因物体将随时间而

3、逐渐冷却,则温度的改变量为 两边除以,并令 得温度变化速度为,解:为了解决这一问题,需要了解有关热力学的一些基本规律.热量总是从温度高的物体向温度低的物体传导的;在一定的温度范围内,一个物体的温度变化速度与这个物体的温度和其所在介质温度的差值成正比。,其中 是比例常数.从而得出描述物体冷却过程的微分方程模型为 容易求出这个一阶微分方程初值问题的解为 根据问题所给的条件知,当时,得到将,代入,得,(7.1.1),(7.1.2),从而得到这碗汤的温度随时间变化的函数关系为 于是,将 代入计算得到再过20 min汤的温度,这说明再过20 min后这碗汤能喝了.不过,并不是所有的微分方程模型都可求出解

4、析解。例如,看似简单的微分方程,自德国数学家Wilhelmvon Leibniz提出100多年后才被法国数学家Joseph Liouville证明它没有解析解,只能借助于数值的方法求数值解.,(7.1.3),例7.2 某地区发现一种有免疫性的传染病,为了控制疫情扩散对该地人 群进行隔离处理.为了分析受感染人数的变化规律,需要建立描述传染 病传播过程的数学模型.解 设该地区的总人数为常数,任意时刻病人、健康人和病人治愈后 移出感染系统的移出者的比例分别为,病人的日接触率,日治愈率,则容易得出从 时刻,病人和健康人的改变量为,每个方程两边除以,并令,化简后得,(7.1.4),其中(对任意的 t).

5、,式()就是描述病人和健康人的比例 和 随时间变化的微分方程模型,这是一个微分方程组的初值问题.但是,这一初值问题的解析解是无法求出的,因此不能直接利用 和 的解析式来分析和解决问题。,在数学建模课程中学到的大量数学模型都是用微分方程形式给出的,各类微分方程本身和它们的解所具有的特性在常微分方程及数学物理方程中有所解释.虽然,求解微分方程有许多解析方法,但解析方法只能够求解一些特殊类型的方程,在实际应用中人们更关心的是某些特定的自变量在某一个定义范围内的一系列离散点上的近似值.这样一组近似解称为微分方程在该范围内的数值解,寻找微分方程数值解的过程称为微分方程的数值解法。,2 简单的数值方法与基

6、本概念,设 在区域 上连续,求 满足 其中 是已知常数,这就是一阶常微分方程的初值问题.为使问题()的解存在、唯一且连续依赖初值,即初值问题()适定,还必须对右端项 加以适当限制,通常要求 关于 是已知函数,且满足Lipschitz条件,即存在常数L,使,7.2.1 常微分方程初值问题,(7.2.1),(7.2.2),对所有 及 成立。本章总假定满足条件()。1.Euler方法的导出与几何意义 最简单的数值解法是Euler法。将区间 作N等分,小区间的长度 称为步长,点列 称为节点,。由已知初值,可算出 在 的导数。,7.2.2 Euler法及改进的Euler法,其中,并略去二阶小量,得,下面

7、用3种方法导出Euler法.本章用 表示函数 在 点 的精确值,表示 的近似值。,就是 的近似值。利用 可算出,如此下去可算 出 在所有节点上的值,它的一般递推公式为,(),1)幂级数展开法 利用Taylor展式,(),这就是Euler法。,实际上,初值问题()的解是xy平面上过点 的一条积分曲线。按Euler法,过初始点 作经过此点的积分曲线的切线(斜率为),沿切线取点(按式()计算)作为 的近似.然后,过 作经过此点的积分曲线的切线(斜率为),沿切线取点(按式()计算)作为 的近似.如此下去,即得一条以 为顶点的折线,这就是用Euler法得到的近似积分曲线,如图7-1所示.从几何图形上看,

8、越小,此折线逼近积分曲线越好,因此也称Euler法为Euler折线法。,Euler法有明显的几何意义:,2)数值微分法,利用向前差商近似导数,从而得出Euler法的一般递推公式,3)数值积分法,将初值问题()写成等价的积分形式:,取,得,用左矩形公式作为右端积分的近似,并用 替代,即得,从而也可得出Euler法的一般递推公式为,(7.2.5),2.改进的Euler方法,由Euler方法的数值积分导出法可知只要给出式()右端定积分的一种近似计算方法,就可得出初值问题()的一种数值求解方法。,如果用右矩形公式作为式()右端积分的近似,则可得,从而也可得出一般递推公式为,称式()为后退Euler法。

9、,(7.2.6),显然,改进的Euler法比Euler法精度更高。后退Euler法和改进的Euler法,由于未知数 同时出现在等式的两边,故称为隐式算法;如果未知数 由已知量直接计算(即不出现在等式右端),则称为显式算法。对于隐式算法,每步计算需要解关于 的方程,而这样的方程往往是非线性的,通常将初值取为,用迭代法求解,一般只需迭代几步即可收敛。一般先用显式公式计算一个初值,再用隐式公式迭代求解。,如果用梯形公式近似替代式()右端的定积分,则可得,从而得出一般递推公式为,称式()为改进的Euler法。,(7.2.7),如果先用显式Euler公式作预测,算出 再将 代入隐式梯形公式的右边作校正,

10、得到,从而可得,这种方法称为预估校正法。可以看到它是显示格式,迭代求解过程比隐式公式的简单。后面将看到,它的稳定性高于显式Euler法。,如果在区间,上对初值问题()的方程两边积分,则有,并用中矩形求积公式近似替代右端的定积分,则得出一般递推公式为,称式()为Euler中点公式。,(7.2.8),和,,这样的方法称为双步法(或,如果计算,的近似值,时只用到前一节点的值,,则从初值,样的方法称为单步法;而Euler中点公式计算,到前两个节点的值,多步法.多步法附加初值才能逐一计算出以后各节点的值。,出发可逐一计算出以后各节点的值,这,时需要用,二步法);计算,时需要用到前面多个节点值的方法称为,

11、7.2.3 截断误差与算法精度的阶,从Euler法的几何意义得知,由Euler法所得的折线明显偏离了积分曲线,可见此方法非常粗糙(即误差太大)。现在分析一下求解初值问题()的数值方法误差的来源。为使问题简化,不考虑因计算机字长限制引起的摄入误差。,在假设第 步计算是精确的前提下(即),第 步计算 的截断误差 称为局部截断误差。若某算法的局部截断误差为,即为 的同阶无穷小,则称该算法有 阶精度。若局部截断误差,则称 为误差主项,为误差主项系数。,1.Euler法的局部截断误差,由Euler法的一般递推公式和 的Taylor展式,得,所以,Euler法的局部截断误差为,即Euler法为1阶精度算法

12、,其误差主项为。,2.后退Euler法的局部截断误差,同理,由后退Euler法的一般递推公式,和 的Taylor展式,得,所以,后退Euler法的局部截断误差也是,即后退Euler法也是1阶精度算法,其误差主项为。,3.改进Euler法的局部截断误差,由改进Euler法的一般递推公式可得其局部截断误差为,所以,改进Euler法的局部截断误差为,即改进Euler法是2阶精度算法,其误差主项为。,4.整体截断误差,当然人们更关心的是近似解 的误差,即,称为整体截断误差.由 的Taylor展式与Euler法的一般递推公式相减,得,记,因 关于 满足Lipschitz条件,所以存在常数L,使得,以此递

13、推,得,注意到,于是,上式右端依赖于初始误差 和局部截断误差的上界R。对于Euler法,可取(C 是与n 无关的常数),若,即,则,所以,比局部截断误差低一阶。用同样的方法可以证明改进Euler法的整体截断误差的阶为,也比局部截断误差低一阶。,5.Euler算法的稳定性,在实际计算中,由于测量误差、舍入误差等因素的影响,初值 往往不能精确给出,其误差将依次传递下去。如果传递误差能够被控制,精确地说,传递误差连续依赖于初始误差,则称算法稳定;否则就说算法不稳定。显然,不稳定的算法是不能用的。下面仅考察Euler法的稳定性。,设从初值 和 算出的节点值分别为 和,则满足,两式相减,并令,则,从而,

14、(因)。,这说明 连续依赖初始误差,即Euler法稳定。,同样可证改进的Euler法也稳定。,例7.3 取步长,分别用Euler法、后退Euler法和中点法 求解初值问题:,解 步长,所以各节点,(1)因为 利用Euler法的计算公式,可得,(2)利用后退Euler法的计算公式,可解得的显示表达,于是,可得,(3)由中点法的计算公式,可知需要两个初值。在此,我们利用后退欧拉法计算的结果 再依次计算得,而该初值问题的解析解是 用它计算各节点的函数值,可得,将上述3种方法计算的结果同精确值对照,可以看出它们确实都是精确值的近似值,只是误差不一样。Euler法的误差较小,后退Euler法误差偏大,中

15、点法误差最小。,3 线性多步法,用Euler法计算节点 的近似值 时只用到前一节点的值,是线性的单步法.为了提高解的精度,需要构造线性多步法,其一般形式为,其中,和 是常数,且,和 不同时为0。按公式(7.3.1)计算 时,要用到前面 个节点的值,因此式(7.3.1)称为多步法(或 步法)。又因为方程(7.3.1)关于 是线性的,所以称为线性多步法。显然,若,则线性多步法(7.3.1)是显式的;若,则线性多步法(7.3.1)是隐式的.用线性多步法进行计算 时,除需要给定 外,还要附加初值,这可以用其他方法计算。由于多步法每计算一步用到的信息更多,因此希望由此构造出精度更高的算法。,7.3.1

16、数值积分法,将微分方程 在 上积分,得,(7.3.2),适当选取 个节点,作被积函数 的 次Lagrange插值多项式 并用 近似代替,就可得到形如式(7.3.1)的线性多步法。插值节点的不同取法就可得出不同的线性多步法。,1.Adams外插法,取 为节点,构造 的Lagrange插值多项式,则,其中是插值余项.将式()代入式(),得,舍去余项,并用 代替,即得,由此可见,Adams法的局部截断误差为,(7.3.3),(7.3.4),(7.3.5),(7.3.6),下面给出Adams法()的具体形式。假设前 个节点处的函数值已知,即 的近似值 已算出,从而函数值 也已知。这样,就可以利用 个数

17、据点,,构造被积函数 的 次插值多项式,其中 是Lagrange插值基函数.从而可得,(7.3.6),记,则有,这就是求解初值问题的Adams显式公式。是关于 和 的线性表达式,所以它是线性 步法。,在上述Adams显式公式的推导中,选用了,作为 插值节点,但构造的 次插值多项式 是代替区 间 上的未知函数,因此属于“外插”,称为 Adams外插法,也称为Adams-Bashorth法.显然,当 时,Adams外插法就是Euler法。,2.Adams内插法,如果将Adams外插法推导过程中的节点改为,公式(7.3.7)就相应地变为,由于式(7.3.8)右端含有(可能是非线性表达式),所以式(7

18、.3.8)属于隐式公式,称为Adams隐式公式,且插值区间包含了积分区间,因此属于“内插”,称为Adams内插法,也称为Adams-Moulton法。显然,当 时,Adams内插法就是改进的Euler法。,表7-1和表7-2分别给出了当 时Adams显式公式和隐式公式的系数值。,(7.3.8),表7-1Adams外插法系数值,表7-2Adams内插法系数值,利用插值多项式的余项可以求出Adams法的局部截断误差,对指定的,表7-3 列出了它们的局部截断误差主项。,表7-3Adams法(步)的局部截断误差主项,应该指出,用数值积分法只能构造一类特殊的多步法,其系数满足,(当)。,下面介绍更为一般

19、的待定系数法。,待定系数法,为了分析一般线性多步法的局部截断误差,令,设 是初值问题的解,将 和 在点 用Taylor公式展开,代入式()按 的同次幂合并同类项,得,其中,若 有 次连续微商,则可选取足够大的 和,使,而,,即选取,满足,此时,有,令,则,(7.3.10),于是,由满足线性方程组()的,得到的线性多步法()的局部截断误差为,可以证明此线性多步法的整体截断误差的阶是,所以此线性多步法为 阶 步法。显然,的大小和 有关。,因为线性多步法(7.3.1)可以相差一个非零乘数,所以不妨设。当 时,可用 直接表示,称为显式法;反之,当 时,求 需要解一个方程(一般用迭代法),称为隐式法.用

20、待定系数法构造线性多步法的一个基本要求是选取,使局部截断误差的阶尽可能高。,1.Milne方法,作为待定系数法的一个应用,下面讨论一般的2步法。此时,其余5个系数 由 确定,即,其中 为任意常数。,所以,一般的2步法为,(),由,得,这是4阶2步法,是具有最高阶的2步法,称之为Milne方法,,(),所以,当 时,此时的2步法(7.3.11)是3阶2步法;当 时,但,此时方法(7.3.11)化为,这一方法也可用Simpson公式导出.此外,若取,则2步法(7.3.11)为2步Adams内插法;若取,则2步法(7.3.11)为显式法.,它的余项为,2.Hmaming方法,用待定系数法容易求出,4

21、阶3步的公式,这就是著名的4阶Hmaming公式,它的余项为,更多常用的线性多步法和多步法计算中的问题等可以阅读相关参考文献,在此不再赘述.关于线性多步法的稳定性、收敛性和误差估计,以及绝对稳定性和相对稳定性等基本理论问题也请参阅相关的参考文献。,(),4 非线性高阶单步法Runge-Kutte法,Euler法是最简单的单步法,单步法不需要附加初值,所需的存储量小,改变步长灵活,但是线性单步法的阶最多是2.本节介绍非线性(关于)高阶单步法,主要介绍Runge-Kutta法.,7.4.1 泰勒展开法,设初值问题()的解充分光滑,将在点用Taylor公式展开,其中 是介于 与 之间的常数,是未知函

22、数在点的阶导数,但它的值可以利用微分方程本身来计算:,舍去式(7.4.1)中的含有的项,则得到求解初值问题的非线性单步法:,(7.4.3),其中 按式(7.4.2)来计算.这一方法的局部截断误差为,因此,它是非 线性阶单步法.,由于需要计算 的高阶偏导数,计算量太大,所以一般不用式(7.4.3)作数值计算,但可用它计算附加初值.,7.4.2 Runge-Kutta法,,,将初值问题在区间上写成积分形式:,同样,利用Euler法又可以算出,其中,(7.4.7),(7.4.8),下面推导一些常用的计算方案.将,展开 到,的3次幂:,于是,由R-K法得,1.一级R-K法,可见一级R-K法就是Eule

23、r法.,2.二级R-K法,令,,此时,,于是,与,比较,的系数,得,它有无穷多组解,从而有无穷多个二级二阶R-K算法.两个常见的方法分别如下:,称此为中点法,这是一种修正的Euler法.,3.三级R-K法,4个方程不能完全确定2个系数,含有2个自由参数,因此有无穷多个三级三阶R-K算法.,仅列举两个常见的方法:,(7.4.9),称此为Heun三阶方法.,(7.4.10),4.四级R-K法,(7.4.11),和,(7.4.12),这是最常用的四阶R-K法,称为标准(或经典)R-K法.,但是,它需要计算,的次数比预估-校正法多.这里介绍的R-K法都是,仿此,还可以构造出更多的算法,容易,阶R-K法

24、整体截断误差,.R-K法和预估-校正法是求解常微分方程初值问题,证明的阶为,的两大类有效数值方法.R-K法的绝对稳定域一般比预估-校正法的大,,显式的,为了进一步改善稳定域,可采用隐式R-K法(请参考相关文献).,解 为了比较3种方法的计算精度,将Euler法的步长取为0.025,改进的Euler法的步长取为0.05,R-K方法的步长取为0.1,则3种方法的变量每增加0.1时,都需要计算4个函数值.现将计算结果列于表7-4中.,从计算结果可以看出,标准R-K方法比另外两种方法的精度好很多。在,处,3种方法的误差分别是,表7-4 例7.4的3种计算结果比较,解,利用标准的R-K公式,依次计算:(

25、1)当,时,,接下来,利用修正的Milne-Hamming组成的预估校正法公式,依次计算:,5 一阶方程组和高阶方程的初值问题,前面研究了单个方程 初值问题的数值解法,只要把 和 理解为向量,那么,所提供的各种计算公式即可应用到一阶方程组的情形.,含个方程的一阶方程组初值问题的一般形式为,(7.5.1),如果实际问题不是一阶方程组而是高阶方程,也可以把它化为一阶方程组.,例如,m阶微分方程,(7.5.2),只要引进新变量组,式(7.5.2)就可化为一阶方程组,(7.5.3),这种转化不仅是理论上的需要,在计算上也可能更为方便.,引进向量记号:,则式(7.5.1)可写为向量形式,(7.5.4),

26、若关于满足Lipschitz条件,则初值问题(7.5.1)有唯一解。,(7.5.5),其中 是标量,是向量值算子。,例如,解方程组初值问题的线性多步法为,前面介绍的线性多法、预估-校正法和R-K法都可以直接推广到一阶方程组,这只需用向量代替相应的标量。所有关于阶、相容性、稳定性和收敛性的定义和结论都可推广到方程组,而将绝对值符号 换成m维欧氏空间向量的模。,6 常微分方程边值问题的数值解法,常微分方程边值问题的一般形式为:求函数,使之满足,(7.6.1),常微分方程边值问题的基本数值解法分为两类,一类是将它转化成初值问题来求解,第二类方法是利用数值微商的方法将它转化成线性或非线性方程组求解。,

27、7.6.1试射法,将边值问题转化成如下形式初值问题:,(7.6.2),即依据边值条件寻求与它等价的初始条件:,然后,令,,从而使问题(7.6.2)转化为一阶微分方程组,最后,令,其中,这样方程组(7.6.3)就具有如下形式:,(7.6.4),显然,方程组(7.6.4)与标准的常微分方程初值问题(7.2.1)具有相同的形式,因而,所有阿求解初值问题(7.2.1)的方法都可以用来求解方程组(7.6.4)。所不同的是,只需要把原公式中等分别换成向量。下面以Euler法为例说明试射法的基本方法,并用例子说明标准R-K方法的试射法求解过程。,或用分量形式表示成,因此,利用试射法求解边值问题的关键是如何把

28、边值条件转化为等价的初值条件,即确定。具体方法如下:,(1)凭经验提供 的两个预测值,,并按这两个斜率值“试射”。,所谓试射,就是按上述试射法的基本步骤分别求解对应的初值问题。假设它们的解为,,计算,以得到,的两个近似值。,(2)如果,均不满足预定的精度,就用线性插值方法校正,,即选择新的斜率值,将Euler法写成相应的向量形式为,即利用 再选择新的斜率值。重复上述计算过程,直到找到合适的斜率值的近似值,显然在该初值条件下得到的初值问题的解也是原问题(7.6.1)的解。,(3)用 试射,又会得到对应的初值问题的解,和,的近似值。,如果,不满足预定的精度,回到计算过程(2),,和,解 假设,则对

29、应一阶微分方程组初值问题为,例7.6以标准R-K方法为基础,用试射法求解如下问题:,选取,的近似值,,用标准R-K方法求解上述方,再选取,的近似值,,用标准R-K方法求解上述方程组,求得,由,作线性插值,计算,的新的近似值,程组,求得,并由此得,由,作线性插值,计算,的新的近似值,并由此得,由,作线性插值,计算,的新的近似值,计算得,算法终止。这时所得到的原问题边值问题的数值解如下:,1.差分法的计算步骤 为求解边值问题(7.6.1),差分法的思想是用向前差商,代替。,或向后差商,或中心差商,代替方程中的导数;,用二阶差商,然后将所得方程的,取离散的字节,即得到关于,的方程组,求解该方程组便得

30、边值问题的数值解。,7.6.2差分法,下面介绍利用差分法求解如下一类典型的常微分方程边值问题的计算过程:,(7.6.5),其中,是已知函数,,,,,为已知值。,差分法求解问题(7.6.5)的计算过程如下:,(1)把区间,分为等份,选取步长,,计算各节点,(2)将边值问题离散化为差分方程,(7.6.6),其解 即为原边值问题(7.6.5)的数值解,局部截断误差 为,或,(7.6.7),,称式(7.6.7)为逼近边值问题(7.6.5)的,差分方程;(3)利用追赶法求解对角占优的三对角线性方程组(7.6.7),,其中,是介于,与,之间的常数。,例7.7用差分法解边值问题(步长):,解 因为步长,,所

31、以。,边值问题的逼近差分方程为,即如下三对角线性方程组,解之得,2.差分法的收敛性 为了研究差分法的收敛性,我们先介绍下述极值原理。,定理7.1(极值原理)对于一组不全相等的数,记,如果,,那么非负的,的最大值必为,或;,如果,,,那么非正的,的最小值必为,或。,证 用反证法。假设在,中存在,,使得,则,这与条件,矛盾,故结论成立。,的情形类似可证.,定理7.2 如果两组数,和,满足条件:,其中,则必有,,,证 因为,或,所以,由极值原理知,即,利用上述结论可以证明差分方程的收敛性定理.,定理7.3 设,是差分方程(7.6.5)的数值解,则截断误差,其中,证,N时,,显然结论成立。,对,,由T

32、aylor展开式有,其中,。又,将两式相减,得,因为上述差分方程中,未知,我们考虑如下差分方程:,(),由于,所以,因为,故由极值原理知,即,因为差分方程(7.6.8)仍很难求出,我们考虑如下的简单差分方程:,(7.6.9),这里,,由极值原理可以证明。,显然,差分方程(7.6.9)对应着如下边值问题:,(7.6.10),其解为,从而得到要证明的结论.,根据上述定理知,,时,,,即差分法是收敛的.,习题7,1.用改进的Euler算法求解:,2.取步长,,用标准四阶R-K方法求解初值问题:,并将计算结果与精确解比较。,3.用Euler法、隐式Euler法、梯形法求解,取,,计算到,,并与精确解比较。,4.用经典四阶R-K方法解初值问题,取,,计算到,,并与改进Euler法、梯形法在,处比较其误差大小。,中南大学数学科学与计算技术学院,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号