- Codice:
function[x,i] = aitken(x0,f,df,tol,max)
f0=feval(f,x0);
d=feval(df,x0);
x1=x0-(f0/d);
f1=feval(f,x1);
d=feval(df,x1);
x2=x1-(f1/d);
for i=1:max
x0=(x1*x1-x0*x2)/(2*x1-x2-x0);
if abs(x0-x2)<=tol*(1+abs(x2))
break
end
f0=feval(f,x0);
d=feval(df,x0);
x1=x0-(f0/d);
f1=feval(f,x1);
d=feval(df,x1);
x2=x1-(f1/d);
end
x=x2;
Nell'eseguirla sulla funzione \((x-1)^2 e^{x-1}\) con criterio d'arresto \( |x_{i+1} − x_i | ≤ tol · (1 + |x_i|)\) e con tolleranze 1e-3, 1e-6, 1e-9 ottengo rispettivamente come numero di iterazioni richieste 4,5,5. Tuttavia con una tolleranza 1e-12 non ottengo nessun risultato, fermandosi al limite massimo di iterazioni. Qualcuno potrebbe aiutarmi a capire il perché? Grazie delle eventuali risposte.