Buon pomeriggio.
Sto implementando il metodo di Newton, di cui vi invio il codice.
Il professore mi ha detto di stimare, ad ogni passo del metodo, l'ordine di convergenza del metodo con la formula:
p=log(|x^(k+1)-a|)/log(|x^k-a|), con a stima iniziale della radice.
L'ho inserita nel codice matlab ma qualsiasi funzione io metta, mi restituisce ordine di convergenza 1, mentre dovrebbe essere 2.
Dov'è l'errore?
function [z, nit] = newton (f, g, x, eps, nmax)
nit = 0;
t = eps+1;
while (abs(t)>eps && nit<nmax)
d = g(x);
if d == 0
disp ('error derivata');
end
t = - f(x)/d;
z = x + t;
nit= nit +1;
% m = a;
% p(nit+1) = log(abs(z-m))/(log(abs(x-m)));
% disp(p);
x = z;
end