
function [x,it]=testnewton(f,df,x0,sol,tola=1e-10,tolr=10e-9,Nmax=100)
#implementacja m newtona dla f(x)=0 z testami rzedu
#zbieznosci
#input
#f - wskaznik do funkcji obliczajacej f(x)
#df - wskaznik do funkcji obliczajacej pochodna df(x)
#x0 - przyblizenie startowe
#sol - rozwiazanie dokladne f(sol)=0 (tylko dla testow!)
#tola - (opcja) tolerancja absolutna warunku stopu - domyslnie 10^(-10) 
#tolr - (opcja) tolerancja wzgledna  warunku stopu - domyslnie 10^(-9) 
#Nmax - (opcja) max ilosc iteracji - domyslnie Nmax=100
# stop gdy |f(x)|<tola+tolr*|f(x0)| (lub ilosc iteracji >=od Nmax)
#
#Output
#x - przyblizenie rozwiazania r. f(x)=0
#it - ilosc iteracji 
it=0;
x=x0;
y=f(x);
e=x-sol;
tol=tola+tolr*abs(y);
while((abs(y)>tol)&&(it<Nmax))
 z=df(x);
 if(abs(z)>0) 
  x=x-y/z;
 else 
   printf("pochodna zero tzn df(%g)=%g czyli zero\n",y,z)
 endif
 ep=e;e=x-sol;
 [e/ep, e/(ep*ep),e/(ep*ep*ep)]
 it++;
 y=f(x);
endwhile
endfunction
