• Non ci sono risultati.

4-5Febbraio2009 [email protected] MassimilianoMartinelli SoluzioniAnaliticheeNumericheApplicateall’IngegneriaAmbientale

N/A
N/A
Protected

Academic year: 2021

Condividi "4-5Febbraio2009 [email protected] MassimilianoMartinelli SoluzioniAnaliticheeNumericheApplicateall’IngegneriaAmbientale"

Copied!
103
0
0

Testo completo

(1)

Soluzioni Analitiche e Numeriche Applicate all’Ingegneria Ambientale

Massimiliano Martinelli

[email protected]

Università Politecnica delle Marche, Ancona Facoltà di Ingegneria

4-5 Febbraio 2009

(2)

Outline

1 Introduzione

2 Metodi numerici per la risoluzione di sistemi lineari Metodi diretti

Metodi iterativi

3 Metodi numerici per la risoluzione di sistemi non-lineari Caso unidimensionale

Caso multidimensionale

(3)

1 Introduzione

2 Metodi numerici per la risoluzione di sistemi lineari Metodi diretti

Metodi iterativi

3 Metodi numerici per la risoluzione di sistemi non-lineari Caso unidimensionale

Caso multidimensionale

4 Differenziazione numerica

(4)

Outline

1 Introduzione

2 Metodi numerici per la risoluzione di sistemi lineari Metodi diretti

Metodi iterativi

3 Metodi numerici per la risoluzione di sistemi non-lineari Caso unidimensionale

Caso multidimensionale

(5)

Il problema

Data una funzione F : D⊆ Rn→ Rn, trovare x∈ Rntale che

F(x) = 0 (1)

(6)

Sistemi non-lineari

Il problema

Data una funzione F : D⊆ Rn→ Rn, trovare x∈ Rntale che

F(x) = 0 (1)

Motivazione

Discretizzazione delle equazioni alle derivate parziali non lineari⇒ sistemi di equazioni non lineari

(7)

Il problema

Data una funzione F : D⊆ Rn→ Rn, trovare x∈ Rntale che

F(x) = 0 (1)

Motivazione

Discretizzazione delle equazioni alle derivate parziali non lineari⇒ sistemi di equazioni non lineari

Il problema seguente:

trovare x∈ Rntale che bF(x) = y per y∈ Rn

può essere scritto nella forma (1) semplicemente ponendo F(x) = bF(x) − y

(8)

Sistemi non-lineari

Il problema

Data una funzione F : D⊆ Rn→ Rn, trovare x∈ Rntale che

F(x) = 0 (1)

Motivazione

Discretizzazione delle equazioni alle derivate parziali non lineari⇒ sistemi di equazioni non lineari

Il problema seguente:

trovare x∈ Rntale che bF(x) = y per y∈ Rn

(9)

Al contrario del caso lineare non c’è una teoria generale che assicura l’esistenza e l’unicità della soluzione

(10)

Sistemi non-lineari

Al contrario del caso lineare non c’è una teoria generale che assicura l’esistenza e l’unicità della soluzione

La risoluzione numerica è sempre basata su un algoritmo iterativo

(11)

Al contrario del caso lineare non c’è una teoria generale che assicura l’esistenza e l’unicità della soluzione

La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x(0), la procedura iterativa consiste nel definire una successione x(k)

x(k+1)= G(x(k)) k≥ 0 in cui l’operatore G :Rn→ Rnverifica

G(x) = x ogni volta che F(x) = 0

(12)

Sistemi non-lineari

Al contrario del caso lineare non c’è una teoria generale che assicura l’esistenza e l’unicità della soluzione

La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x(0), la procedura iterativa consiste nel definire una successione x(k)

x(k+1)= G(x(k)) k≥ 0 in cui l’operatore G :Rn→ Rnverifica

G(x) = x ogni volta che F(x) = 0

(13)

Al contrario del caso lineare non c’è una teoria generale che assicura l’esistenza e l’unicità della soluzione

La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x(0), la procedura iterativa consiste nel definire una successione x(k)

x(k+1)= G(x(k)) k≥ 0 in cui l’operatore G :Rn→ Rnverifica

G(x) = x ogni volta che F(x) = 0

la scelta del punto di partenza x(0)è molto importante per la convergenza Esempio

G(x) = x + A(x)F(x) in cui A(x) : Rn→ Rn×nè una matrice non singolare

(14)

Definizione di contrazione

Una funzione G : D⊂ Rn→ Rnè una contrazione su un insieme D0⊂ D se esiste una costanteα< 1 tale che ||G(x) − G(y)|| ≤α||x − y|| per tutti gli x, y ∈ D0dove

||·|| è un’opportuna norma vettoriale.

(15)

Definizione di contrazione

Una funzione G : D⊂ Rn→ Rnè una contrazione su un insieme D0⊂ D se esiste una costanteα< 1 tale che ||G(x) − G(y)|| ≤α||x − y|| per tutti gli x, y ∈ D0dove

||·|| è un’opportuna norma vettoriale.

Teorema delle contrazioni (o del punto fisso, o di Banach-Caccioppoli)

Supponiamo che G : D⊂ Rn→ Rnè una contrazione su un insieme chiuso D0⊂ D e che G(x) ∈ D0per tutti gli x∈ D0. Allora esiste un unico punto x∈ D0

(chiamato punto fisso o punto unito) tale che G(x) = x

(16)

Definizione di contrazione

Una funzione G : D⊂ Rn→ Rnè una contrazione su un insieme D0⊂ D se esiste una costanteα< 1 tale che ||G(x) − G(y)|| ≤α||x − y|| per tutti gli x, y ∈ D0dove

||·|| è un’opportuna norma vettoriale.

Teorema delle contrazioni (o del punto fisso, o di Banach-Caccioppoli)

Supponiamo che G : D⊂ Rn→ Rnè una contrazione su un insieme chiuso D0⊂ D e che G(x) ∈ D0per tutti gli x∈ D0. Allora esiste un unico punto x∈ D0

(chiamato punto fisso o punto unito) tale che G(x) = x

Il teorema delle contrazioni fornisce la convergenza globale dell’algoritmo iterativo x(k+1)= G(x(k)) ma la definizione di contrattività è molto restrittiva

(17)

Supponiamo che:

G : D⊂ Rn→ Rnabbia un punto fisso xall’interno di D

G sia differenziabile con continuità in un intorno di x. Denotiamo con JGla matrice Jacobiana di G e assumiamo cheρ(JG(x)) ≤ 1.

Allora:

Esiste un intorno S di xtale che S⊂ D

Per ogni x(0)∈ S le iterate x(k+1)= G(x(k)) (k ≥ 0) appartengono tutte a D e convergono a x

(18)

Teorema di convergenza locale (Ostrowski) Supponiamo che:

G : D⊂ Rn→ Rnabbia un punto fisso xall’interno di D

G sia differenziabile con continuità in un intorno di x. Denotiamo con JGla matrice Jacobiana di G e assumiamo cheρ(JG(x)) ≤ 1.

Allora:

Esiste un intorno S di xtale che S⊂ D

Per ogni x(0)∈ S le iterate x(k+1)= G(x(k)) (k ≥ 0) appartengono tutte a D e convergono a x

Teorema di Ostrowski nel caso monodimensionale

Sia g :R→ R una funzione derivabile in un intorno di un punto fisso xe tale che

(19)

La successione{x(k)} converge ad xcon ordine p≥ 1 se:

β > 0 tale che ∀k ≥ k0si ha||x(k+1)− x|| ≤β||x(k)− x||p

(nel caso in cui p= 1, per avere convergenza si deve anche richiedere cheβ< 1)

(20)

Definizione di ordine di convergenza

La successione{x(k)} converge ad xcon ordine p≥ 1 se:

β > 0 tale che ∀k ≥ k0si ha||x(k+1)− x|| ≤β||x(k)− x||p

(nel caso in cui p= 1, per avere convergenza si deve anche richiedere cheβ< 1) Teorema

Sia g : D⊂ R → R la funzione che definisce l’iterazione x(k+1)= g(x(k)). Se g∈ Cp+1(I) (p ≥ 0) per un opportuno intorno I di un punto fisso x g(i)(x) = 0 per 0 ≤ i ≤ p

g(p+1)(x) 6= 0

Allora il metodo di punto fisso x(k+1)= g(x(k)) converge con ordine p + 1 e

(21)

Quante iterazioni bisogna fare per guadagnare quindici cifre significative nell’errore (ovvero||e(k+r)||

||e(k)|| =||x(k+r)− x||

||x(k)− x|| . 10−15)?

||e(k+r)|| ≤β||e(k+r−1)||pβp+1||e(k+r−2)||p2 ≤ ··· ≤βr−1i=0pi||e(k)||pr

ma

r−1 i=0

piè uguale a r se p= 1 e appr−1−1 se p6= 1, perciò abbiamo

||e(k+r)||

||e(k)||

( βr se p= 1

βp−11 ||e(k)||pr−1

se p6= 1 ovvero

r

log

||e(k+r)||

||e(k)||

/ logβ se p= 1

logh log

||e(k+r)||

||e(k)||

/ log

βp−11 ||e(k)|| + 1i

/ log p se p6= 1

(22)

r

log

||e(k+r)||

||e(k)||

/ logβ se p= 1

logh log

||e(k+r)||

||e(k)||

/ log

βp−11 ||e(k)|| + 1i

/ log p se p6= 1

siccome vogliamo che||e(k+r)||

||e(k)|| . 10−15otteniamo

r>

15 log 10logβ se p= 1

logh

1− 15log10/log

βp−11 ||e(k)||i

/ log p se p6= 1

supponendo cheβ= 0.9 e ||e(k)|| = 0.5 otteniamo

328 se p= 1

(23)

Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto

Se f(x) è continua nell’intervallo [a, b] e se f (a)f (b) ≤ 0, allora f (x) si annulla almeno una volta nell’intervallo[a, b]

(24)

Metodo di bisezione (caso unidimensionale f(x) = 0)

Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto

Se f(x) è continua nell’intervallo [a, b] e se f (a)f (b) ≤ 0, allora f (x) si annulla almeno una volta nell’intervallo[a, b]

Algoritmo

Sia a(0)= a, b(0)= b e x(0)=12(a(0)+ b(0)). Allora, per k ≥ 0

1 Se f(a(k))f (x(k)) ≤ 0 porre a(k+1)= a(k), b(k+1)= x(k), altrimenti porre a(k+1)= x(k), b(k+1)= b(k)

2 Calcolare x(k+1)=12(a(k)+ b(k))

(25)

Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto

Se f(x) è continua nell’intervallo [a, b] e se f (a)f (b) ≤ 0, allora f (x) si annulla almeno una volta nell’intervallo[a, b]

Algoritmo

Sia a(0)= a, b(0)= b e x(0)=12(a(0)+ b(0)). Allora, per k ≥ 0

1 Se f(a(k))f (x(k)) ≤ 0 porre a(k+1)= a(k), b(k+1)= x(k), altrimenti porre a(k+1)= x(k), b(k+1)= b(k)

2 Calcolare x(k+1)=12(a(k)+ b(k))

Questo algoritmo genera una successione di intervalli Ik= [ak, bk] con f(ak)f (bk) < 0 e tali che Ik⊂ Ik−1con|Ik| = |bk− ak| =12|bk−1− ak−1| =|Ik|

2

(26)

Metodo di bisezione (caso unidimensionale f(x) = 0)

Criteri di arresto:

|bk− ak| <ε1 oppure

f ak+ bk

2

 ε2

(27)

Criteri di arresto:

|bk− ak| <ε1 oppure

f ak+ bk

2

 ε2

È un metodo globalmente convergente (cioé indipendente dal punto di partenza)

Non garantisce una diminuzione monotona dell’errore È un algoritmo di convergenza sicura ma lenta

(28)

Metodo di bisezione (caso unidimensionale f(x) = 0)

Criteri di arresto:

|bk− ak| <ε1 oppure

f ak+ bk

2

 ε2

È un metodo globalmente convergente (cioé indipendente dal punto di partenza)

Non garantisce una diminuzione monotona dell’errore È un algoritmo di convergenza sicura ma lenta

Utilizza come unica informazione i segni della funzione in alcuni punti

(29)

Criteri di arresto:

|bk− ak| <ε1 oppure

f ak+ bk

2

 ε2

È un metodo globalmente convergente (cioé indipendente dal punto di partenza)

Non garantisce una diminuzione monotona dell’errore È un algoritmo di convergenza sicura ma lenta

Utilizza come unica informazione i segni della funzione in alcuni punti ⇒ Per una convergenza più veloce si devono degli algoritmi che tengano conto di informazioni aggiuntive (valori assunti dalla funzione, derivate, . . . )

(30)

Supponendo che f ∈ C1(R) e usando lo sviluppo di Taylor nell’intorno del punto xabbiamo che

f(x) = 0 = f (x) + (x− x)f(ξ) conξ∈]x, x[

(31)

Supponendo che f ∈ C1(R) e usando lo sviluppo di Taylor nell’intorno del punto xabbiamo che

f(x) = 0 = f (x) + (x− x)f(ξ) conξ∈]x, x[

Questo suggerisce la seguente famiglia di metodi iterativi f(x(k)) + (x(k+1)− x(k))qk= 0 k≥ 0 ovvero

x(k+1)= x(k)− q−1k f(x(k)) k≥ 0 in cui qkè un’opportuna approssimazione di f(x(k))

(32)

Supponendo che f ∈ C1(R) e usando lo sviluppo di Taylor nell’intorno del punto xabbiamo che

f(x) = 0 = f (x) + (x− x)f(ξ) conξ∈]x, x[

Questo suggerisce la seguente famiglia di metodi iterativi f(x(k)) + (x(k+1)− x(k))qk= 0 k≥ 0 ovvero

x(k+1)= x(k)− q−1k f(x(k)) k≥ 0 in cui qkè un’opportuna approssimazione di f(x(k))

(33)

Si costruisce una successione

x(k+1)= x(k)f(x(k))

q k≥ 0

in cui q=f(b) − f (a)

b− a (pendenza della retta passante per i punti(a, f (a)) e (b, f (b)))

(34)

Metodo delle corde: qk = q

Si costruisce una successione

x(k+1)= x(k)f(x(k))

q k≥ 0

in cui q=f(b) − f (a)

b− a (pendenza della retta passante per i punti(a, f (a)) e (b, f (b)))

Il metodo converge linearmente se 0<f(x) q < 2

(35)

Si costruisce una successione

x(k+1)= x(k)f(x(k))

q k≥ 0

in cui q=f(b) − f (a)

b− a (pendenza della retta passante per i punti(a, f (a)) e (b, f (b)))

Il metodo converge linearmente se 0<f(x) q < 2 Una valutazione della funzione f(x) per ogni iterazione

(36)

Metodo delle secanti

Si scelgono due punti di partenza x(−1)e x(0) Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k−1)) x(k)− x(k−1)

qk= pendenza della retta passante per i punti (x(k−1), f (x(k−1))) e (x(k), f (x(k))))

(37)

Si scelgono due punti di partenza x(−1)e x(0) Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k−1)) x(k)− x(k−1)

qk= pendenza della retta passante per i punti (x(k−1), f (x(k−1))) e (x(k), f (x(k))))

Se f ∈ C2(I) (dove I è un opportuno intorno di x), f′′(x) 6= 0 e x(−1), x(0)∈ I, allora il metodo converge con ordine p= (1 +

5)/2 ≃ 1.63

(38)

Metodo delle secanti

Si scelgono due punti di partenza x(−1)e x(0) Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k−1)) x(k)− x(k−1)

qk= pendenza della retta passante per i punti (x(k−1), f (x(k−1))) e (x(k), f (x(k))))

Se f ∈ C2(I) (dove I è un opportuno intorno di x), f′′(x) 6= 0 e x(−1), x(0)∈ I,

(39)

È una variante del metodo delle secanti

Si scelgono due punti di partenza x(−1)e x(0)tali che f(x(−1))f (x(0)) < 0 Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k))

x(k)− x(k) dove kè il massimo indice minore di k tale che f(x(k))f (x(k)) < 0

(40)

Regula falsi

È una variante del metodo delle secanti

Si scelgono due punti di partenza x(−1)e x(0)tali che f(x(−1))f (x(0)) < 0 Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k))

x(k)− x(k) dove kè il massimo indice minore di k tale che f(x(k))f (x(k)) < 0

La convergenza di questo metodo è lineare

Al contrario del metodo delle secanti, le iterate sono tutte contenute in

(41)

È una variante del metodo delle secanti

Si scelgono due punti di partenza x(−1)e x(0)tali che f(x(−1))f (x(0)) < 0 Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0

in cui qk=f(x(k)) − f (x(k))

x(k)− x(k) dove kè il massimo indice minore di k tale che f(x(k))f (x(k)) < 0

La convergenza di questo metodo è lineare

Al contrario del metodo delle secanti, le iterate sono tutte contenute in [x(−1), x(0)] e il metodo è globalmente convergente

Due valutazione della funzione f(x) per ogni iterazione

(42)

Metodo di Newton

Si richiede che f sia derivabile

(43)

Si richiede che f sia derivabile Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0 in cui qk= f(x(k))

qkè la pendenza della retta tangente alla funzione f(x) nel punto (x(k), f (x(k)))

(44)

Metodo di Newton

Si richiede che f sia derivabile Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0 in cui qk= f(x(k))

qkè la pendenza della retta tangente alla funzione f(x) nel punto (x(k), f (x(k))) La convergenza di questo metodo è quadratica vicino alla soluzione

(45)

Si richiede che f sia derivabile Si costruisce una successione

x(k+1)= x(k)f(x(k))

qk k≥ 0 in cui qk= f(x(k))

qkè la pendenza della retta tangente alla funzione f(x) nel punto (x(k), f (x(k))) La convergenza di questo metodo è quadratica vicino alla soluzione

Per ogni iterazione bisogna fare una valutazione di f(x) e una valutazione della derivata f(x)

(46)

Metodo di Newton

Metodo di Newton

Sia F :Rn→ Rnuna funzione differenziabile, e sia JF(x) la sua matrice Jacobiana (JF(x))ij=Fi

xj

(x)

(47)

Metodo di Newton

Sia F :Rn→ Rnuna funzione differenziabile, e sia JF(x) la sua matrice Jacobiana (JF(x))ij=Fi

xj

(x)

Il metodo di Newton si scrive allora come segue:

Dato x(0)∈ Rn, per k= 0, 1, . . . , fino alla convergenza

1 Risolvere il sistema lineare JF(x(k))δδδx(k)= −F(x(k))

2 Calcolare x(k+1)= x(k)+δδδx(k)

(48)

Metodo di Newton

Metodo di Newton

Sia F :Rn→ Rnuna funzione differenziabile, e sia JF(x) la sua matrice Jacobiana (JF(x))ij=Fi

xj

(x)

Il metodo di Newton si scrive allora come segue:

Dato x(0)∈ Rn, per k= 0, 1, . . . , fino alla convergenza

1 Risolvere il sistema lineare JF(x(k))δδδx(k)= −F(x(k))

2 Calcolare x(k+1)= x(k)+δδδx(k)

Il metodo di Newton è un modo di risolvere un problema non lineare mediante

(49)

Metodo di Newton

Sia F :Rn→ Rnuna funzione differenziabile, e sia JF(x) la sua matrice Jacobiana (JF(x))ij=Fi

xj

(x)

Il metodo di Newton si scrive allora come segue:

Dato x(0)∈ Rn, per k= 0, 1, . . . , fino alla convergenza

1 Risolvere il sistema lineare JF(x(k))δδδx(k)= −F(x(k))

2 Calcolare x(k+1)= x(k)+δδδx(k)

Il metodo di Newton è un modo di risolvere un problema non lineare mediante la linearizzazione

E’ richiesta la risoluzione di un sistema lineare per ogni passo di iterazione

(50)

Metodo di Newton

Risultato di convergenza Se:

F :Rn→ Rnuna funzione differenziabile in un aperto convesso diRn contenente x

JF(x) è invertibile e tale che ||JF−1(x)|| ≤ C, con C > 0 esistono due costanti positive R e L tali che

||JF(x) − JF(y)|| ≤ L||x − y|| ∀x,y ∈ B(x; R) Allora esiste r> 0 tale che, per ogni x(0)∈ B(x; R), la sequenza

x(k+1)= x(k)− J−1F (x(k))F(x(k))

(51)

Considerazioni

Come risolvere JF(x(k))δδδx(k)= −F(x(k)) ?

(52)

Metodo di Newton

Considerazioni

Come risolvere JF(x(k))δδδx(k)= −F(x(k)) ?

Calcolare (e memorizzare) la matrice Jacobiana JF(x(k)) e poi risolvere il sistema lineare

Calcolare il prodotto JF(x(k))y per un generico y ∈ Rned utilizzare un metodo di risoluzione matrix-free (per esempio GMRES)

(53)

Considerazioni

Come risolvere JF(x(k))δδδx(k)= −F(x(k)) ?

Calcolare (e memorizzare) la matrice Jacobiana JF(x(k)) e poi risolvere il sistema lineare

Calcolare il prodotto JF(x(k))y per un generico y ∈ Rned utilizzare un metodo di risoluzione matrix-free (per esempio GMRES)

In generale, se n è grande il calcolo di JF(x(k)) può essere costoso Inoltre, JF(x(k)) può essere mal condizionata

⇒ varianti al metodo di Newton

(54)

Varianti del Metodo di Newton

Valutazione ciclica della matrice Jacobiana

Si usa la stessa matrice Jacobiana per un certo numero r di iterazioni Ha senso usare questo metodo solo se si utilizzano approcci basati sulla fattorizzazione (eseguita una volta ogni r iterazioni)

(55)

Valutazione ciclica della matrice Jacobiana

Si usa la stessa matrice Jacobiana per un certo numero r di iterazioni Ha senso usare questo metodo solo se si utilizzano approcci basati sulla fattorizzazione (eseguita una volta ogni r iterazioni)

Algoritmo

Per x(0)∈ Rne k= 0, 1, . . . fino alla convergenza Calcolare (e fattorizzare) A= JF(x(rk)) Per i= 0, . . . , r − 1

Risolvere Aδδδx(rk+i)= −F(x(rk+i)) Calcolare x(rk+i+1)= x(rk+i)+δδδx(rk+i)

(56)

Risoluzione approssimata del sistema lineare

Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta

Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov, . . .

(57)

Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta

Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov, . . .

Esempio: Newton-Gauss-Seidel a un passo

Il singolo passo dell’iterazione di Gauss-Seidel è x(r+1)= (D − E)−1Fx(r)+ (D − E)−1b

(58)

Risoluzione approssimata del sistema lineare

Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta

Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov, . . .

Esempio: Newton-Gauss-Seidel a un passo

Il singolo passo dell’iterazione di Gauss-Seidel è x(r+1)= (D − E)−1Fx(r)+ (D − E)−1b

Il singolo passo dell’iterazione di Newton è x(k+1)= x(k)− JF−1(x(k))F(x(k))

(59)

Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta

Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov, . . .

Esempio: Newton-Gauss-Seidel a un passo

Il singolo passo dell’iterazione di Gauss-Seidel è x(r+1)= (D − E)−1Fx(r)+ (D − E)−1b

Il singolo passo dell’iterazione di Newton è x(k+1)= x(k)− JF−1(x(k))F(x(k)) Il termine noto del sistema lineare JF(x(k))δδδx(k)= −F(x(k)) è b = −F(x(k))

(60)

Risoluzione approssimata del sistema lineare

Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta

Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov, . . .

Esempio: Newton-Gauss-Seidel a un passo

Il singolo passo dell’iterazione di Gauss-Seidel è x(r+1)= (D − E)−1Fx(r)+ (D − E)−1b

Il singolo passo dell’iterazione di Newton è x(k+1)= x(k)− JF−1(x(k))F(x(k)) Il termine noto del sistema lineare JF(x(k))δδδx(k)= −F(x(k)) è b = −F(x(k)) Si effettua un passo del metodo di Gauss-Seidel per calcolareδδδx(k)

Riferimenti

Documenti correlati

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Il metodo SOR ha quale costante quasi ottimale w = 1.350; Il metodo del gradiente coniugato converge in meno iterazioni rispetto agli altri metodi (solo 5 iterazioni, ma si osservi

Si rimane un po’ sorpresi dal fatto che per w = 1.350 il numero di iterazioni fosse inferiore di quello fornito dal valore ottimale teorico w ∗ = 1.333.. Il fatto `e che questo

Nei metodi diretti, la presenza di eventuali element nulli nella matrice non può essere sfruttata ai fini di ridurre il costo computa- zionale e l’occupazione

Geometricamente, il metodo costruisce ad ogni passo l’approssimazione della radice calcolando l’intersezione della retta passan- te per i punt (a i ,sgn(a i )) e (b

I problemi matematici che saranno affrontati nelle pagine seguenti sono problemi di base: risoluzione di sistemi lineari, approssimazione delle radici di funzioni non

Soluzione numerica di una EDP =⇒ soluzione di (almeno) un sistema lineare Soluzione di problemi non lineari spesso ricondotta alla risoluzione di una sequenza di sistemi