Metodi numerici per l`approssimazione degli zeri di equazioni non

Corso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis
a.a. 2013-14
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Risoluzione di Equazioni non lineari
Sia F ∈ C0 ([a, b]), cioé F è una funzione continua in un intervallo
[a, b] ⊂ R, tale che F(a)F(b) < 0
1.5
F(b)
1
0.5
0
a
b
−0.5
F(a)
−1
−1.5
−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
Vogliamo trovare le radici dell’equazione non lineare
F(x) = 0.
La condizione F(a)F(b) < 0 è una condizione sufficiente per
l’esistenza di almeno una radice di F in [a, b].
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Bisezione
Questo metodo consiste nel costruire, a partire dall’intervallo [a, b],
una successione di intervalli incapsulati
[a, b] = [a0 , b0 ] ⊃ [a1 , b1 ] ⊃ · · · ⊃ [an , bn ],
tutti contenenti la radice x̄ di F, tale che
bn − an → 0
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
per n → +∞
Corso di Matematica per la Chimica
Se, ad esempio, F(a) = F(a0 ) < 0 e F(b) = F(b0 ) > 0, gli intervalli
[ak , bk ], k = 1, . . . , n, della successione vengono determinati come
segue:
dato [ak−1 , bk−1 ], determiniamo il punto medio
mk =
bk−1 − ak−1
ak−1 + bk−1
= ak−1 +
;
2
2
se F(mk ) = 0 allora x̄ = mk e abbiamo terminato;
se F(mk ) 6= 0 allora analizziamo il segno di F(mk ) e poniamo
(
[ak−1 , mk ] se F(mk ) > 0
[ak , bk ] =
[mk , bk−1 ] se F(mk ) < 0
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Bisezione
Dopo n passi si giunge all’intervallo [an , bn ] contenente la radice x̄ e
di ampiezza
bn − an =
bn−1 − an−1
bn−2 − an−2
b−a
=
= ··· =
2
22
2n
Come stima di di x̄ scegliamo
xn+1 = mn+1 =
an + bn
2
cosı̀ che
x̄ = xn+1 ± εn+1 ,
dove
b−a
2n+1
è l’errore assoluto di approssimazione della radice x̄ di F.
εn+1 = |x̄ − xn+1 | <
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Fissata una tolleranza TOLL, è possibile determinare il numero di
iterazioni k necessarie per approssimare la radice x̄ con precisione
TOLL imponendo che
|x̄ − xn | <
b−a
< TOLL.
2n
Infatti, possiamo scrivere
b−a
< 2n
TOLL
log
b−a
TOLL
< log(2n ) = n log 2
b−a
log TOLL
n>
log 2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Dunque prendiamo
$
n=
b−a
log TOLL
log 2
%
+1
dove bac denota la parte intera inferiore di a.
Ogni 3.3 passi circa prendiamo una cifra decimale corretta
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Bisezione
Per stimare la velocità di convergenza del metodo di bisezione
utilizziamo il seguente teorema che vale per tutte le successioni
numeriche convergenti
Teorema
Sia {xn }n una successione convergente al valore x̄. Poniamo
εn = |x̄ − xn |. Se esiste un numero reale p ≥ 1 e una costante reale
positiva C tale che
εn+1
lim
p =C
n→+∞ εn
allora la successione {xn }n ha ordine di convergenza p.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Poiché per il metodo di bisezione si ha
εn+1
1
=
εn
2
il suo ordine di convergenza è 1, cioè converge molto lentamente.
Va però osservato che il metodo richiede solo la continuità della
funzione F e la conoscenza del segno di F negli estremi
dell’intervallo [a, b].
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodi Iterativi
Partendo dal punto iniziale x0 , generiamo i valori x1 , x2 , . . . , xn nel
seguente modo:
Conduciamo dal punto (x0 , F(x0 )) una retta con pendenza m0 e
scegliamo come approssimazione x1 l’intersezione di tale retta
con l’asse delle x;
Conduciamo dal punto (x1 , F(x1 )) una retta con pendenza m1 e
scegliamo come approssimazione x2 l’intersezione di tale retta
con l’asse delle x;
...
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Dunque ad ogni passo scegliamo come approssimazione della radice x̄
di F, la radice dell’equazione lineare
F(xn ) + mn (x − xn ) = 0,
cioè
xn+1 = xn −
F(xn )
mn
(1)
Una formula del tipo (1) viene detta formula iterativa e si dice che la
successione x1 , x2 , . . . , xn , . . . viene costruita mediante un
procedimento iterativo.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodi Iterativi
La funzione
g(x) = x −
F(x)
mn
tale che
xn+1 = g(xn )
viene detta funzione di iterazione semplice perchè per la costruzione
della successione {xn }n utilizza solo il punto x0 .
Si parla di procedimenti iterativi multipli quando
xn+k = g(xn+k−1 , xn+k−2 , . . . , xn ),
k > 1,
cioè la successione {xn }n è costruita a partire dai punti
x0 , x1 , . . . , xk−1 .
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodi Iterativi
Per determinare l’ordine di convergenza di un procedimento iterativo
semplice utilizziamo il seguente
Teorema
Condizione necessaria e sufficiente affinchè un procedimento
iterativo semplice e convergente ad x̄ abbia ordine di convergenza n è
che, se la funzione di iterazione g è dotata di derivata n−esima
continua per x = x̄, risulti
g0 (x̄) = g00 (x̄) = · · · = g(n−1) (x̄) = 0
e
g(n) (x̄) 6= 0.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Criteri di Arresto
Quando si implementa in maniera automatica un procedimento
iterativo del tipo
xn+1 = g(xn ),
n = 0, 1, . . . ,
occorrono uno o più criteri per arrestare tale procedimento.
Fissata una tolleranza TOLL arbitrariamente piccola, i criteri di
arresto usualmente utilizzati sono:
1
2
3
|F(xn )| < TOLL,
tanto più è piccolo TOLL tanto più xn è vicino ad x̄;
|xn+1 − xn |
|xn+1 − xn | < TOLL oppure
< TOLL,
|xn+1 |
tanto più è piccolo TOLL tanto più xn è vicino al limite della
successione x̄;
numero delle iterazioni ≤ ITMAX,
ITMAX è una variabile intera fissata
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il criterio 3 entra in gioco quando i primi due falliscono, cioè quando
la funzione y = F(x) ha un andamento del seguente tipo:
2
1.5
1
0.5
0
−0.5
−1
−1.5
−2.5
−2
−1.5
−1
−0.5
|xn+1 − xn |
> TOLL
|xn+1 |
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
0
0.5
1
1.5
2
2.5
ma |f (xn )| < TOLL
Corso di Matematica per la Chimica
1.5
1
0.5
0
−0.5
−1
−1.5
−2.5
−2
−1.5
−1
−0.5
|xn+1 − xn |
< TOLL
|xn+1 |
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
0
0.5
1
1.5
2
2.5
ma |f (xn )| > TOLL
Corso di Matematica per la Chimica
La variabile ITMAX viene anche detta variabile tappo.
In generale è preferibile utilizzare tutti e tre i criteri.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Newton o delle tangenti
Nella formula
xn+1 = xn −
F(xn )
mn
le direzioni mn possono essere scelte in vari modi.
In questo metodo la direzione scelta ad ogni passo è quello della
tangente alla curva y = F(x) nel punto xn , cioè
mn = F 0 (xn )
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Dunque il metodo è dato da
xn+1 = xn −
F(xn )
,
F 0 (xn )
n = 0, 1, . . .
La funzione di iterazione è quindi
g(x) = x −
F(x)
.
F 0 (x)
Appare evidente che il metodo perde di significato se per qualche n
risulta F 0 (xn ) = 0. Dunque in generale si suppone che
F 0 (x) 6= 0,
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
∀x ∈ [a, b].
Corso di Matematica per la Chimica
La formula iterativa
xn+1 = xn −
F(xn )
,
F 0 (xn )
n = 0, 1, . . .
ci permette di calcolare la successione x1 , x2 , . . . a partire dal punto x0 .
Domanda Come scegliamo il punto x0 ?
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il seguente teorema stabilisce delle condizioni per la determinazione
di un intervallo [a, b] per il quale il metodo di Newton converge per
ogni scelta di x0 ∈ [a, b]
Teorema
Sia F(x) ∈ C2 ([a, b]) con [a, b] chiuso e limitato. Se
1
F(a)F(b) < 0;
2
F 0 (x) 6= 0,
3
F 00 (x)
4
∀x ∈ [a, b];
≥ 0 oppure F 00 (x) ≤ 0, ∀x ∈ [a, b];
F(b) F(a) <
(b
−
a)
e
F0 (a) F0 (b) < (b − a);
allora il Metodo di Newton converge all’unica soluzione x̄ ∈ [a, b] per
ogni scelta di x0 ∈ [a, b].
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Ordine di convergenza del Metodo di Newton
g0 (x) = 1 −
F(x)F 00 (x)
(F 0 (x))2 − F(x)F 00 (x)
=
(F 0 (x))2
(F 0 (x))2
ma, poichè assumiamo che F(x̄) = 0, si ha
g0 (x̄) = 0.
g00 (x) =
(F 0 (x)F 00 (x)+F(x)F 000 (x))(F 0 (x))2 −2F 0 (x)F(x)(F 00 (x))2
(F 0 (x))4
e quindi
g00 (x̄) =
F 00 (x̄)
F 0 (x̄)
che, in generale, è diverso da 0.
Dunque, in generale, il metodo ha ordine di convergenza 2.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Domanda Cosa succede se x̄ è uno zero doppio, cioè
F(x̄) = F 0 (x̄) = 0
e F 00 (x̄) 6= 0?
In questo caso non è possibile calcolare né g né g0 in x̄, ma è possibile
definirli per continuità:
F(x)
F 0 (x)
=
x̄
−
lim
= x̄
x→x̄ F 0 (x)
x→x̄ F 00 (x)
g(x̄) = x̄ − lim
F(x)
F 0 (x)
1
00
=
F
(x̄)
lim
=
x→x̄ (F 0 (x))2
x→x̄ 2F 0 (x)F 00 (x)
2
g0 (x̄) = F 00 (x̄) lim
Dunque se x̄ è uno zero doppio, essendo g0 (x̄) 6= 0, il metodo di
Newton ha ordine di convergenza 1.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Piú in generale, se x̄ è uno zero d’ordine r, cioè
F(x̄) = F 0 (x̄) = · · · = F (r−1) (x̄) = 0
e F (r) (x̄) 6= 0,
allora
1
6= 0,
r
dunque il metodo di Newton ha ancora ordine di convergenza 1.
g0 (x̄) = 1 −
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Newton per radici multiple
Quando x̄ è uno zero multiplo è possibile modificare leggermente il
metodo di Newton per “recuperare” l’ordine 2.
Si considera la seguente formula iterativa:
xn+1 = xn − 2
F(xn )
,
F 0 (xn )
n = 0, 1, . . .
la cui funzione di iterazione è
g(x) = x − 2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
F(x)
.
F 0 (x)
Corso di Matematica per la Chimica
La precedente formula iterativa ha ordine di convergenza 2, infatti,
poiché
g0 (x) = 1 − 2
F(x)F 00 (x)
(F 0 (x))2 − F(x)F 00 (x)
=
2
− 1,
(F 0 (x))2
(F 0 (x))2
otteniamo
g0 (x̄) = 2F 00 (x̄) lim
x→x̄
F(x)
− 1 = 1 − 1 = 0.
(F 0 (x))2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo di Newton per radici multiple
In generale se x̄ è una radice multipla di ordine r si utilizza la
seguente formula iterativa
xn+1 = xn − r
F(xn )
,
F 0 (xn )
n = 0, 1, . . .
il cui ordine di convergenza è ancora 2.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Esistono opportune modifiche anche nei casi in cui la molteplicità
della radice è > 1 ma non è nota e nei casi in cui la molteplicità è
infinita.
Esistono delle varianti del Metodo di Newton che hanno ordine di
convergenza > 2.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
Quando la funzione F ha radici multiple, abbiamo visto che da un
punto di vista teorico il Metodo di Newton converge. Tuttavia, spesso
si verifica che esso numericamente non converge.
La stessa cosa certe volte accade quando F ha radici “quasi multiple”.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
La convergenza del Metodo di Newton è garantita quando, supposte
soddisfatte le ipotesi del teorema, l’approssimazione iniziale x0 è
“sufficientemente” vicina alla radice x̄.
Pertanto tale metodo si rivela spesso efficiente soprattutto per
migliorare un’approssimazione “sufficientemente” buona ottenuta con
un metodo di ordine più basso la cui convergenza è assicurata.
In generale, anzichè verificare le ipotesi del teorema, è preferibile
utilizzare il Metodo di bisezione per determinare un’approssimazione
della radice con 1 o 2 cifre decimali corrette, e poi applicare il
Metodo di Newton per ottenere con pochissime iterazioni la
precisione desiderata.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica