

#test sch Adamsa dla 2wymiarow
disp("test Adams 2step");
function y=pw(x,t)
#y''=-y
 y=zeros(size(x));
 y(1)=x(2);
 y(2)=-x(1);
end


t0=0;
x0=[0;1];


n=100;
T=2*pi;;
#T=t0+n*h;
h=(T-t0)/n;

[x,t]=adams2s(@pw,x0,t0,h,n);

plot(t,x(:,1),";x;",t,x(:,2),";x';");
pause(1);

plot(x(:,1),x(:,2),";x vs x';");
pause(1);

#testujemy czy rozwiazanie dla T=2*pi w okregu o promieniu 1
n=100;
for k=1:7,
 [x,t]=adams2s(@pw,x0,t0,h,n);
 norm(x(n,:))-1  #czy ||x||==1?
 n=n*2;
 h=(T-t0)/n;
end
#a dla coraz dluzszego czasu?
h=0.1;T=1;n=floor((T-t0)/h);
for k=1:7,
 [x,t]=adams2s(@pw,x0,t0,h,n);
 printf("T=%g ||x(%g)||-1=%g \n",T,T, norm(x(n,:))-1);  #czy ||x||==1?
 T*=2;
 n*=2;
end

#testujemy rzad
n=4;t0=0;
T=2*pi/3;
h=(T-t0)/(n);
sol=[sin(T);cos(T)];
x0= [sin(t0);cos(t0)];
er=[0,0,0];
M=10;
err=zeros(M,4);
for k=1:M,
 [x,t]=adams2s(@pw,x0,t0,h,n+1);
 eru= norm(x-[sin(t),cos(t)],'inf');
 erp=er;
 er=err(k,:)=[x(n+1,:)-sol',norm(x(n+1,:)-sol','inf'),eru];
 n=n*2;
 h=(T-t0)/n;
end
err
err(1:M-1,:)./err(2:M,:)
#w kolumnie pierwszej rzad dla x, 2giej rzad dla x' 
#a w 3ciej dla normy max bledu dla obu skladowych
#powtorz to samo dla schematu midpoint



