
function demo_newton

% default
toll=10^(-6); maxit=1000; esempio=1;
% esempi.
switch esempio
    case 1 % funzione piatta
        f=inline('exp(x)-2+x');
        f1=inline('exp(x)+1');
        x0=1; sol=0.4428544010023885;
    case 2 
        f=inline('sin(x)-x'); 
        f1=inline('cos(x)-1'); 
        x0=1; sol=0;
end
% newton
[xv, fxv, step, ko] = newtonfun (f, f1, x0, toll, maxit);

% statistiche
fprintf('\n \t soluzione : %1.15e',xv(end));
fprintf('\n \t tolleranza: %1.15e',toll);
fprintf('\n \t numero it.: %4d',length(xv));

if ko == 0
    fprintf('\n \t La procedura e'' terminata correttamente');
else
    fprintf('\n \t La procedura non e'' terminata correttamente');
end
fprintf('\n \n');

% ---------------------- plot ----------------------
indici=(1:length(step))';
% grafico risultati
clf; 
semilogy(indici,abs(step)); % step poteva essere negativo!
hold on;
title('Step di Newton'); % titolo
xlabel('Indice'); % etichetta asse x
ylabel('Valore assoluto dello step di Newton'); % etichetta asse y
% stampa figura su file pdf
print('newton_esempio.pdf','-dpdf');
hold off;
% ---------- salvataggio risultati su file ----------
% creazione del file con facolta' di scrittura.
fid=fopen('newton_esempio.txt','w');
% dati immagazzinati nella matrice A (si immagazzinino come vettori riga,
% ma bisogna ricordare che "aa", "bb" sono colonna. 
A=[1:length(xv); xv];
% scrittura dei dati su file.
fprintf(fid,'\n %4.0f  %1.15e',A);
B=[1:length(step); abs(step)];
fprintf(fid,'\n \n Step \n');
fprintf(fid,'\n \t %4.0f  %1.15e',B);

% chiusura file
fclose(fid);
