Implementazione in Matlab

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



Morpheus 2004-01-04