Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di...
Transcript of Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di...
1
Appunti di Matematica Computazionale Lezione2
Metodi di Iterazione Funzionale
Il problema di calcolare il valore x* per cui F(x*) = 0 si può sempre trasformare in
quello di trovare il punto fisso di una funzione G(x), cioè trovare x* tale che
x* = G(x*).
Per far ciò una possibilità è scegliere
)()()( xFxxxG ⋅Φ−=
dove la funzione )(xΦ è tale che +∞<Φ< )(0 x . Con questa scelta i due problemi
sono certamente equivalenti, cioè
x* = G(x*) ⇔ F(x*) = 0
Infatti se x* è tale che F(x*) = 0 ⇒ x* = G(x*)
Viceversa se x* è tale che x* = G(x*) ⇒ **)(*)(* xxFxx =⋅Φ−
⇒ F(x*) = 0 perché )(xΦ non è mai zero
Possiamo quindi utilizzare per calcolare gli zeri di una funzione F(x) un metodo noto
per calcolare il punto fisso di una funzione G(x).
Metodo dell’iterazione funzionale o metodo delle approssimazioni successive
Questo metodo consiste nel generare una successione di iterati { }kx dalla relazione
0),(1 >=+ kxGx kk (1)
in modo tale che se x* è un punto fisso di G(x), cioè se
x*=G(x*)
la successione di iterati (1) converge a x*, cioè se
*lim xxkk=
→∞ .
2
I seguenti teoremi fissano delle condizioni sufficienti affinché sia garantita sia la
convergenza globale (Teorema 1) sia quella locale (Teorema2).
Teorema1: CONVERGENZA GLOBALE
Sia [a,b] un intervallo chiuso e limitato e sia G(x) una funzione definita in [a,b] che
soddisfa le seguenti condizioni:
1. G(x) è continua in [a,b]
2. G(x) ∈[a,b] per ogni x ∈[a,b]
3. G(x) è derivabile in [a,b] e 1|)('| <≤ λxG per ogni x ∈[a,b] .
Allora per ogni scelta del punto x0 ∈[a,b] la successione degli iterati
),( 1−= kk xGx converge all’unica soluzione x* dell’equazione x = G(x), cioè
al punto fisso di G(x).
Inoltre abbiamo che
.||1
|*| 01 xxxxk
k −−
≤−λ
λ
Spesso è assai difficile verificare la condizione 2) del Teorema di Convergenza
Globale. In tale situazione è utile il seguente teorema che assicura la convergenza
degli iterati xk ad un punto fisso x* di G(x), purchè l’iterato iniziale x0 sia scelto
sufficientemente vicino ad x*.
Teorema2: CONVERGENZA LOCALE
Se x = G(x) possiede una radice x* e se nell’intervallo ]*,*[ ρρ +− xx ρ>0, ossia per
ρ<− *xx , G(x) è continua e derivabile e soddisfa la condizione
10)(' <≤≤ λλxG
Allora per ogni 0x appartenente all’intorno di x* e raggio ρ, tutti gli iterati kx
appartengono a questo intorno e convergono a x*, questa è inoltre l’unica radice di
G(x)=x.
3
Esempi del comportamento del metodo delle iterazioni successive in funzione del
modulo della G’(x).
4
Velocità di convergenza del metodo delle approssimazioni successive.
Per verificare la velocità di convergenza del metodo delle approssimazioni
successive, si deve supporre che la G(x) oltre a soddisfare le ipotesi che assicurano la
convergenza sia anche derivabile più volte; possiamo allora considerarne lo sviluppo
in serie di Taylor nell’intorno U(x*) di raggio ρ; si ha allora
*)(xUxi ∈
....*)(''2
*)(*)('*)(*)()(
2
1 +−
+−+==+ xGxx
xGxxxGxGx iiii
tralasciando i termini di ordine superiore al secondo abbiamo
*)(''2
*)(*)('*)(*
2
1 xGxx
xGxxxx iii
−+−≤−+
Se ora avviene che
0*)(' =xG e ],[0)('' baxxG ∈∀≠
otteniamo che
2
1 *2
*)(''* xx
xGxx ii −≤−+
cioè si ha un metodo del secondo ordine.
Nel caso in cui 0*)(' =xG esiste un teorema che ci assicura la convergenza locale del
metodo iterativo delle approssimazioni successive:
Teorema:
Sia I un intervallo (limitato o non) e sia G(x) una funzione continua insieme alla sua
derivata prima in I. Sia x* una radice in I dell’equazione x-G(x)=0 (cioè x* sia punto
fisso di G(x) ) e sia 0*)(' =xG . Allora esiste sempre un numero ρ per cui il metodo
5
delle approssimazioni successive genera una successione di iterati kx convergente a
x* per ogni 0x che soddisfa la condizione
ρ≤− *0 xx .
Sulla base dei teoremi precedenti, vogliamo ora costruire un metodo del secondo
ordine scegliendo opportunamente la funzione )(xΦ nella relazione
)()()( xFxxxG ⋅Φ−= , +∞<Φ< )(0 x , ],[ bax∈ ,
in modo tale che 0*)(' =xG .
Se riusciamo a fare questo, non solo avremo un metodo che sicuramente converge
localmente, ma che è anche un metodo di ordine p=2.
*)('*)(1*)('*)(*)(*)('1*)(' xFxxFxxFxxG Φ−=Φ−⋅Φ−=
Se 0*)(' ≠xF la condizione 0*)(' =xG implica
.*)('
1*)(
xFx =Φ
In questo caso il metodo delle approssimazioni successive
)()()(1 kkkkk xFxxxGx ⋅Φ−==+
fornisce il seguente schema iterativo
)('
)(1
k
kkk xF
xFxx −=+ (*)
Questo dimostra la convergenza del secondo ordine del metodo di Newton, e allo
stesso tempo il fatto che esso è un metodo a convergenza locale.
Metodo di Newton
6
Il metodo delle secanti rappresenta una approssimazione del metodo di Newton, in
quanto sostituisce il valore della derivata F’ (xk) con il rapporto incrementale
1
1)()(
−
−
−−
kk
kk
xx
xFxF
Anche esso quindi risulta essere un metodo a convergenza locale. Il suo ordine di
convergenza è 1<p<2, cioè p=1.618.
Il metodo di Newton e il metodo delle secanti sono metodi a convergenza locale. La
difficoltà pratica sta nel trovare l’intervallo di convergenza, cioè nel trovare un valore
iniziale x0 tale che la successione di iterati converga alla soluzione cercata. Un
metodo pratico è quello di far precedere questi metodi da un metodo a convergenza
globale come ad esempio il metodo di bisezione. Dopo alcuni passi del metodo
globale si innesca quello di ordine superiore. Se esso non converge, si devono fare
altri passi del metodo globale.
Osservazione:
Se x* è uno zero di molteplicità m allora il metodo di Newton non ha più
convergenza quadratica. Si dimostra che diventa a convergenza lineare del tipo
|*||*| 1 xxcxx kk −≈−+
con
m
mc
1−= .
Per esempio per radici doppie, m=2 e quindi 2
1=c .
7
Esempio:
Facendo uso del metodo di Newton vogliamo calcolare la soluzione dell’equazione
02 =− ax senza estrarre la radice quadrata.
axxf −= 2)( xxf 2)(' = .
Lo schema iterativo di Newton diventa quindi
.21
2
2
1
+=−−=+
k
k
k
kkk x
ax
x
axxx
Nell’innescare il metodo iterativo si può assumere come valore iniziale 10 =x . Infatti
essendo interessati alla radice positiva vale )(' xG <1 in tutto il semiasse positivo. Se
il valore iniziale 1 è molto distante dal valore cercato a , il metodo impiegherà solo
più iterazioni.
8
Ben posizione del problema
Lavorando con il calcolatore, si lavora con numeri finiti e quindi la soluzione che si
determina non è quella esatta, ma una sua approssimazione. Occorre valutare quanto
differisce questa soluzione da quella vera.
Sia x* tale che F(x*)=0. Lavorando con i numeri finiti quello che si ottiene è un
valore sicuramente un po’ diverso da x* che chiamiamo *εx . Esso può essere visto
come lo zero esatto di una funzione perturbata, cioè tale che 0)( * =εε xF , dove εF è
una perturbazione di F.
Per studiare di quanto *εx differisce da x* dobbiamo fare qualche ipotesi sulla
funzione F(x).
Supponiamo che la funzione F(x) sia continua, insieme alle sue derivate prima e
seconda in [a,b]. Associamo ad essa una funzione H(x) che goda delle stesse
proprietà e un numero ε sufficientemente “piccolo”. Il valore calcolato
numericamente *εx può essere visto come la radice dell’equazione
0)()()( =+= xHxFxF εε (2)
dove )(xHε rappresenta la perturbazione della funzione originale.
Per valutare, o meglio per calcolare un limite superiore al valore della quantità
*)( * xx −ε , si considera lo sviluppo in serie di Taylor di )(xFε nel punto *εx ,
troncato al termine quadratico, cioè
)(''*)(21
*)('*)(*)()( 2*** ζεεεεεεε FxxxFxxxFxF −+−+= (3)
dove *],[ * xxεζ ∈ è un opportuno punto.
Dalla (2) si ottiene
9
)(')(')(' xHxFxF εε +=
E ricordando che 0*)(0)( * == xFexF εε la (3) diventa
)(''*)(21
)(''*)(21
*)('*)(*)('*)(*)(0
2*2*
**
ζεζ
εε
εε
εε
HxxFxx
xHxxxFxxxH
−+−+
−+−+=
Ricordando che le derivate prime e seconde di F e H sono limitate e trascurando i
termini del secondo ordine si ottiene:
*)('*)(*)(0 * xFxxxH −+≈ εε
in cui si è trascurata la quantità *)('*)( * xHxx −εε poiché molto piccola.
Perciò si ha, supponendo F’ (x*) ≠ 0,
.*)('
*)(**
xF
xHxx
εε ≈−
(4)
Si vede quindi che l’errore numerico, cioè la differenza tra il valore vero della radice
e quello calcolato, dipende, come ci si può aspettare, dalla perturbazione sulla
funzione, ma anche, in maniera inversa, dal valore della derivata della funzione F nel
punto x*. Ciò significa che se F’ (x*) è molto piccolo, l’errore numerico può essere
grande.
La quantità *)('
1
xF rappresenta lo strumento numerico per valutare il buono o cattivo
condizionamento (la buona o cattiva posizione) del problema di calcolare la radice
della funzione F(x). Come mostrano le figure, se F’ (x*) è grande, il problema è ben
posto o ben condizionato, se F’ (x*) è molto piccolo, vicino allo zero, il problema è
mal posto o mal condizionato.
10
Lo studio precedente ci fa anche capire che il calcolo di radici multiple di
molteplicità n >1 (quelle in cui oltre la funzione si annullano anche le sue derivate
fino all’ordine n-1) è un problema numericamente molto difficile.
Esempio
L’equazione:
0161520156)1()( 234566 =+−+−+−=−= xxxxxxxxF
possiede in x* = 1 una radice di molteplicità 6, quindi F’ (1)=0, come si vede
bene in figura, e il problema della determinazione della radice x*=1 è mal
posto.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Ben Condizionato Mal Condizionato
11
Esempi di applicazioni reali
1. Piano di investimento
Si vuole calcolare il tasso medio di rendita r di un fondo di investimento in più anni.
Supponiamo che si investano nel fondo v euro all’inizio di ogni anno a che alla fine
dell’ennesimo anno si abbia accumulato un montante pari a M euro. La seguente
relazione lega M a r:
[ ]1)1(1 −++= nr
r
rvM
Si deduce che il tasso di rendimento percentuale r è lo zero dell’equazione non
lineare:
0)( =rf
con
[ ]1)1(1
)( −++−= nrr
rvMrf
Considerando che v sia pari a 1000 euro e che, dopo 5 anni, il montante M sia 6000
euro, si ricava che f nell’intervallo di ricerca [0.01, 0.1] ha la radice 0.06. In
particolare, risolvendo con il metodo di bisezione e utilizzando una precisione pari a
10-12 , si ottiene il valore 0.061402 dopo 36 iterazioni. Si può quindi concludere che
il tasso di interesse è del 6.14%.
Il metodo di Newton, partendo da x0=0.3 e con criterio di arresto pari a
|xk- xk+1|≤10-12, converge in 6 iterazioni.
12
2. Anomalia media di un pianeta
Consideriamo l’equazione di Keplero, che lega l’anomalia media di un pianeta (m),
l’anomalia eccentrica (x) e l’eccentricità (E) della sua orbita.
xExm sin−=
Data l’anomalia media m=0.8 e l’eccentricità E=0.2 di un pianeta, vogliamo trovare
l’anomalia eccentrica.
Si consideri quindi
mxExxf −−= sin)(
in [0, 2].
Si osserva che f(0)=-0.8 e f(2)=1, quindi l’intervallo contiene sicuramente x* tale che
f(x*)=0. (x*=0.96)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
0 2 X
Y
13
3. Decadimento di una sostanza chimica
Supponiamo che una reazione chimica origini ad un certo istante t una certa
concentrazione di un particolare ione data dalla legge
tt eetc 25 37)( −− +=
All’istante iniziale la concentrazione sarà c(0)=10, ci chiediamo a quale istante t* la
concentrazione si sarà dimezzata, ossia c(t*)=5.
Tale problema sarà equivalente a quello di determinare lo zero della funzione
0537)( 25 =−+= −− tt eetf
Per t = [0,1], si ha il seguente grafico
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-5
-4
-3
-2
-1
0
1
2
3
4
5