- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)