谁能提供一下欧拉方法的matlab代码
来源:百度知道 编辑:UC知道 时间:2024/05/13 05:43:06
范围1<=x<=1.9, step h=0.1
分别求出真值,欧拉方法得到的结果,绝对误差,相对误差
%步长h=0.01时,误差会减小。
function euler
clc;clear;
h=0.1;x0=1;y0=0;k=0;
x=x0;y=y0;xfinal=1.9;
f=inline('1-y')
while x<xfinal
k=k+1;
y=y+h*feval(f,y);
Y(:,k)=y;
x=x+h;
end
t=x0:h:xfinal
Y=[0,Y]
y=dsolve('Dy=1-y','y(1)=0');%解析解,即真值
y=subs(y)
error_ab=Y-y
error_re=(Y-y)./y
结果:
t =
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000
Y =
0 0.1000 0.1900 0.2710 0.3439 0.4095 0.4686 0.5217 0.5695 0.6126
y =
0.0000 0.0952 0.1813 0.2592 0.3297 0.3935 0.4512 0.5034 0.5507 0.5934
error_ab =
-0.0000 0.0048 0.0087 0.0118 0.0142 0.0160 0.0174 0.0183 0.0189 0.0191
error_re =
-1.0000 0.0508 0.0482 0.0456