function [t,x] = skyt(f,a,b,alpha,beta,z0,z1)
%
% Løser et ikke-lineært 2-punkts randverdiproblem med
% skytemetoden (sekantmetoden)
% f er et funksjonshåndtak til funksjonen som beskriver systemet av
% 1.ordens ODE:  
% y' = f(t,y), y(1)=x, y(2)=x'. 
% Randverdier: x(a)=alpha, x(b)=beta;
% z0, z1: To startverdier for dx/dt(a);


z = zeros(1,50);
z(1) = z0;
x0 = [alpha,z(1)];
[t,xt] = ode45(f,[a,b],x0);

% Plotter løsningen for hver iterasjon. 
plot(t,xt(:,1))
hold on
pause

phiold = xt(end,1);
z(2) = z1;
for n=2:50;
  x0 = [alpha,z(n)];
  [t,xt] = ode45(f,[a,b],x0);
  phi = xt(end,1);
  z(n+1) = z(n)-(phi-beta)*(z(n)-z(n-1))/(phi-phiold);
  phiold = phi;
  
  plot(t,xt(:,1))
  hold on
  pause

  if abs(phi-beta) < 1.e-6
      break
  end
end
x = xt(:,1);

hold off;


