第七章-常微分方程数值解_第1页
第七章-常微分方程数值解_第2页
第七章-常微分方程数值解_第3页
第七章-常微分方程数值解_第4页
第七章-常微分方程数值解_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章常微分方程的数值解法,7.1引言包含自变量、未知函数及未知函数的导数或微分的方程称为微分方程。在微分方程中,自变量的个数只有一个,称为常微分方程.。自变量的个数为两个或两个以上的微分方程叫偏微分方程。微分方程中出现的未知函数最高阶导数的阶数称为微分方程的阶数。如果未知函数y及其各阶导数都是一次的,则称它是线性的,否则称为非线性的。,在高等数学中,对于常微分方程的求解,给出了一些典型方程求解析解的基本方法,如可分离变量法、常系数齐次线性方程的解法、常系数非齐次线性方程的解法等。但能求解的常微分方程仍然是有限的,大多数的常微分方程是不可能给出解析解。譬如,这个一阶微分方程就不能用初等函数及其积分来表达它的解。,再如,方程,的解,虽然有表可查,但对于表上没有给出的值,仍需插值方法来计算,从实际问题当中归纳出来的微分方程,通常主要依靠数值解法来解决。本章主要讨论一阶常微分方程初值问题,(7.1),在区间axb上的数值解法。,可以证明,如果函数在带形区域R=axb,-y内连续,且关于y满足李普希兹(Lipschitz)条件,即存在常数L(它与x,y无关)使,对R内任意两个都成立,则方程(7.1)的解在a,b上存在且唯一。,数值方法的基本思想对常微分方程初值问题(7.1)式的数值解法,就是要算出精确解y(x)在区间a,b上的一系列离散节点处的函数值的近似值。相邻两个节点的间距称为步长,步长可以相等,也可以不等。本章总是假定h为定数,称为定步长,这时节点可表示为数值解法需要把连续性的问题加以离散化,从而求出离散节点的数值解。,对常微分方程数值解法的基本出发点就是离散化。其数值解法有两个基本特点,它们都采用“步进式”,即求解过程顺着节点排列的次序一步一步地向前推进,描述这类算法,要求给出用已知信息计算的递推公式。建立这类递推公式的基本方法是在这些节点上用数值积分、数值微分、泰勒展开等离散化方法,对初值问题中的导数进行不同的离散化处理。,对于初值问题的数值解法,首先要解决的问题就是如何对微分方程进行离散化,建立求数值解的递推公式。递推公式通常有两类,一类是计算yi+1时只用到xi+1,xi和yi,即前一步的值,因此有了初值以后就可以逐步往下计算,此类方法称为单步法;其代表是龙格库塔法。另一类是计算yi+1时,除用到xi+1,xi和yi以外,还要用到,即前面k步的值,此类方法称为多步法;其代表是亚当斯法。,7.2欧拉(Euler)法7.2.1Euler公式欧拉(Euler)方法是解初值问题的最简单的数值方法。初值问题的解y=y(x)代表通过点的一条称之为微分方程的积分曲线。积分曲线上每一点的切线的斜率等于函数在这点的值。,Euler法的求解过程是:从初始点P0(即点(x0,y0)出发,作积分曲线y=y(x)在P0点上切线(其斜率为),与x=x1直线,相交于P1点(即点(x1,y1),得到y1作为y(x1)的近似值,如上图所示。过点(x0,y0),以f(x0,y0)为斜率的切线方程为当时,得,这样就获得了P1点的坐标。,同样,过点P1(x1,y1),作积分曲线y=y(x)的切线交直线x=x2于P2点,切线的斜率=直线方程为,当时,得,当时,得,由此获得了P2的坐标。重复以上过程,就可获得一系列的点:P1,P1,Pn。对已求得点以=为斜率作直线,取,从图形上看,就获得了一条近似于曲线y=y(x)的折线。,这样,从x0逐个算出对应的数值解,通常取(常数),则Euler法的计算格式,i=0,1,n(7.2),还可用数值微分、数值积分法和泰勒展开法推导Euler格式。以数值积分为例进行推导。将方程的两端在区间上积分得,,选择不同的计算方法计算上式的积分项,就会得到不同的计算公式。,(7.3),用左矩形方法计算积分项,代入(7.3)式,并用yi近似代替式中y(xi)即可得到向前欧拉(Euler)公式,由于数值积分的矩形方法精度很低,所以欧拉(Euler)公式当然很粗糙。,例1用欧拉法解初值问题,取步长h=0.2,计算过程保留4位小数,解:h=0.2,欧拉迭代格式,当k=0,x1=0.2时,已知x0=0,y0=1,有y(0.2)y1=0.21(401)0.8当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有y(0.4)y2=0.20.8(40.20.8)0.6144当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有y(0.6)y3=0.20.6144(4-0.40.6144)=0.4613,7.2.2梯形公式为了提高精度,对方程的两端在区间上积分得,改用梯形方法计算其积分项,即,(7.4),代入(7.4)式,并用近似代替式中即可得到梯形公式,(7.5),由于数值积分的梯形公式比矩形公式的精度高,因此梯形公式(7.5)比欧拉公式(7.2)的精度高一个数值方法。,(7.5),(7.5)式的右端含有未知的yi+1,它是一个关于yi+1的函数方程,这类数值方法称为隐式方法。相反地,欧拉法是关于yi+1的一个直接的计算公式,这类数值方法称为显式方法。,欧拉法的局部截断误差衡量求解公式好坏的一个主要标准是求解公式的精度,因此引入局部截断误差和阶数的概念。定义7.1在yi准确的前提下,即时,用数值方法计算yi+1的误差,称为该数值方法计算时yi+1的局部截断误差。对于欧拉公式,假定,则有,而将真解y(x)在xi处按二阶泰勒展开,因此有,定义7.2数值方法的局部截断误差为,则称这种数值方法的阶数是P。步长(hN结束。,(2)改进欧拉法的流程图,(3)程序实现(见附录AA-15改进欧拉法计算常微分方程初值问题),例7.2用改进欧拉法解初值问题,区间为0,1,取步长h=0.1,解:改进欧拉法的具体形式,本题的精确解为,计算见P158列表所示,例7.3对初值问题,证明用梯形公式求得的近似解为,并证明当步长h0时,yn收敛于精确解证明:解初值问题的梯形公式为,整理成显式,反复迭代,得到,由于,有,证毕,7.3龙格-库塔(Runge-Kutta)法7.3.1龙格-库塔(Runge-Kutta)法的基本思想Euler公式可改写成,则yi+1的表达式y(xi+1)与的Taylor展开式的前两项完全相同,即局部截断误差为。改进的Euler公式又可改写成,上述两组公式在形式上有一个共同点:都是用f(x,y)在某些点上值的线性组合得出y(xi+1)的近似值yi+1,而且增加计算的次数f(x,y)的次数,可提高截断误差的阶。如欧拉公式:每步计算一次f(x,y)的值,为一阶方法。改进欧拉公式需计算两次f(x,y)的值,它是二阶方法。它的局部截断误差为。,于是可考虑用函数f(x,y)在若干点上的函数值的线性组合来构造近似公式,构造时要求近似公式在(xi,yi)处的Taylor展开式与解y(x)在xi处的Taylor展开式的前面几项重合,从而使近似公式达到所需要的阶数。既避免求偏导,又提高了计算方法精度的阶数。或者说,在这一步内多预报几个点的斜率值,然后将其加权平均作为平均斜率,则可构造出更高精度的计算格式,这就是龙格库塔(Runge-Kutta)法的基本思想。,7.3.2二阶龙格库塔法在上取两点xi和,以该两点处的斜率值k1和k2的加权平均(或称为线性组合)来求取平均斜率k*的近似值K,即,式中:k1为xi点处的切线斜率值,k2为点处的切线斜率值,比照改进的欧拉法,将视为,即可得,对常微分方程初值问题(7.1)式的解y=y(x),根据微分中值定理,存在点,使得,式中,K可看作是y=y(x)在区间上的平均斜率。所以可得计算公式为:,(7.14),将y(xi)在x=xi处进行二阶Taylor展开:,(7.15),也即,(7.13),将在x=xi处进行一阶Taylor展开:,将以上结果代入(7.14)得:,(7.16),对式(7.15)和(7.16)进行比较系数后可知,只要,(7.17),成立,格式(7.14)的局部截断误差就等于,有2阶精度,式(7.17)中具有三个未知量,但只有两个方程,因而有无穷多解。若取,则p=1,这是无穷多解中的一个解,将以上所解的值代入式(7.14)并改写可得,不难发现,上面的格式就是改进的欧拉格式。凡满足条件式(7.17)有一簇形如上式的计算格式,这些格式统称为二阶龙格库塔格式。因此改进的欧拉格式是众多的二阶龙格库塔法中的一种特殊格式。,若取,则,此时二阶龙格-库塔法的计算公式为,此计算公式称为变形的二阶龙格库塔法。式中为区间的中点。,7.3.3三阶龙格-库塔法,为了进一步提高精度,设除外再增加一点,并用三个点,的斜率k1,k2,k3加权平均得出平均斜率k*的近似值,这时计算格式具有形式:,(7.18),为了预报点的斜率值k3,在区间内有两个斜率值k1和k2可以用,可将k1,k2加权平均得出上的平均斜率,从而得到的预报值,于是可得,运用Taylor展开方法选择参数,可以使格式(7.18)的局部截断误差为,即具有三阶精度,这类格式统称为三阶龙格库塔方法。下列是其中的一种,称为库塔(Kutta)公式。,(7.19),7.4.4四阶龙格库塔法,如果需要再提高精度,用类似上述的处理方法,只需在区间上用四个点处的斜率加权平均作为平均斜率k*的近似值,构成一系列四阶龙格库塔公式。具有四阶精度,即局部截断误差是。由于推导复杂,这里从略,只介绍最常用的一种四阶经典龙格库塔公式。,(7.20),7.4.5四阶龙格库塔法算法实现(1)计算步骤输入,h,N使用龙格库塔公式(7.20)计算出y1输出,并使转到直至nN结束。,(2)四阶龙格库塔算法流程图,程序实现(见附录AA-16四阶龙格-库塔法计算常微分方程初值问题),例7.4取步长h=0.2,用经典格式求解初值问题,解:由四阶龙格-库塔公式可得,可同样进行其余yi的计算。本例方程的解为,数值解yi与准确解y(xi)的对照表见教材P163所示,从表中看到所求的数值解具有4位有效数字。,龙格库塔方法的推导基于Taylor展开方法,因而它要求所求的解具有较好的光滑性。如果解的光滑性差,那么,使用四阶龙格库塔方法求得的数值解,其精度可能反而不如改进的欧拉方法。在实际计算时,应当针对问题的具体特点选择合适的算法。,7.4亚当姆斯方法7.4.1亚当姆斯格式龙格-库塔方法是一类重要算法,但这类算法在每一步都需要先预报几个点上的斜率值,计算量比较大。考虑到计算yi+1之前已得出一系列节点上的斜率值,能否利用这些已知值来减少计算量呢?这就是亚当姆斯(Adams)方法的设计思想。,设用xi,xi+1两点的斜率值加权平均作为区间上的平均斜率,有计算格式,(7.21),选取参数,使格式(7.21)具有二阶精度。,将在xi处Taylor展开,代入计算格式(7.21)化简,并假设,因此有,与y(xi+1)在xi处的Taylor展开式,相比较,需取,才使格式(7.21)具有二阶精度。这样导出的计算格式,称之为二阶亚当姆斯格式。类似地可以导出三阶亚当姆斯格式。,和四阶亚当姆斯格式。,(7.22),这里和下面均记,上述几种亚当姆斯格式都是显式的,算法比较简单,但用节点的斜率值来预报区间上的平均斜率是个外推过程,效果不够理想。为了进一步改善精度,变外推为内插,即增加节点xi+1的斜率值来得出上的平均斜率。譬如考察形如,(7.23),的隐式格式,设(7.23)右端的Taylor展开有,可见要使格式(7.23)具有二阶精度,需令,这样就可构造二阶隐式亚当姆斯格式,其实是梯形格式。类似可导出三阶隐式亚当姆斯格式,和四阶隐式亚当姆斯格式,(7.24),7.5.2亚当姆斯预报-校正格式参照改进的欧拉格式的构造方法,以四阶亚当姆斯为例,将显式(7.22)和隐式(7.24)相结合,用显式公式做预报,再用隐式公式做校正,可构成亚当姆斯预报-校正格式,(7.25),预报:,校正:,这种预报-校正格式是四步法,它在计算yi+1时不但用到前一步的信息,而且要用到再前面三步的信息,因此它不能自行启动。在实际计算时,可借助于某种单步法,譬如四阶龙格库塔法提供开始值。,例7.5取步长h=0.1,用亚当姆斯预报-校正公式求解初值问题,的数值解。,解:用四阶龙格-库塔公式求出发值,计算得:,表中的,yi和y(xi)分别为预报值、校正值和准确解(),以比较计算结果的精度。,再使用亚当姆斯预报-校正公式(7.25),见教材P166列表算得其余的计算结果,7.5一阶常微分方程组与高阶方程我们已介绍了一阶常微分方程初值问题的各种数值解法,对于一阶常微分方程组,可类似得到各种解法,而高阶常微分方程可转化为一阶常微分方程组来求解。7.5.1一阶常微分方程组对于一阶常微分方程组的初值问题,(5.1),可以把单个方程中的f和y看作向量来处理,这样就可把前面介绍的各种差分算法推广到求一阶方程组初值问题中来。,设为节点上的近似解,则有改进的Euler格式为,预报:,校正:,(7.32),又,相应的四阶龙格库塔格式(经典格式)为,(7.33),式中,(7.34),把节点xi上的yi和zi值代入式(7.34),依次算出,然后把它们代入式(7.33),算出节点xi+1上的yi+1和zi+1值。对于具有三个或三个以上方程的方程组的初值问题,也可用类似方法处理,只是更复杂一些而已。此外,多步方法也同样可以应用于求解方程组初值问题。,例7.6用改进的Euler法求解初值问题,取步长h=0.1,保留六位小数。,解:改进的Euler法公式为,预报:,校正:,将及h=0.1代入上式,得,由初值,计算得,7.5.2高阶方程组高阶微分方程(或方程组)的初值问题,原则上都可以归结为一阶方程组来求解。例如,有二阶微分方程的初值问题,在引入新的变量后,即化为一阶方程组初值问题:,式(7.36)为一个一阶方程组的初值问题,对此可用7.7.1中介绍的方法来求解。例如应用四阶龙格-库塔公式得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论