1.Euler法
function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2);
y(1)=y0;
for n=1:length(x)-1
y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end
x=x';y=y';
x1=0:0.2:1;y1=(1+2*x1).^0.5;
plot(x,y,x1,y1)
>> dyfun=inline('y-2*x/y');
[x,y]=naeuler(dyfun,[0,1],1,0.2);[x,y]
ans =
0 1.0000
0.2000 1.2000
0.4000 1.3733
0.6000 1.5315
0.8000 1.6811
1.0000 1.8269
2.隐式Euler法
function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2);
y(1)=y0;
for n=1:length(x)-1
y(n+1)=iter(dyfun,x(n+1),y(n),h);
end
x=x';y=y';
x1=0:0.2:1;y1=(1+2*x1).^0.5;