function multi2(n)
% Solves the ivp y'= -y - 1/(1+x)^2 + 1/(1+x), y(0)=1 
% by the implicit two-step method
% Y_{n+1} - Y_n  =  (h/12) (5 Y_{n+1}' + 8 Y_n' - Y_{n-1}')
%
fprintf('\n')
%
for iit=1:10
%
nn=2^(iit-1)*n;
uu(iit)=1/nn;
%
h=1./nn;
%
h12=h/12.;
%
y0=1.;
y1=1./(1.0+h);
%
for i=1:nn
t=i*h;
t1=(i-1)*h;
t2=(i+1)*h;
ex=(1/(1+t));
er(i)=abs(ex-y1);
m= - 1/(1+t)^2 + 1/(1+t);
m1= - 1/(1+t1)^2 + 1/(1+t1);
m2= - 1/(1+t2)^2 + 1/(1+t2);
y2=(y1+h12*(5.*m2+8.*m-m1-8.*y1+y0))/(1.+5.*h12);
y0=y1;
y1=y2;
end
u1(iit)=max(er);
fprintf('h =%12.6f        maxerr = %15.6e\n',h,u1(iit))
end
fprintf('\n')
for iit=1:9
      p=log(u1(iit)/u1(iit+1))/log(2.);
      fprintf('h =%12.6f        rate %15.6e\n',uu(iit),p)
end
loglog(uu,u1,'b+')
xlabel('h');ylabel('Error');
