L'implementazione del metodo di Steffensen in Matlab
function [x,i,tolf]=steffensen(x0,f,tolx,nmax)
%STEFFENSEN Esegue il metodo di Steffensen, per la risoluzione di f(x)=0
%
% [x,i,tolf]=STEFFENSEN(x0,f,tolx,nmax)
%
% I parametri della funzione sono:
% x0 -> il punto iniziale
% f -> funzione di cui valutare uno zero
% tolx -> tolleranza per la radice
% nmax -> limite superiore al numero di iterazioni
%
% I valori di ritorno sono:
% x -> la soluzione trovata
% i -> il numero di iterazioni impiegate per ottenere la soluzione
% tolf -> la tolleranza sulla funzione
%
% See Also NEWTON, CORDE, SECANTI
i=0;
err=tolx+1;
x=x0;
phi=0;
while(i<nmax & err>tolx)
xx=x;
fxk=feval(f,x);
tolf=tolx*abs(phi);
if abs(fxk)<=tolf
break
end
fxk2=feval(f,x+fxk);
phi=(fxk2-fxk)/fxk;
x=xx-fxk/phi;
err=abs(x-xx);
i=i+1;
end