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