
function demo_punto_fisso

% default
toll=10^(-6); maxit=100; esempio=2;

% funzione
% f(x) = x - x^(1/3) - 2 = 0
x0=3;
% esempi.
switch esempio
    case 1
		% x - x^(1/3) - 2 = 0
		% x = x^(1/3) + 2
        phix=inline('x^(1/3) + 2');
    case 2
		% x - x^(1/3) - 2 = 0
		% x^(1/3) = x - 2
		% x = (x - 2)^3
        phix=inline('(x - 2)^3');
end
% newton
[xv, phixv, step, ko] = punto_fisso (phix, 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 del Punto Fisso'); % titolo
xlabel('Indice'); % etichetta asse x
ylabel('Valore del Punto Fisso'); % etichetta asse y
% stampa figura su file pdf
print('punto_fisso_esempio.pdf','-dpdf');
hold off;
% ---------- salvataggio risultati su file ----------
% creazione del file con facolta' di scrittura.
fid=fopen('punto_fisso_esempio.txt','w');
% dati immagazzinati nella matrice A
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);