常微分方程初值问题数值解法.ppt
《常微分方程初值问题数值解法.ppt》由会员分享,可在线阅读,更多相关《常微分方程初值问题数值解法.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、常微分方程初值问题数值解法现在学习的是第1页,共81页 在高等数学中,对于常微分方程的求解,给出了在高等数学中,对于常微分方程的求解,给出了一些典型方程求解析解的基本方法,如可分离变量法一些典型方程求解析解的基本方法,如可分离变量法、常系数齐次线性方程的解法、常系数非齐次线性方、常系数齐次线性方程的解法、常系数非齐次线性方程的解法等。程的解法等。但能求解的常微分方程仍然是有限的,但能求解的常微分方程仍然是有限的,大多数的常微分方程是不可能给出解析解。大多数的常微分方程是不可能给出解析解。譬如譬如 22yxy 这个一阶微分方程就不能用初等函数及其积分来表这个一阶微分方程就不能用初等函数及其积分来
2、表达它的解。达它的解。现在学习的是第2页,共81页再如,方程再如,方程 1)0(yyy的解的解 ,虽然有表可查虽然有表可查,但对于表上但对于表上没有给出没有给出 的值的值,仍需插值方法来计算仍需插值方法来计算xey xe现在学习的是第3页,共81页从实际问题当中归纳出来的微分方程,通常主要依靠从实际问题当中归纳出来的微分方程,通常主要依靠数值解法来解决。本章主要讨论一阶常微分方程初值数值解法来解决。本章主要讨论一阶常微分方程初值问题问题 00)(),(yxyyxfy(9.1)在区间在区间a x ba x b上的数值解法上的数值解法。可以证明可以证明,如果函数在带形区域如果函数在带形区域 R=a
3、xb,R=axb,-y y内连续,且关于内连续,且关于y y满足李普希兹满足李普希兹(Lipschitz)(Lipschitz)条件,即存在常数条件,即存在常数L(L(它与它与x,yx,y无关无关)使使 2121),(),(yyLyxfyxf对对R内任意两个内任意两个 都成立都成立,则方程则方程(9.1)的解的解 在在 a,b 上存在且唯一。上存在且唯一。21,yy)(xyy 现在学习的是第4页,共81页数值方法的基本思想数值方法的基本思想 对常微分方程初值问题对常微分方程初值问题(9.1)式的数值解法,就是式的数值解法,就是要算出精确解要算出精确解y(x)y(x)在区间在区间 a,b 上的一
4、系列离散节点上的一系列离散节点 处的函数值处的函数值 的近似值的近似值。相邻两个节点的间距。相邻两个节点的间距 称为步长,步称为步长,步长可以相等,也可以不等。本章总是假定长可以相等,也可以不等。本章总是假定h为定数,称为定数,称为为定步长定步长,这时节点可表示为,这时节点可表示为数值解法需要把连续性的问题加以离散化,从而求出数值解法需要把连续性的问题加以离散化,从而求出离散节点的数值解。离散节点的数值解。bxxxxann110)(,),(),(10nxyxyxynyyy,10iixxh1niihxxi,2,1 ,0现在学习的是第5页,共81页 对常微分方程数值解法的对常微分方程数值解法的基本
5、出发点就是离散化。其基本出发点就是离散化。其数值解法有两个基本特点,它们都采用数值解法有两个基本特点,它们都采用“步进式步进式”,即求解,即求解过程顺着节点排列的次序一步一步地向前推进,描述这类过程顺着节点排列的次序一步一步地向前推进,描述这类算法,要求给出用已知信息算法,要求给出用已知信息 计算计算 的递推公式的递推公式。建立这类。建立这类递推公式的基本方法是在这些节点上用递推公式的基本方法是在这些节点上用数值积分、数值数值积分、数值微分、泰勒展开等离散化方法微分、泰勒展开等离散化方法,对初值问题,对初值问题中的导数中的导数 进行不同的离散化处理进行不同的离散化处理。021,yyyyiii1
6、iyy00)(),(yxyyxfy现在学习的是第6页,共81页对于初值问题对于初值问题的数值解法,首先要解决的问题就是的数值解法,首先要解决的问题就是如何如何对微分方程进对微分方程进行离散化,建立求数值解的递推公式。递推公式通常有行离散化,建立求数值解的递推公式。递推公式通常有两类,一类是计算两类,一类是计算yi+1时只用到时只用到xi+1,xi 和和yi,即前一步的值,即前一步的值,因此有了初值以后就可以逐步往下计算,此类方法称为,因此有了初值以后就可以逐步往下计算,此类方法称为单步法单步法;其代表是;其代表是龙格龙格库塔库塔法。另一类是计算法。另一类是计算y yi+1i+1时,除时,除用到
7、用到x xi+1i+1,x,xi i和和y yi i以外,还要用到以外,还要用到,即前面,即前面k步的值,此类方法称为步的值,此类方法称为多步法多步法;其代表;其代表是亚当斯法。是亚当斯法。00)(),(yxyyxfy),2,1(,kpyxpipi现在学习的是第7页,共81页9.2 简单的数值方法与基本概念简单的数值方法与基本概念9.2.1 Euler公式公式 欧拉(欧拉(Euler)方法是解初值问题的最简单)方法是解初值问题的最简单的数值方法。初值问题的数值方法。初值问题的解的解y=y(x)y=y(x)代表通过点代表通过点 的一条称之为微分的一条称之为微分方程的积分曲线。积分曲线上每一点方程
8、的积分曲线。积分曲线上每一点 的切线的斜率的切线的斜率 等于函数等于函数 在这在这点的值。点的值。00)(),(yxyyxfy),(00yx),(yx)(xy),(yxf现在学习的是第8页,共81页 Pi+1 Pn y=y(x)P1 Pi Pn Pi+1 P0 x0 x1 xi xi+1 xn Pi P1 Euler法的求解过程是法的求解过程是:从初始点从初始点P0(即点即点(x(x0 0,y,y0 0)出发出发,作积分曲线作积分曲线y=y(x)y=y(x)在在P0点上切点上切线线 (其斜率为其斜率为 ),),与与x=xx=x1 1直线直线10PP),()(000yxfxy相交于相交于P1点点
9、(即点即点(x(x1 1,y,y1 1),),得到得到y y1 1作为作为y(xy(x1 1)的近似值的近似值,如上如上图所示。过点图所示。过点(x(x0 0,y,y0 0),),以以f(xf(x0 0,y,y0 0)为为斜率的切线方程为斜率的切线方程为 当当 时时,得得 )(,(0000 xxyxfyy1xx)(,(010001xxyxfyy这样就获得了这样就获得了P P1 1点的坐标。点的坐标。现在学习的是第9页,共81页 Pi+1 Pn y=y(x)P1 Pi Pn Pi+1 P0 x0 x1 xi xi+1 xn Pi P1 同样同样,过过点点P1(x x1 1,y,y1 1),),作
10、积分曲线作积分曲线y=y(x)y=y(x)的切线的切线交直线交直线x=xx=x2 2于于P2点点,切线切线 的斜率的斜率 =直线方程为直线方程为21PP)(1xy),(11yxf)(,(1111xxyxfyy)(,(121112xxyxfyy当当 时时,得得 2xx 现在学习的是第10页,共81页当当 时时,得得 Pi+1 Pn y=y(x)P1 Pi Pn Pi+1 P0 x0 x1 xi xi+1 xn Pi P1 由此获得了由此获得了P P2 2的坐标。重复以上过程的坐标。重复以上过程,就可获得一系列的点就可获得一系列的点:P P1 1,P P1 1,P Pn n。对已求得点对已求得点以
11、以 =为斜率作直线为斜率作直线 ),(nnnyxP)(nxy),(nnyxf)(,(nnnnxxyxfyy1nxx)(,(11nxnnnnxxyxfyynnyxy)(取取现在学习的是第11页,共81页 从图形上看从图形上看,就获得了一条近似于曲线就获得了一条近似于曲线y=y(x)y=y(x)的折线的折线 。Pi+1 Pn y=y(x)P1 Pi Pn Pi+1 P0 x0 x1 xi xi+1 xn Pi P1 这样这样,从从x x0 0逐个算出逐个算出对应的数值解对应的数值解 nxxx,21nyyy,21nPPPP321现在学习的是第12页,共81页通常取通常取 (常数常数),),则则Eul
12、er法的计算格式法的计算格式 hhxxiii1)(),(001xyyyxhfyyiiii i=0,1,n (9.2)还可用还可用数值微分数值微分、数值积分法数值积分法和和泰勒展开法泰勒展开法推导推导EulerEuler格格式。以数值积分为例进行推导。式。以数值积分为例进行推导。将方程将方程 的两端在区间的两端在区间 上积分得,上积分得,),(yxfy 1,iixx11),(iiiixxxxdxyxfdxy11)(,)(),()()(1iiiixxixxiidxxyxfxydxyxfxyxy 选择不同的计算方法计算上式的积分项选择不同的计算方法计算上式的积分项 ,就会得到不同的计算公式。就会得到
13、不同的计算公式。1)(,iixxdxxyxf(9.3)现在学习的是第13页,共81页 用左矩形方法计算积分项用左矩形方法计算积分项 )(,)()(,11iiiixxxyxfxxdxxyxfii代入代入(9.3)(9.3)式式,并用并用y yi i近似代替式中近似代替式中y(xy(xi i)即可得到向前欧即可得到向前欧拉(拉(EulerEuler)公式)公式 ),(1iiiiyxhfyy 由于数值积分的矩形方法精度很低,所以欧拉(由于数值积分的矩形方法精度很低,所以欧拉(EulerEuler)公式当然很粗糙。)公式当然很粗糙。现在学习的是第14页,共81页例例9.1 用欧拉法解初值问题用欧拉法解
14、初值问题 1)0()6.00(2yxxyyy取步长取步长h=0.2,h=0.2,计算过程保留计算过程保留4 4位小数位小数 解解:h=0.2,:h=0.2,欧拉迭代格式欧拉迭代格式 2),(xyyyxf21),(iiiiiiiiyhxhyyyxhfyy)2,1,0()4(2.0iyxyiii当当 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,y
15、2=0.6144,有,有 y(0.6)y3=0.20.6144(4-0.40.6144)=0.4613 现在学习的是第15页,共81页0.1,2,01)(0)1,hEulerxyyxyy 取利用公式求解(例例 .2.01.1)2(1计算及结果如下解:nnnnnnnnyxyyxyhyyclear;y=1,x=0,%初始化for n=1:10 y=1.1*y-0.2*x/y,x=x+0.1,endy=1 x=0 y=1.1000 x=0.1000y=1.1918 x=0.2000y=1.2774 x=0.3000y=1.3582 x=0.4000y=1.4351 x=0.5000y=1.5090
16、x=0.6000y=1.5803 x=0.7000y=1.6498 x=0.8000y=1.7178 x=0.9000y=1.7848 x=1.0000现在学习的是第16页,共81页9.2.2 梯形公式梯形公式为了提高精度为了提高精度,对方程对方程 的两端在区间上的两端在区间上 积分得,积分得,改用梯形方法计算其积分项,即改用梯形方法计算其积分项,即 ),(yxfy 1,iixx1)(,)()(1iixxiidxxyxfxyxy)(,()(,(2)(,1111iiiiiixxxyxfxyxfxxdxxyxfii(9.4)代入代入(7.4)(7.4)式式,并用近似代替式中即可得到梯形公式并用近似
17、代替式中即可得到梯形公式 ),(),(2111iiiiiiyxfyxfhyy(9.5)由于数值积分的梯形公式比矩形公式的精度高,因由于数值积分的梯形公式比矩形公式的精度高,因此梯形公式(此梯形公式(9.59.5)比欧拉公式)比欧拉公式(9.2)(9.2)的精度高一个数的精度高一个数值方法。值方法。现在学习的是第17页,共81页),(),(2111iiiiiiyxfyxfhyy(9.5)(9.5)式的右端含有未知的式的右端含有未知的y yi+1i+1,它是一个关于它是一个关于y yi+1i+1的函的函数方程数方程,这类数值方法称为这类数值方法称为隐式方法隐式方法。相反地。相反地,欧拉法是关欧拉法
18、是关于于y yi+1i+1的一个直接的计算公式,的一个直接的计算公式,这类数值方法称为这类数值方法称为显式方显式方法。法。现在学习的是第18页,共81页9.2.3 两步欧拉公式两步欧拉公式 对方程对方程 的两端在区间上的两端在区间上 积分得积分得),(yxfy 11,iixx11)(,)()(11iixxiidxxyxfxyxy(9.6)改用中矩形公式计算其积分项,即改用中矩形公式计算其积分项,即 )(,)(,1111iiiixxxyxfxxdxxyxfii代入上式代入上式,并用并用y yi i近似代替式中近似代替式中y(xy(xi i)即可得到两步欧拉即可得到两步欧拉公式公式 ),(211i
19、iiiyxhfyy(9.7)现在学习的是第19页,共81页 前面介绍过的数值方法前面介绍过的数值方法,无论是欧拉方法无论是欧拉方法,还是梯形方法,它们都是单步法还是梯形方法,它们都是单步法,其特点是在其特点是在计算计算y yi+1i+1时只用到前一步的信息时只用到前一步的信息y yi i;可是公式可是公式(7.7)中除了中除了y yi i外外,还用到更前一步的信息还用到更前一步的信息y yi-1i-1,即调用了前两步的信息即调用了前两步的信息,故称其为两步欧拉公故称其为两步欧拉公式式 现在学习的是第20页,共81页9.2.4 欧拉法的局部截断误差欧拉法的局部截断误差 衡量求解公式好坏的一个主要
20、标准是求解公式的精度衡量求解公式好坏的一个主要标准是求解公式的精度,因此引入局部截断误差和阶数的概念。因此引入局部截断误差和阶数的概念。定义定义9.1 在在yi准确准确的前提下的前提下,即即 时时,用数值方法计算用数值方法计算yi+1的误差的误差 ,称为该数值方法计算时称为该数值方法计算时yi+1的的局部截断误差。局部截断误差。对于欧拉公式,假定对于欧拉公式,假定 ,则有,则有)(iixyy 11)(iiiyxyR)(iixyy)()()(,()(1iiiiiixyhxyxyxfhxyy而将真解而将真解y(x)在在xi处按二阶泰勒展开处按二阶泰勒展开),()(!2)()()(121 iiiii
21、xxyhxyhxyxy)(!2)(211yhyxyii 因此有因此有 现在学习的是第21页,共81页定义定义9.2 数值方法的局部截断误差为数值方法的局部截断误差为 ,则称这种数值则称这种数值方法的阶数是方法的阶数是P。步长步长(h N 结束。结束。10,xx)(21),(),(11cpipiiciiipyyyyxhfyyyxhfyy11,yx0101,yyxx现在学习的是第26页,共81页(2)改进欧拉法的流程图)改进欧拉法的流程图 开 始 输 入x0,y0,h,N 1 n x0+h x1 y0+h f(x0,y0 )yp y0+h f(x1,yp)yc (yp+yc)/2 y1 输 出x1
22、,y1 n+1 n n=N?x1 x0 y1 y0 结 束 n y 现在学习的是第27页,共81页(3)3)程序实现程序实现(改进欧拉法计算常微改进欧拉法计算常微 分方程初值问题分方程初值问题)例例9.2 9.2 用改进欧拉法解初值问题用改进欧拉法解初值问题 1)0(2yyxyy区间为区间为 0,10,1,取步长取步长h=0.1h=0.1 解解:改进欧拉法的具体形式改进欧拉法的具体形式 )(21)2(1.0)2(1.011cpipipiciiiipyyyyxyyyyxyyy本题的精确解为本题的精确解为 ,xxy21)(现在学习的是第28页,共81页clearx=0,yn=1%初始化for n=
23、1:10yp=yn+0.1*(yn-2*x/yn);%预测x=x+0.1;yc=yn+0.1*(yp-2*x/yp);yn=(yp+yc)/2%校正end现在学习的是第29页,共81页例例9.3 对初值问题对初值问题 1)0(0yyy证明用梯形公式求得的近似解为证明用梯形公式求得的近似解为 nnhhynhx 并证明当步长并证明当步长h h0 0时时,y,yn n收敛于精确解收敛于精确解证明证明:解初值问题的梯形公式为解初值问题的梯形公式为 xe),(),(nnnnnnyxfyxfhyyyyxf),(211nnnnyyhyy 整理成显式整理成显式 nnyhhy反复迭代反复迭代,得到得到 yhhy
24、hhyhhyhhynnnnn.10ynnhhy22 现在学习的是第30页,共81页由于由于 ,有,有 nhx xxxxhxhhhxhnhhhhhyeee2121lim22limlim222222000nnhhy22xnhy elim0 证毕证毕 现在学习的是第31页,共81页9.3 9.3 龙格龙格-库塔(库塔(Runge-KuttaRunge-Kutta)法)法9.3.1 9.3.1 龙格龙格-库塔库塔(Runge-Kutta)(Runge-Kutta)法的基本思想法的基本思想 Euler Euler公式可改写成公式可改写成 ),(111iiiiyxfKhKyy则则yi+1i+1的表达式的表
25、达式y(xi+1i+1)与的与的TaylorTaylor展开式的前两项完全展开式的前两项完全相同相同,即局部截断误差为即局部截断误差为 。改进的改进的EulerEuler公式又可改写成公式又可改写成 )(2hO),(),()(21121211hKyxfKyxfKKKhyyiiiiii现在学习的是第32页,共81页 上述两组公式在形式上有一个共同点上述两组公式在形式上有一个共同点:都是用都是用f(x,y)f(x,y)在某些点上值的线性组合得出在某些点上值的线性组合得出y(xy(xi+1i+1)的近似值的近似值y yi+1i+1,而且增而且增加计算的次数加计算的次数f f(x x,y y)的次数的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 初值问题 数值 解法
限制150内