Soluzione degli esercizi sul metodo di Newton

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:S

Soluzione degli esercizi sul metodo di Newton


Template:Navigazione lezione

Template:Risorsa

Esercizio 1

  • Ecco una possibile implementazione del metodo di Newton con Octave/MATLAB:
function [x e iter]=newton(f,df,x0,err,itermax)
%The function newton find the zeros of function
%with the Newton algorithm.
%It returns the zero x, the error e, and the number of iteration needed iter
%
%HOW TO USE IT:
%Example
%>>f=@(x)x.^2-1;
%>>df=@(x)2*x;
%>>err=1e-5; itermax=1000;
%>>[x e iter]=newton(f,df,err,itermax);

iter=0;
e=2*err;
x=x0;
while ( e > err )
	iter = iter + 1;
	e = abs(f(x)./df(x));	
	x=x-f(x)./df(x)
	if(iter == itermax)
		break;
	end
end

Esercizio 2

Si consideri la successione generata dal metodo di Newton

xk+1=xkf(xk)f(xk)

e si supponga esista z unico zero della funzione. Allora abbiamo tre casi:

  1. x0=z
    In questo caso ovviamente la successione converge in quanto si ha che
    xk=zk0.
  2. x0>z
    Notiamo che se xk>z allora f(xk)>0 e dalla definizione del metodo di Newton si ottiene
    xk+1xk=f(xk)fxk<0,xk+1<xk,
    ovvero la successione è decrescente. Dalla formula per l'errore se vede invece che
    zxk+1=f(ηk)2f(xk)(zxk)2<0z<xk+1.
    Quindi la successione degli xk è decrescente e limitata, ovvero esiste finito il suo limite
    limkxk=α.
    Dalla definizione del metodo di Newton si ha che f(α)=0 e quindi per l'unicità dello zero si ha che α=z.
  3. x0<z
    Procedendo come per il punto precedente, essendo ora f(x0)<0, si ha che
    x1x0=f(x0)fx0>0,x1>x0,
    Tuttavia abbiamo anche che
    zx1=f(η0)2f(x0)(zx0)2<0z<x1.
    Quindi scelto x0<z si ha che x1>z e quindi la successione converge per quanto mostrato nel punto precedente ( prendendo x¯0=x1).

Esercizio 3