数值分析实验算法总结.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 解常微分方程初值问题 改进Euler方法 我们先用Euler公式求的一个初步的近似值,再用梯形公式将它校正一次, 即按(5)迭代一次得这个结果称为校正值,这样建立的校正系统通常 成为改进Euler公式. = yn+h/2(f(xn ,yn)+f 儿 +〃*/(兀,儿)))⑹ 即迭代公式为: 儿=儿+力5V(£,儿), 儿=儿+〃*/(兀+],儿J, 儿+1 儿+1 ? = £(儿 + 儿). 改进Euler方法的误差估计: 改进Euler方法局部截断误差是O (/?),整体截断误差O (/,) ?与梯形方 法一样. 例2. 用改进Euler方法解 例1的初值问题,心0.1 解: 改进Euler公式为 儿二儿+屮(儿一—), 儿 9 r 儿=儿+力*(儿—亠), 儿 儿+】? = £(儿+儿) 计算结果如下表: 兀“ 心) 心) ef1= y(xn y,t 0.1 1.09590909090909 1.09544511501033 -0.0005 0.2 1.1840965692430() 1.18321595661992 -0.0009 0.3 1.26620136087578 1.26491106406735 -0.0013 0.4 1.343360151484()0 1.34164078649987 -0.0018 0.5 1.41640192853691 1.41421356237310 -0.0022 0.6 1.48595560241567 1.48323969741913 -0.0028 0.7 1.55251409132615 1.54919333848297 -0.0033 0.8 1.61647478275206 1.61245154965971 -0.0040 0.9 1.67816636367519 1.67332005306815 -0.0049 1.0 1.73786740103541 1.73205080756888 -0.0058 进过计算得岀改进Euler法比Euler法 明显改善了精度. 上机实验⑷ 上机题目:贬值求一阶常微分方程的初值问题 实验目的:掌握齐种Euler方法和梯形法。 进过计算结果来分析四种方法的优缺点,掌握规律。 分析结果。 实验要求:用不同的方法来解同一个例子。 上机前充分准备,复习有关内容,写出计算步骤,查对程 序。②改进Euler法在Matlab环境中运算,并分析岀最好的 方法,再给岀它的流程图。③实验结束后写出完整的实验报 算法说明:①经过所给岀的方程组和初值初步改变方程组。 由以上四种方法的计算公式來逐步计算y的每个值。 最后为了方便比较列为表最适合。 上机例题:例1.后退Euler方法解初值问题,/?=()」 y = y?2x/y, 0(x(1 y(o)= i Mat lab 程序: function[x,y]=gaijing(f,xO,yO,a,b,n) h=(b-a)/n;for k=l:n+lx(k)=a+(k-l)*h;endy( I )=y0;for i=l: function[x,y]=gaijing(f,xO,yO,a,b,n) h=(b-a)/n; for k=l:n+l x(k)=a+(k-l)*h; end y( I )=y0; for i=l:n yp=y(i)+h*subs(subs(f,x(i)),y(i)); yc=y(i)+h*subs(subs(f,x(i+l)),yp); y(i+l)=(l ⑵ *(yp+yc); end disp(sprintf(* i for i=l :ndisp(sprintf(* %d %f %定义并计算步长 %计算x(k) %山改进Euler的公式计算. x(i) %为了方便以规定格式先输出i,x(i),y(i). %f,i,x(i+l),y(i+l))); %为了方便观察结果在先输出的格式下输出结果 s=y(i); 运行结果: [x ,y]=gaij ingCy-2* x/y,0,1,0,1,10) i x(i) y(i) 1 0」00000 1.095909 2 0.200000 1.184097 3 0.300000 1.266201 4 0.400000 1.343360 5 0.500000 1.416402 6 0.600000 1.485956 7 0.700000 1.552514 8 0.800000 1.616475 9 0.900000 1.678166 10 1.000000 1.737867 改进Euler的流程图: 流程图解释:1)输入?)d九最大循环次序N⑵ 腻给n;3)把心+力腻给為 (y + V ) 把儿+〃(兀(),儿)腻给儿,儿+妙(兀U,儿)腻给儿,

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档