function [alpha,it,xv,gk]=puntofisso(x0,fun,toll,nmax)
% Chiamata:
%     [alpha,it,xv,gk]=puntofisso(x0,fun,toll,nmax)
% Input:
%   x0 : guess iniziale
%   fun: inline function per g(x)
%   toll: tolleranza
%   nmax: numero max di iterazioni 
% Output:
%   alpha: radice calcolata
%   it:    numero di iterazioni effettuate
%   xv:    elenco delle iterate
%   gk:    valori di g(xv)

it=1;        % contatore di iterazioni
xv = x0;     % valore iniziale
test=2*toll; %cosi` entro nel ciclo!
% ciclo
while (test > toll)&&(it<nmax)
    gk(it)=fun(xv(it));  
    xv(it+1)=gk(it);
    test = abs(xv(it+1)-xv(it));
    it=it+1;
end
alpha=xv(end);
if (it==nmax)
    disp('Numero max di iterazioni raggiunto')
end
return

