% Implementazione del metodo di Newton
% per determinare lo zero (alpha) della funzione
% f(x)=x^3-5 in [1,2]
% con il TEST D'ARRESTO 
% x_0?
close all
clear
label=menu('Funzioni tra cui scegliere:','x.^3-5','x-cos(x)','1-5/x','x^3+4*x^2-10') ;
if label==3
    x=1:0.02:8 ;
else
    x=-2:0.02:2 ;
end
toll=10^(-6) ;
epsilon=10^(-12) ;
[y,~]=libreria_funzioni_newton(x,label) ;
figure
plot(x,y,'LineWidth',1.5)
grid
% 
v=zeros(1,10) ;
v(1)=input('Inserisci il punto iniziale: ') ;
disp(v(1))
delta=10 ;     % delta=differenza tra due iterate
[residuo,fprimo]=libreria_funzioni_newton(v(1),label) ; % residuo  
k=1 ;
while delta>=toll || residuo>=epsilon || k==1000
    [f,fprimo]=libreria_funzioni_newton(v(k),label) ; 
    v(k+1)=v(k)-f/fprimo ;
    delta=abs(v(k+1)-v(k)) ;
    residuo=libreria_funzioni_newton(v(k+1),label)  ;
    k=k+1 ;
end
if k==1000
    disp('Raggiunto il numero massimo di iterazioni')
else
    disp(v(k))
    disp(['Il valore della funzione è: ' num2str(residuo)])
    disp(['Numero di iterazioni effettuate: ' num2str(k)])
end




