function [x,fx,Er]=sieczne17(f,x0,tol=1e-6,maxit=20,sol=0)
%implementacja metody siecznych;
%x1 domyslnie to 1 iteracje m Newtona  z przyblizona pochodna ilorazem roznicowym
%z testem rzedu zbieznosci dla znanego rozwiazania
%f  - wskaznik do funkcji obliczajacych f i df
%x0,- startowe przyblizenia; x1=x0-f(x0)*h/(fx0+h)-f(x0) h=1e-8
%tol - tolerancja dla war stopu |f(x)|<tol|f(x0)| (domyslnie 1e-6)
%maxit -max ilosc iteracji (domyslnie 20)
%sol - rozwianie
%OUTPUT
%x- przyblizone rozwiazanie
%Er macierz 6 kolumnowa z wierzem:
%   it, e, e/ep, ep/ep^r, e/ep^2, e/(ep^3) dla e=x(it)-sol ep=x(it-1)-sol 
%dla r=0.5*(1+sqrt(5)) teoretycznego wykladnika rzedy zbieznosci m siecznych
%PRZYKLAD
%[x,fx,Er]=sieczne17(@(x) x*x-4,x0=4,1e-6,20,sol=2)
%[x,fx,Er]=sieczne17(@sin,x0=pi-1,1e-10,20,pi)
  r=0.5*(1+sqrt(5));
  x1=x0-f(x0)*1e-8/(f(x0+1e-8)-f(x0));
  xp=x0;
  it=0;
  fxp=f(xp);
  tol=tol*abs(fxp);
  Er=zeros(maxit,6);
  ep=abs(xp-sol);
  x=x1;
  e=abs(x-sol);
  fx=f(x);it++;
  wres=(abs(fx)>tol);
  wit=(it<maxit);
  warstop=wres&&wit;
  while(warstop)
   iir=(x-xp)/(fx-fxp);
   xp=x;
   x=x-fx*iir;
   fxp=fx;fx=f(x);
   it++;
   ep=e;
   e=abs(x-sol);
   if(nargin==5)
    Er(it,:)=[it,e,e/ep,e/ep^r,e/(ep*ep),e/(ep*ep*ep)];
   end 
   wres=(abs(fx)>tol);
   wit=(it<maxit);
   warstop=wres&&wit;
  end
  if(nargin==5)
   Er=Er(1:it,:);
  end
end