预估—校正的改进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