1 / 5
文档名称:

Euler法和改进的Euler法实验报告.docx

格式:docx   大小:112KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Euler法和改进的Euler法实验报告.docx

上传人:mh900965 2018/3/8 文件大小:112 KB

下载得到文件列表

Euler法和改进的Euler法实验报告.docx

文档介绍

文档介绍:用Euler法和改进的Euler法求u’=-5u(0≤t≤1),u(0)=1的数值解,步长h=,,并比较两个算法的精度。
解:
当步长h=
编写程序如下所示
clf
clear
clc

%直接求解微分方程
y=dsolve('Dy=-5*y','y(0)=1','t')
%Euler法
h=;
t=0:h:1;
n=length(t);
u=zeros(1,n);
u(1)=1;
zbu(1,1)=t(1);
zbu(2,1)=u(1);
for i=2:n
f=-5*u(i-1);
u(i)=u(i-1)+h*f;
zbu(1,i)=t(i);
zbu(2,i)=u(i);
end
zbu
%改进的Euler法
v=zeros(1,n);
v0=zeros(1,n);
v(1)=1;
zbv(1,1)=t(1);
zbv(2,1)=v(1);
for i=2:n
f=-5*v(i-1);
v0(i)=v(i-1)+h*f;
v(i)=v(i-1)+h/2*(f-5*v0(i));
zbv(1,i)=t(i);
zbv(2,i)=v(i);
end
zbv

plot(t,u,'r*','markersize',10)
hold on,
plot(t,v,'r.','markersize',20)
hold on,
ezplot(y,[0,1])
hold on,
title('Euler法和改进的Euler法比较(h=)),
grid on
legend('Euler法','¸改进的Euler法','解析解')
%解真值
h=;
t=0:h:1;
n=length(t);
for i=1:n
y(i)=1/exp(5*t(i)); %通过第一部分程序直接解得的解析解
zby(1,i)=t(i);
zby(2,i)=y(i);
end
zby
我们可以得到计算后的结果图像如图一所示
图1 Euler法和改进的Euler法比较(h=)
同时,我们得到Euler法,改进的Euler法和解析解的在各点处数值分别如下所示:
t坐标











欧拉











改进欧拉











真值











表1 Euler法和改进的Euler法在各点数值比较(h=)
为了比较Euler法和改进的Euler法的算法精度,在这里我们利用相对误差的概念进行评判