Implementazione in Matlab

Di seguito presentiamo l'implementazione del metodo di accelerazione di Aitken

function [x,i,tolf]=aitken(x0,f,df,tolx,nmax)
%AITKEN Esegue il metodo di accelerazione Aitken, una modifica del metodo
%   di Newton per il calcolo di f(x)=0 in presenza di radici multiple,
%   senza conoscerne la molteplicità
%
%   [x,i,tolf]=AITKEN(x0,f,df,tolx,nmax)
%
%   I parametri della funzione sono:
%       x0 -> il punto iniziale
%       f -> funzione di cui valutare uno zero
%       df -> la derivata della funzione f
%       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, NEWTONMOLT
  i=0;
  err=tolx+1;
  x=x0;
  while (i<nmax & err>tolx)
      x0=x;
      fx0=feval(f,x0);
      dfx0=feval(df,x0);
      tolf=tolx*abs(dfx0);
      if abs(fx0)<=tolf
         break
      end
      x1=x0-(fx0/dfx0);
      err=abs(x1-x0);
      if err<tolx
         break
      end
      fx1=feval(f,x1);
      dfx1=feval(df,x1);
      tolf=tolx*abs(dfx1);
      if abs(fx1)<=tolf
         break
      end
      x2=x1-(fx1/dfx1);
      err=abs(x2-x1);
      if err<tolx
         break
      end
      x=(x2*x0-(x1)^2)/(x2-2*x1+x0);
      err=abs(x0-x);
      i=i+1;
  end



Morpheus 2004-01-04