预估—校正的改进Euler方法非常经典,下面计算一个例题。

  • y'=x+y
  • y(0)=1 

代码如下:

%%%%%%%%%%%%%%%%%%%

%euler2_2
h=0.1;d=1;n=d/h;
f=inline('x+y','x','y');
x=[0:h:1]';
y=zeros(n+1,1);
y(1)=1;
for i=1:n
    yp=y(i)+h*f(x(i),y(i));
    yq=y(i)+h*f(x(i)+h,yp);
    y(i+1)=0.5*(yp+yq);
end
for i=1:n+1
    fprintf('%10.1f',x(i));fprintf('\t');fprintf('%10.4f\n',y(i));
end

 

posted on 2008-12-16 09:10  秋波渡  阅读(1958)  评论(0编辑  收藏  举报