Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di...

13
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 ) ( ) ( ) ( x F x x x G Φ - = 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*) * *) ( *) ( * x x F x x = Φ - 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 { } k x dalla relazione 0 ), ( 1 > = + k x G x k k (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 x x k k = →∞ .

Transcript of Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di...

Page 1: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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=

→∞ .

Page 2: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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.

Page 3: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

3

Esempi del comportamento del metodo delle iterazioni successive in funzione del

modulo della G’(x).

Page 4: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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

Page 5: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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

Page 6: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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 .

Page 7: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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.

Page 8: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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

Page 9: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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.

Page 10: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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

Page 11: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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.

Page 12: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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

Page 13: Metodi di Iterazione Funzionale - dm.unibo.itmontelau/html/Lezione2_MC.pdf · 1 Appunti di Matematica Computazionale Lezione2 Metodi di Iterazione Funzionale Il problema di calcolare

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