《最新常微分方程数值解PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新常微分方程数值解PPT课件.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、常微分方程数值解常微分方程数值解9.1 引言引言 实际中,很多问题的数学模型都是微分方程。我们可实际中,很多问题的数学模型都是微分方程。我们可以研究它们的一些性质。但是,只有极少数特殊的方程有以研究它们的一些性质。但是,只有极少数特殊的方程有解析解。对于绝大部分的微分方程是没有解析解的。解析解。对于绝大部分的微分方程是没有解析解的。常微分方程作为微分方程的基本类型之一,在自然界常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛的应用。很多问题的数学表述都可以归与工程界有很广泛的应用。很多问题的数学表述都可以归结为常微分方程的定解问题。很多偏微分方程问题,也可结为常微分方程的定解问题
2、。很多偏微分方程问题,也可以化为常微分方程问题来近似求解。以化为常微分方程问题来近似求解。本章讨论常微分方程的数值解法本章讨论常微分方程的数值解法在在假假设设 yi=y(xi),即即第第 i 步步计计算算是是精精确确的的前前提提下下,考考虑虑的的截截断断误误差差 Ri=y(xi+1)yi+1 称称为为局局部部截截断断误误差差/*localtruncationerror*/。若若某某算算法法的的局局部部截截断断误误差差为为O(hp+1),则则称称该该算算法法有有p 阶精度。阶精度。欧拉法的局部截断误差:欧拉法的局部截断误差:欧拉法具有欧拉法具有 1 阶精度。阶精度。欧拉公式的改进:欧拉公式的改进
3、:隐式欧拉法隐式欧拉法/*implicitEulermethod*/向后差商近似导数向后差商近似导数x0 x1)(,()(1101xyxfhyxy+)1,.,0(),(111=+=+niyxfhyyiiii由于未知数由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故同时出现在等式的两边,不能直接得到,故称为称为隐式隐式/*implicit*/欧拉公式欧拉公式,而前者称为而前者称为显式显式/*explicit*/欧拉公式欧拉公式。一般先用显式计算一个初值,再迭代求解。一般先用显式计算一个初值,再迭代求解。隐式隐式欧拉法的局部截断误差:欧拉法的局部截断误差:即隐式欧拉公式具有即隐式欧拉公
4、式具有 1 阶精度。阶精度。例例5.1 用欧拉法求初值问题用欧拉法求初值问题当当h=0.02时在区间时在区间0,0.10上的数值解。上的数值解。方程真解:方程真解:nxnyny(xn)n=y(xn)-yn001.00001.0000010.020.98200.98250.000520.040.96500.96600.000530.060.94890.95030.001440.080.93360.93540.001850.100.91920.9230.0021 梯形公式梯形公式/*trapezoidformula*/显、隐式两种算法的显、隐式两种算法的平均平均注:注:有局部截断误差有局部截断误差
5、 ,即梯形公式具有即梯形公式具有2 阶精度,比欧拉方法有了进步。阶精度,比欧拉方法有了进步。但注意到该公式是但注意到该公式是隐式隐式公式,计算时不得不用到公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。迭代法,其迭代收敛性与欧拉公式相似。中点欧拉公式中点欧拉公式/*midpointformula*/中心差商近似导数中心差商近似导数x0 x2x1假设假设 ,则可以导出,则可以导出即中点公式具有即中点公式具有 2 阶精度阶精度。需要需要2个初值个初值 y0和和 y1来启动递推来启动递推过程,这样的算法称为过程,这样的算法称为双步法双步法/*double-stepmethod*/,而前面的
6、三种算法都是而前面的三种算法都是单步法单步法/*single-stepmethod*/。方方 法法 显式欧拉显式欧拉隐式欧拉隐式欧拉梯形公式梯形公式中点公式中点公式简单简单精度低精度低稳定性最好稳定性最好精度低精度低,计算量大计算量大精度提高精度提高计算量大计算量大精度提高精度提高,显式显式多一个初值多一个初值,可能影响精度可能影响精度使用梯形公式计算时,常采用使用梯形公式计算时,常采用Euler方法提供迭代初值,则梯方法提供迭代初值,则梯形法的迭代公式为:形法的迭代公式为:分析迭代过程的收敛性,可得分析迭代过程的收敛性,可得于是有于是有梯形方法虽然提高了精度,但算法复杂,在应用迭代公式进梯形
7、方法虽然提高了精度,但算法复杂,在应用迭代公式进行实际计算的时候,每迭代一次,都要重新计算函数值,而行实际计算的时候,每迭代一次,都要重新计算函数值,而迭代又要反复进行若干次,计算量很大,而且往往难以预测。迭代又要反复进行若干次,计算量很大,而且往往难以预测。为了控制计算量,通常只迭代一两次就转入下一步计算,从为了控制计算量,通常只迭代一两次就转入下一步计算,从而简化算法。而简化算法。改进欧拉法改进欧拉法/*modifiedEulersmethod*/Step 1:先用先用显式显式欧拉公式作欧拉公式作预测预测,算出算出),(1iiiiyxfhyy+=+Step 2:再将再将 代入代入隐式隐式梯
8、形公式的右边作梯形公式的右边作校正校正,得到,得到1+iy),(),(2111+=iiiiiiyxfyxfhyy注:注:此法亦称为此法亦称为预测预测-校正法校正法/*predictor-correctormethod*/。可以证明该算法具有可以证明该算法具有 2 阶精度,同时可以看到它是个阶精度,同时可以看到它是个单单步步递推格式,比隐式公式的迭代求解过程递推格式,比隐式公式的迭代求解过程简单简单。后面将。后面将看到,它的看到,它的稳定性高于稳定性高于显式欧拉法显式欧拉法。或者表示成下列平均化形式或者表示成下列平均化形式 上式又称改进上式又称改进Euler公式,也可写成公式,也可写成例例1 在
9、区间在区间0,1上以上以h=0.1 为步长,分别用欧拉为步长,分别用欧拉法与改进法与改进Euler法求初值问题法求初值问题的数值解的数值解。解解 该方程为贝努利方程,其精确解为该方程为贝努利方程,其精确解为欧拉公式的具体形式为欧拉公式的具体形式为改进改进Euler公式的具体形式为公式的具体形式为取步长取步长 计算结果见下表:计算结果见下表:1.3416411.3433601.3582130.441.2649111.2662011.2774380.331.1832161.1840971.1918180.221.0954451.0959091.10.1111100准确解改进Euler法欧拉法 50
10、.51.435133 1.4164021.41421460.61.508966 1.4859561.48324070.71.580338 1.5525141.54919380.81.649783 1.6164751.61245290.91.717779 1.6781661.67332010 11.784771 1.7378671.7320519.2.4单步法的局部截断误差与阶单步法的局部截断误差与阶定定义义1:在在yn准准确确的的前前提提下下,即即yn=y(xn)时时,用用数数值值方方法法计计算算yn+1的的误误差差Tn+1=y(xn+1)-yn+1,称称为为该该数数值值方方法法计计算时算时y
11、n+1的的局部截断误差局部截断误差。Tn+1之所以称为局部的,是假设在之所以称为局部的,是假设在xn前各步没有误差,前各步没有误差,当当yn=y(xn)时,计算一步,则有时,计算一步,则有则,则,Euler法的局部截断误差为法的局部截断误差为 局部截断误差主项局部截断误差主项定定义义2 数数值值方方法法的的局局部部截截断断误误差差为为 ,则则称称这这种种数值方法的阶数是数值方法的阶数是P。步长步长(h1)(h,反反复复将将步步长长折折半半进进行行计计算算,直直至至为止为止,并取其最后一次步长的计算结果作为并取其最后一次步长的计算结果作为 (2 2)如如果果为止,并以上一次步长的计算结果作为为止,并以上一次步长的计算结果作为 。这这种种通通过过步步长长加加倍倍或或折折半半来来处处理理步步长长的的方方法法称称为为变变步步长长法法。表表面面上上看看,为为了了选选择择步步长长,每每一一步步都都要要反反复复判判断断,增增加加了了计计算算工工作作量量,但但在在方方程程的的解解y(x)y(x)变变化化剧剧烈烈的的情情况况下下,总总的的计计算算工工作作量量得得到到减减少少,结果还是合算的。结果还是合算的。结束语结束语谢谢大家聆听!谢谢大家聆听!38
限制150内