常微分方程初值问题数值解法-ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《常微分方程初值问题数值解法-ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 初值问题 数值 解法 ppt 课件
- 资源描述:
-
1、2022-5-271第第9章章 常微分方程初值问题数值解法常微分方程初值问题数值解法1. Euler公式公式2. 改进的欧拉公式改进的欧拉公式3. 龙格龙格库塔法库塔法4. 亚当斯法亚当斯法5. 算法的稳定性及收敛性算法的稳定性及收敛性2022-5-2729.1 9.1 引言引言 包含自变量、未知函数及未知函数的导数或微包含自变量、未知函数及未知函数的导数或微分的方程称为微分方程。在微分方程中分的方程称为微分方程。在微分方程中, , 自变量的自变量的个数只有一个个数只有一个, , 称为常微分方程。自变量的个数为称为常微分方程。自变量的个数为两个或两个以上的微分方程叫偏微分方程。微分方两个或两个
2、以上的微分方程叫偏微分方程。微分方程中出现的未知函数最高阶导数的阶数称为微分方程中出现的未知函数最高阶导数的阶数称为微分方程的阶数。如果未知函数程的阶数。如果未知函数y y及其各阶导数及其各阶导数都是一次的都是一次的, ,则称它是线性的则称它是线性的, ,否则称为非线性的。否则称为非线性的。 )(,nyyy 2022-5-273 在高等数学中,对于常微分方程的求解,给出在高等数学中,对于常微分方程的求解,给出了一些典型方程求解析解的基本方法,如可分离变了一些典型方程求解析解的基本方法,如可分离变量法、常系数齐次线性方程的解法、常系数非齐次量法、常系数齐次线性方程的解法、常系数非齐次线性方程的解
3、法等。线性方程的解法等。但能求解的常微分方程仍然是但能求解的常微分方程仍然是有限的,大多数的常微分方程是不能给出解析解。有限的,大多数的常微分方程是不能给出解析解。 譬如譬如 22yxy 这个一阶微分方程就不能用初等函数来表达这个一阶微分方程就不能用初等函数来表达它的解。它的解。 2022-5-274再如,方程再如,方程 1)0(yyy的解的解 , ,虽然有表可查虽然有表可查, ,但对于表但对于表上没有给出上没有给出 的值的值, ,仍需插值方法来仍需插值方法来计算计算xey xe2022-5-275 从实际问题当中归纳出来的微分方程,通常主从实际问题当中归纳出来的微分方程,通常主要依靠数值解法
4、来解决。本章主要讨论一阶常微分要依靠数值解法来解决。本章主要讨论一阶常微分方程初值问题方程初值问题 00)(),(yxyyxfy ( 9.1 ) 在区间在区间a x ba x b上的数值解法上的数值解法。 可以证明可以证明, ,如果函数在带形区域如果函数在带形区域 R: axb,R: axb,-y y 内连续,且关于内连续,且关于y y满足李普希兹满足李普希兹(Lipschitz)(Lipschitz)条件,即存在常数条件,即存在常数 L(L(它与它与x,yx,y无关无关) )使使 2121),(),(yyLyxfyxf 对对R内任意内任意x x及两个及两个 都成立都成立, ,则方程则方程(
5、9.1 )的的解解 在在 a, b 上上存在且唯一存在且唯一。 21, yy)(xyy 2022-5-276数值方法的基本思想数值方法的基本思想 对常微分方程初值问题对常微分方程初值问题( (9.1)式的数值解法,就式的数值解法,就是要算出精确解是要算出精确解y(x)y(x)在区间在区间 a,b 上的一系列离散节上的一系列离散节点点 处的函数值处的函数值 的近似值的近似值相邻两个节点的间距相邻两个节点的间距 称为步长,步称为步长,步长可以相等,也可以不等。本章总是假定长可以相等,也可以不等。本章总是假定h为定数,为定数,称为称为定步长定步长,这时节点可表示为,这时节点可表示为 数值解法需要把连
6、续性的问题加以离散化,数值解法需要把连续性的问题加以离散化,从而求出离散节点的数值解。从而求出离散节点的数值解。 bxxxxann 110)(,),(),(10nxyxyxy.,10nyyyiiixxh 1niihxxi, 2 , 1,0 2022-5-277 对常微分方程数值解法的基本出发点就是离散对常微分方程数值解法的基本出发点就是离散化。其数值解法有化。其数值解法有两个基本特点,两个基本特点,11它们都采用它们都采用“步进式步进式”,即求解过程顺着节点排列的次序一步,即求解过程顺着节点排列的次序一步一步地向前推进,描述这类算法,要求给出用已知一步地向前推进,描述这类算法,要求给出用已知信
7、息信息 计算计算 的递推公式。的递推公式。22建建立这类递推公式的基本方法是在这些节点上用数值立这类递推公式的基本方法是在这些节点上用数值积分、数值微分、泰勒展开等离散化方法,对初值积分、数值微分、泰勒展开等离散化方法,对初值问题问题中的中的导数导数 进行不同的离散化进行不同的离散化处理处理。 iyyy,201 iyy 00)(),(yxyyxfy2022-5-278对于初值问题对于初值问题的数值解法,首先要解决的问题就是的数值解法,首先要解决的问题就是如何如何对微分方对微分方程进行离散化,建立求数值解的递推公式。递推公程进行离散化,建立求数值解的递推公式。递推公式通常有两类,一类是计算式通常
8、有两类,一类是计算yi+1时只用到时只用到xi+1, xi 和和yi,即前一步的值,因此有了初值以后就可以逐步往下即前一步的值,因此有了初值以后就可以逐步往下计算,此类方法称为计算,此类方法称为单步法单步法;其代表是;其代表是龙格龙格库塔库塔法。另一类是计算法。另一类是计算y yi+1i+1时,除用到时,除用到x xi+1i+1,x,xi i和和y yi i以外,以外,还要用到,还要用到, 即前面即前面k步的值,步的值,此类方法称为此类方法称为多步法多步法;其代表是亚当斯法。;其代表是亚当斯法。 00)(),(yxyyxfy), 2 , 1(,kpyxpipi 2022-5-2799.2 简单
9、的数值方法与基本概念简单的数值方法与基本概念9.2.1 Euler公式公式 欧拉(欧拉(Euler)方法是解初值问题的最)方法是解初值问题的最简单的数值方法。初值问题简单的数值方法。初值问题的解的解y=y(x)y=y(x)为通过点为通过点 的一条积分曲线。的一条积分曲线。积分曲线上每一点积分曲线上每一点 的切线的斜率的切线的斜率 等于函数等于函数 在这点的值。在这点的值。 00)(),(yxyyxfy),(00yx),(yx)(xy),(yxf2022-5-2710 Pi+1 Pn y=y(x) P1 Pi Pn Pi+1 P0 x0 x1 xi xi+1 xn Pi P1 Euler法的求解
10、过程是法的求解过程是: :从初从初始点始点P0(即点即点(x(x0 0,y,y0 0)出发出发, ,作积分曲线作积分曲线y=y(x)y=y(x)在在P0点上点上切线切线 ( (其斜率为其斜率为 ),),与与x=xx=x1 1直线直线10PP),()(000yxfxy相交于相交于P1点点( (即点即点(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 x
11、xyxfyy 1xx )(,(010001xxyxfyy 这样就获得了这样就获得了P P1 1点的坐标。点的坐标。 hyxfyy),(0001 2022-5-2711 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),),作积分曲线作积分曲线y=y(x)y=y(x)的切线的切线交直线交直线x=xx=x2 2于于P2点点, ,切线切线 的斜率的斜率直线方程为直线方程为21PP),()(111yxfxy )(,(1111xxyxfyy )(,(121112xxyxfyy 当当 时时,
12、 ,得得 2xx hyxfyy),(1112 2022-5-2712当当 时时, ,得得 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。对已求得点对已求得点以以 为斜率作直线为斜率作直线 ),(nnnyxP),()(nnnyxfxy )(,(nnnnxxyxfyy 1 nxx)(,(11nxnnnnxxyxfyynnyxy )(取取2022-5-2713 从
13、图形上看从图形上看, ,就获得了一条近似于曲线就获得了一条近似于曲线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,21nPPPP3212022-5-2714通常取通常取 ( (常数常数),),则则hhxxiii 1)2 . 9(1, 1 , 0)(),(001 nixyyyxhfyyiiii 00)(),(yxyyxfy微分方程的初值问题微分方程的初值问题Euler法的计算格式为:法的计算格
14、式为: 用折线近似于曲线得到的计算公式称为欧拉公式用折线近似于曲线得到的计算公式称为欧拉公式2022-5-2715 Euler格式格式还可用还可用数值微分数值微分、数值积分数值积分和和泰勒展泰勒展开开等方法得到。等方法得到。,微分方程),(yxfy hxyxyxynnn)()()(1 的导数用差商代替节点nx),()()(1nnnnyxfhxyxy ),(1nnnnyxhfyy 2022-5-2716 Euler格式格式用用泰勒展开泰勒展开方法得到。方法得到。,微分方程),(yxfy 展开处在节点将Taylorxxynn)(1 )(2)()()()(21 yhxyhxyhxyxynnnn),(
15、1nnnnyxhfyy )(22 yhh的高次项略去)()()(1nnnxyhxyxy 2022-5-2717 Euler 格式格式用用数值微分数值微分方法得到。方法得到。),(yxfy 1, iixx 11),(iiiixxxxdxyxfdxy)3 . 9()(,),()()(111 iiiixxxxiidxxyxfdxyxfxyxy 选择不同的计算方法计算上式的积分项选择不同的计算方法计算上式的积分项就会得到不同的计算公式。就会得到不同的计算公式。 1)(,iixxdxxyxf将方程将方程 的两端在区间的两端在区间 上积分得,上积分得,2022-5-2718 用左矩形方法计算积分项用左矩形
16、方法计算积分项 )(,)()(,11iiiixxxyxfxxdxxyxfii 代入代入(9.3)(9.3)式式, ,并用并用y yi i近似代替式中近似代替式中y(xy(xi i) )即可得到即可得到向前欧拉(向前欧拉(EulerEuler)公式)公式 ),(1iiiiyxhfyy 由于数值积分的矩形方法精度很低,所以由于数值积分的矩形方法精度很低,所以欧拉(欧拉(EulerEuler)公式当然很粗糙。)公式当然很粗糙。 2022-5-2719例例9.1 用欧拉法解初值问题用欧拉法解初值问题 )6 . 00( ,1)0(2 xyxyyy取步长取步长h=0.2 ,h=0.2 ,计算过程保留计算过
17、程保留4 4位小数位小数 解解: :20.2,( , )hf x yyxy )2 , 1 ,0()4(2 .01 kyxyykkkk当当 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 )(
18、2 . 0),(21kkkkkkkkyxyyyxhfyy 2022-5-2720.2 .02(1 .0,(1计算及结果如下解: .1.1) nnnnnnnnnnnyxyyxyyyxhfyy clear; 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 x = 0.6000y = 1.5
19、803 x = 0.7000y = 1.6498 x = 0.8000y = 1.7178 x = 0.9000y = 1.7848 x = 1.0000)10( ,1)0(2, 1 . 0 xyyxyyEulerh公公式式求求解解利利用用取取例例2022-5-2721对方程对方程 的两端在区间的两端在区间 上积分得,上积分得,),(yxfy 1, iixx)4 . 9()(,)()(11 iixxiidxxyxfxyxy 2)(,()(,()(,1111 iiiiiixxxyxfxyxfxxdxxyxfii代入代入(9.4)(9.4)式式, ,即可得到梯形公式即可得到梯形公式 )5 . 9(
20、),(),(2111 iiiiiiyxfyxfhyy 由于数值积分的梯形公式比矩形公式的精度高,由于数值积分的梯形公式比矩形公式的精度高,因此梯形公式(因此梯形公式(9.59.5)是比欧拉公式)是比欧拉公式( 9.2 )( 9.2 )精度高精度高的一个数值方法。的一个数值方法。 为了提高精度为了提高精度,改用梯形方法计算其积分项,即改用梯形方法计算其积分项,即 9.2.2 梯形公式梯形公式2022-5-2722),(),(2111iiiiiiyxfyxfhyy( 9.5 ) ( (9.2) 和和(9.5)式粗看差不多式粗看差不多, )(),(001xyyyxhfyyiiii( 9.2 ) Eu
21、ler公式梯形公式 但但( (9.5)式的右端含有未知的式的右端含有未知的y yi+1i+1, ,它是一个关它是一个关于于y yi+1i+1的函数方程的函数方程, ,这类数值方法称为这类数值方法称为隐式方法隐式方法。相反地相反地, ,欧拉法是关于欧拉法是关于y yi+1i+1的一个直接的计算公式,的一个直接的计算公式, 这类数值方法称为这类数值方法称为显式方法显式方法。 2022-5-27239.2.3 两步欧拉公式两步欧拉公式 对方程对方程 的两端在区间上的两端在区间上 积分得积分得 ),(yxfy 11, iixx 11)(,)()(11iixxiidxxyxfxyxy ( 9.6 ) 改
22、用中矩形公式计算其积分项,即改用中矩形公式计算其积分项,即 )(,)()(,1111iiiixxxyxfxxdxxyxfii 代入上式代入上式, ,并用并用y yi i近似代替式中近似代替式中y(xy(xi i) )即可得到两步即可得到两步欧拉公式欧拉公式 )7 .9(),(211iiiiyxhfyy 11111),(),( iiiiiiiiyPyxPyxP2022-5-2724 前面介绍过的数值方法前面介绍过的数值方法, ,无论是欧拉无论是欧拉方法方法, ,还是梯形方法,它们都是单步法还是梯形方法,它们都是单步法, ,其其特点是在计算特点是在计算y yi+1i+1时只用到前一步的信息时只用到
23、前一步的信息y yi i; ;可是公式可是公式( (9.7)中除了中除了y yi i外外, ,还用到更前一步还用到更前一步的信息的信息y yi-1i-1, ,即调用了前两步的信息即调用了前两步的信息, ,故称其故称其为两步欧拉公式为两步欧拉公式 2022-5-2725 定义定义9.1 在在yi准确准确的前提下的前提下, 即即 时时, 用数值方用数值方法计算法计算yi+1的误差的误差 , 称为该数值方法计称为该数值方法计算时算时yi+1的局部截断误差。的局部截断误差。)(iixyy 11)( iiiyxyR9.2.4 欧拉法的局部截断误差欧拉法的局部截断误差 衡量求解公式好坏的一个主要标准是求解
24、公式的衡量求解公式好坏的一个主要标准是求解公式的精度精度, 因此引入局部截断误差和阶数的概念。因此引入局部截断误差和阶数的概念。故称为局部截断误差。得到的误差步精确的前提下在假设前,1 i整体截断误差。iiyxyr )(12022-5-2726假定假定 由欧拉公式,则有由欧拉公式,则有)(iixyy )()(1iiixyhxyy ),()(! 2)()()(121 iiiiixxyhxyhxyxy)(! 2)(211 yhyxyii因此有因此有 展开处二阶在将精确解Taylorxxyii)(1 近似解局部截断误差局部截断误差 1ke2022-5-2727定义定义9.2 如果数值方法的局部截断误
25、差为如果数值方法的局部截断误差为 ,则称这种数值方法的则称这种数值方法的阶数是阶数是P。)(1 phO 显然,步长显然,步长(h N 结束。结束。 10,xx)(21),(),(11cpipiiciiipyyyyxhfyyyxhfyy11, yx0101,yyxx2022-5-2736(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, y1 n + 1 n n = N ? x1 x0 y1 y0 结 束 n y
展开阅读全文