function AB(n)
% Solves the ivp y'= -y - 1/(1+x)^2 + 1/(1+x), y(0)=1 
% by the three-step method A-B method
% Y_{n+1} - Y_n  =  (h/12) (23 Y_{n}' -16  Y_{n-1}' + 5 Y_{n-2}')
%
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);
y2=1./(1.0+2.d0*h);
%
for i=4:nn+1
t=(i-1)*h;
t1=(i-2)*h;
t2=(i-3)*h;
t3=(i-4)*h;
ex=(1/(1+t));
m1= -y2- 1/(1+t1)^2 + 1/(1+t1);
m2= -y1- 1/(1+t2)^2 + 1/(1+t2);
m3= -y0 - 1/(1+t3)^2 + 1/(1+t3);
y3=y2+h12*(23*m1-16*m2+5*m3);
er(i)=abs(ex-y3);
y0=y1;
y1=y2;
y2=y3;
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');
