Calcolo numerico/Radici di sistemi non lineari

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Adattamento del metodo di Newton

Problema: data la funzione f:ℝn→ℝn, trovare x∗ tale che f(x∗)=0.

Consideriamo un sottoinsieme D⊂ℝn in cui f sia di classe C1. Consideriamo la matrice jacobiana. Trovare gli zeri della funzione applicando il metodo di Newton equivale a risolvere l'equazione:

{f(x)=f(xk)+Jf(xk)∗(x−xk)f(x)=0

Quindi

0=f(xk)+Jf(xk)∗(xk+1−xk)

(xk+1−xk)=−Jf−1(xk)∗f(xk)metodo di Newton

Per evitare di invertire la matrice sul calcolatore, risolviamo il sistema lineare

Jf(xk)(xk+1−xk)=−f(xk)

Supponiamo di essere al k-esimo passo di Newton, allora poniamo

K=xk+1−xk

Risolviamo

Jf(xk)∗K=−f(xk)

Poniamo

xk+1=xk+K

Come nel caso scalare, la convergenza del metodo di Newton è quadratica, se è sufficientemente vicino alla radice.

Lo jacobiano è non singolare se la radice è semplice.

Costo computazionale nella risoluzione del sistema

Pensiamo di risolvere il sistema lineare usando una fattorizzazione. Questo comporta un grande aumento del costo computazionale. Allora per risparmiare operazioni, si aggiorna lo jacobiano di f solo periodicamente, per sfruttare la fattorizzazione di Jf(xk) più volte. Questo rallenta la convergenza.

Pensando invece di usare metodi iterativi, consideriamo un ciclo di Newton con le iterazioni (outer iteration), e all'interno, nel passo in cui bisogna risolvere il sistema con la jacobiana, si inserisce un altro metodo iterativo (inner iteration).

Siccome l'obiettivo è quello di convergere alla radice, nelle prime iterazioni del metodo di Newton la soluzione non viene calcolata esattamente (si fissa un numero di iterazioni nmax basso per il metodo iterativo). Si è interessati a risolvere il sistema in modo più preciso tanto più si pensa di essere vicino alla radice.

Template:Avanzamento