Metodi di Ottimizzazionemate.unipv.it/gualandi/metodi/slides/metodi_iterativi.pdf ·...

Preview:

Citation preview

Metodi Iterativi

Metodi di Ottimizzazione

Stefano GualandiUniversità di Pavia, Dipartimento di Matematica

email: stefano.gualandi@unipv.ittwitter: @famo2spaghi, @famo2contiblog: http://stegua.github.com

Metodi Iterativi

Metodi di Ottimizzazione

Metodi di OttimizzazioneI metodi numerici per il calcolo di minimi di una funzione obiettivosono di tipo iterativo: a partire da un dato punto iniziale x0 ∈ Rn

generano una successione di punti xk convergente ad un puntostazionario.

SCHEMA GENERICO DI ALGORITMO ITERATIVO1 Sia dato x0 e un valore di tolleranza numerica toll2 while(||∇f (xk)||∞ >toll) (Verifica C.N. I ordine)3 il metodo genera un vettore hk

4 xk+1 = xk + hk (aggiornamento dell’iterata)5 end

La scelta fatta del vettore hk differenzia il metodo usato.

Metodi Iterativi

Metodi di Ottimizzazione

Metodi di OttimizzazioneI metodi numerici per il calcolo di minimi di una funzione obiettivosono di tipo iterativo: a partire da un dato punto iniziale x0 ∈ Rn

generano una successione di punti xk convergente ad un puntostazionario.

SCHEMA GENERICO DI ALGORITMO ITERATIVO1 Sia dato x0 e un valore di tolleranza numerica toll2 while(||∇f (xk)||∞ >toll) (Verifica C.N. I ordine)3 il metodo genera un vettore hk

4 xk+1 = xk + hk (aggiornamento dell’iterata)5 end

La scelta fatta del vettore hk differenzia il metodo usato.

Metodi Iterativi

Demo web

DEMO WEB:http://www.benfrederickson.com/numerical-optimization/

Metodi Iterativi

Calcolo della radice quadrata di un numero

Sia data la funzione f : R→ R seguente:

f (x) = x3

3 − rx

di cui si deve trovare un punto stazionario utilizzando un metodoiterativo, ovvero un punto che realizza

∇f (x) = 0 ⇒ ∇f (x) = x2 − r = 0

OsservazioneIn pratica, stiamo cercando un metodo iterativo che permetta diapprossimare al computer la radice quadrata di un numero. Ser = 2, stiamo cercando un’approssimazione di

√2.

Metodi Iterativi

Calcolo della radice quadrata di un numero

Sia data la funzione f : R→ R seguente:

f (x) = x3

3 − rx

di cui si deve trovare un punto stazionario utilizzando un metodoiterativo, ovvero un punto che realizza

∇f (x) = 0 ⇒ ∇f (x) = x2 − r = 0

OsservazioneIn pratica, stiamo cercando un metodo iterativo che permetta diapprossimare al computer la radice quadrata di un numero. Ser = 2, stiamo cercando un’approssimazione di

√2.

Metodi Iterativi

Calcolo della radice quadrata di un numero

Sia data la funzione f : R→ R seguente:

f (x) = x3

3 − rx

di cui si deve trovare un punto stazionario utilizzando un metodoiterativo, ovvero un punto che realizza

∇f (x) = 0 ⇒ ∇f (x) = x2 − r = 0

OsservazioneIn pratica, stiamo cercando un metodo iterativo che permetta diapprossimare al computer la radice quadrata di un numero. Ser = 2, stiamo cercando un’approssimazione di

√2.

Metodi Iterativi

Calcolo della radice quadrata di un numeroChiamiamo ora g(x) = x2 − r e vediamo come possiamo trovarecon un metodo iterativo un punto tale per cui g(x) = 0.

(DEMO: https://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif)

In pratica, approssimiamo la funzione g(x) in un punto xk con iprimi due termini del polinomio di Taylor

g(xk) + g ′(xk)(x − xk) = 0Il punto x che soddisfa l’equazione precedente, viene usato comenuovo punto xk , che meglio approssima

√r . In pratica risolviamo

g(xk) + g ′(xk)(xk+1 − xk) = 0da cui

xk+1 = xk −g(xk)g ′(xk)

Metodi Iterativi

Calcolo della radice quadrata di un numeroChiamiamo ora g(x) = x2 − r e vediamo come possiamo trovarecon un metodo iterativo un punto tale per cui g(x) = 0.(DEMO: https://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif)

In pratica, approssimiamo la funzione g(x) in un punto xk con iprimi due termini del polinomio di Taylor

g(xk) + g ′(xk)(x − xk) = 0Il punto x che soddisfa l’equazione precedente, viene usato comenuovo punto xk , che meglio approssima

√r . In pratica risolviamo

g(xk) + g ′(xk)(xk+1 − xk) = 0da cui

xk+1 = xk −g(xk)g ′(xk)

Metodi Iterativi

Calcolo della radice quadrata di un numeroChiamiamo ora g(x) = x2 − r e vediamo come possiamo trovarecon un metodo iterativo un punto tale per cui g(x) = 0.(DEMO: https://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif)

In pratica, approssimiamo la funzione g(x) in un punto xk con iprimi due termini del polinomio di Taylor

g(xk) + g ′(xk)(x − xk) = 0

Il punto x che soddisfa l’equazione precedente, viene usato comenuovo punto xk , che meglio approssima

√r . In pratica risolviamo

g(xk) + g ′(xk)(xk+1 − xk) = 0da cui

xk+1 = xk −g(xk)g ′(xk)

Metodi Iterativi

Calcolo della radice quadrata di un numeroChiamiamo ora g(x) = x2 − r e vediamo come possiamo trovarecon un metodo iterativo un punto tale per cui g(x) = 0.(DEMO: https://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif)

In pratica, approssimiamo la funzione g(x) in un punto xk con iprimi due termini del polinomio di Taylor

g(xk) + g ′(xk)(x − xk) = 0Il punto x che soddisfa l’equazione precedente, viene usato comenuovo punto xk , che meglio approssima

√r . In pratica risolviamo

g(xk) + g ′(xk)(xk+1 − xk) = 0

da cuixk+1 = xk −

g(xk)g ′(xk)

Metodi Iterativi

Calcolo della radice quadrata di un numeroChiamiamo ora g(x) = x2 − r e vediamo come possiamo trovarecon un metodo iterativo un punto tale per cui g(x) = 0.(DEMO: https://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif)

In pratica, approssimiamo la funzione g(x) in un punto xk con iprimi due termini del polinomio di Taylor

g(xk) + g ′(xk)(x − xk) = 0Il punto x che soddisfa l’equazione precedente, viene usato comenuovo punto xk , che meglio approssima

√r . In pratica risolviamo

g(xk) + g ′(xk)(xk+1 − xk) = 0da cui

xk+1 = xk −g(xk)g ′(xk)

Metodi Iterativi

Metodo Iterativo per il calcolo di√

k

Abbiamo ora il nostro primo metodo iterativo:

xk+1 = xk −g(xk)g ′(xk)

DomandePossiamo garantire che il metodo converge ad un punto x∗?Possiamo garantire che il metodo converge proprio a

√r?

Esercizio 1Implementare uno script Matlab che calcola la radice quadrata di 2.(Prima di implementare, provare i conti a mano per trovare

√36)

Metodi Iterativi

Metodo Iterativo per il calcolo di√

k

Abbiamo ora il nostro primo metodo iterativo:

xk+1 = xk −g(xk)g ′(xk)

DomandePossiamo garantire che il metodo converge ad un punto x∗?Possiamo garantire che il metodo converge proprio a

√r?

Esercizio 1Implementare uno script Matlab che calcola la radice quadrata di 2.(Prima di implementare, provare i conti a mano per trovare

√36)

Metodi Iterativi

Metodo Iterativo per il calcolo di√

k

Abbiamo ora il nostro primo metodo iterativo:

xk+1 = xk −g(xk)g ′(xk)

DomandePossiamo garantire che il metodo converge ad un punto x∗?Possiamo garantire che il metodo converge proprio a

√r?

Esercizio 1Implementare uno script Matlab che calcola la radice quadrata di 2.(Prima di implementare, provare i conti a mano per trovare

√36)

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk)

= xk −x2

k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

=

2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

=

12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1

21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5

21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.4167

1.4167 21.4167 = 1.4118 (1.4118+1.4167)

2 = 1.41421.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167

21.4167 = 1.4118 (1.4118+1.4167)

2 = 1.41421.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Esempio numerico

Nel nostro caso, il metodo iterativo consiste nel calcolare

xk+1 = xk −g(xk)g ′(xk) = xk −

x2k − r2xk

= 2x2k − x2

k + r2xk

= 12(xk + r

xk)

Esempio numerico per calcolare√2, ovvero con r = 2

Iterata corrente xk Quoziente rxk

Media tra xk e rxk

1 21

(1+2)2 = 1.5

1.5 21.5 = 1.3333 (1.3333+1.5)

2 = 1.41671.4167 2

1.4167 = 1.4118 (1.4118+1.4167)2 = 1.4142

1.4142 ... ...

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=

xk + rxk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 =

x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

=

(xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk=

E 2k

2xk

Metodi Iterativi

Stima dell’erroreStudiamo l’errore del nostro metodo iterativo (senza conoscere ilvalore esatto di

√r). Sia Ek l’errore di approssimazione

Ek = xk −√r

da cui

xk =√r + Ek

L’errore alla prossima iterazione sarà

Ek+1 = xk+1 −√r =

xk + rxk

2 −√r

=xk + r

xk− 2√r

2 = x2k − 2

√rxk + r

2xk

= (xk −√r)2

2xk= E 2

k2xk

Metodi Iterativi

Stima dell’erroreDopo la prima iterata x0, tutti gli errori successivi saranno semprepositivi. Inoltre l’errore ad ogni iterazione diventa sempre piùpiccolo, in quanto

Ek = xk −√r < xk e quindi 0 < Ek

xk< 1

da cui

Ek+1 = E 2k

2xk= Ek

xk× Ek

2 <Ek2

Riassumendo..... abbiamo dimostrato che l’errore del metodo iterativo diventasempre più piccolo ad ogni iterazione in quanto

0 < Ek+1 <Ek2 < Ek

Metodi Iterativi

Stima dell’erroreDopo la prima iterata x0, tutti gli errori successivi saranno semprepositivi. Inoltre l’errore ad ogni iterazione diventa sempre piùpiccolo, in quanto

Ek = xk −√r < xk e quindi 0 < Ek

xk< 1

da cui

Ek+1 = E 2k

2xk= Ek

xk× Ek

2 <Ek2

Riassumendo..... abbiamo dimostrato che l’errore del metodo iterativo diventasempre più piccolo ad ogni iterazione in quanto

0 < Ek+1 <Ek2 < Ek

Metodi Iterativi

Stima dell’erroreDopo la prima iterata x0, tutti gli errori successivi saranno semprepositivi. Inoltre l’errore ad ogni iterazione diventa sempre piùpiccolo, in quanto

Ek = xk −√r < xk e quindi 0 < Ek

xk< 1

da cui

Ek+1 = E 2k

2xk= Ek

xk× Ek

2 <Ek2

Riassumendo..... abbiamo dimostrato che l’errore del metodo iterativo diventasempre più piccolo ad ogni iterazione in quanto

0 < Ek+1 <Ek2 < Ek

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r

⇒√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r =

xk − xk+1 + xk+1 −√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

=

(xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1

< (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2

< xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Criterio d’arresto basato sulla stima dell’erroreDalle relazioni precedenti abbiamo che

0 < xk+1 −√r < xk −

√r ⇒

√r < xk+1 < xk

Riprendendo la definizione di errore al passo kEk = xk −

√r = xk − xk+1 + xk+1 −

√r

= (xk − xk+1) + Ek+1 < (xk − xk+1) + Ek2

ovvero

Ek+1 <Ek2 < xk − xk+1

In pratica, se si vuole una soluzione con un errore minore di ε > 0,basterà verificare la condizione:

xk − xk+1 < ε

Metodi Iterativi

Proprietà

Affidabilità e convergenzaSiamo interessati ad algoritmi affidabili e efficienti:

L’affidabilità è associata al concetto di convergenza: ilmetodo converge ad un punto stazionario? È anche un puntodi minimo?L’efficienza si misura in termini di velocità di convergenza ecosto computazionale: con che velocità il metodo converge adun punto stazionario? Quante risorse di calcolo consuma ilmetodo?

Metodi Iterativi

Convergenza

Definition 1 (Convergenza locale)Un algoritmo di ottimizzazione converge localmente ad un punto diminimo x∗ se per scelte di x0 sufficientemente vicine a x∗ la successionegenerata a partire da x0, ovvero la successione {xk(x0)}, converge a x∗,ovvero se ∃ρ > 0 tale che

∀x0 ∈ B(x∗, ρ) = {x : ||x − x∗|| < ρ} ⇒ {xk(x0)} → x∗ per k →∞

Definition 2 (Convergenza globale)Un algoritmo di ottimizzazione converge globalmente ad un punto diminimo x∗ se per ogni scelta di x0 la successione generata a partire dax0, {xk(x0)}, converge a x∗ ovvero:

∀x0 ∈ Rn ⇒ {xk(x0)} → x∗ per k →∞

Metodi Iterativi

Convergenza

Definition 1 (Convergenza locale)Un algoritmo di ottimizzazione converge localmente ad un punto diminimo x∗ se per scelte di x0 sufficientemente vicine a x∗ la successionegenerata a partire da x0, ovvero la successione {xk(x0)}, converge a x∗,ovvero se ∃ρ > 0 tale che

∀x0 ∈ B(x∗, ρ) = {x : ||x − x∗|| < ρ} ⇒ {xk(x0)} → x∗ per k →∞

Definition 2 (Convergenza globale)Un algoritmo di ottimizzazione converge globalmente ad un punto diminimo x∗ se per ogni scelta di x0 la successione generata a partire dax0, {xk(x0)}, converge a x∗ ovvero:

∀x0 ∈ Rn ⇒ {xk(x0)} → x∗ per k →∞

Metodi Iterativi

Rapidità di Convergenza

Definition 3 (Convergenza Q-lineare)Sia {xk} una sequenza di punti in Rn che converge a x∗. Diciamoche la convergenza è Q-lineare se esiste una costante r ∈ (0, 1) taleper cui

||xk+1 − x∗||||xk − x∗|| ≤ r , per ogni k sufficientemente grande. (1)

Fattore di riduzioneQuesto significa che la distanza dalla soluzione ottima x∗diminuisce ad ogni iterazione di almeno un fattore costante.

Metodi Iterativi

Rapidità di Convergenza

Definition 3 (Convergenza Q-lineare)Sia {xk} una sequenza di punti in Rn che converge a x∗. Diciamoche la convergenza è Q-lineare se esiste una costante r ∈ (0, 1) taleper cui

||xk+1 − x∗||||xk − x∗|| ≤ r , per ogni k sufficientemente grande. (1)

Fattore di riduzioneQuesto significa che la distanza dalla soluzione ottima x∗diminuisce ad ogni iterazione di almeno un fattore costante.

Metodi Iterativi

Rapidità di Convergenza

Definition 4 (Convergenza Q-superlineare)La rapidità di convergenza viene detta Q-superlineare se

limk→∞

||xk+1 − x∗||||xk − x∗|| = 0.

Definition 5 (Convergenza Q-quadratica)Si parla di convergenza Q-quadratica quando

||xk+1 − x∗||||xk − x∗||2

≤ M, per ogni k sufficientemente grande,

in cui M è una costante positiva, non necessariamente minore di 1.

Metodi Iterativi

Rapidità di Convergenza

Definition 4 (Convergenza Q-superlineare)La rapidità di convergenza viene detta Q-superlineare se

limk→∞

||xk+1 − x∗||||xk − x∗|| = 0.

Definition 5 (Convergenza Q-quadratica)Si parla di convergenza Q-quadratica quando

||xk+1 − x∗||||xk − x∗||2

≤ M, per ogni k sufficientemente grande,

in cui M è una costante positiva, non necessariamente minore di 1.

Metodi Iterativi

Rapidità di Convergenza

Definition 6 (Convergenza di ordine p)Una sequenza converge con ordine p (con p > 1) se esiste unacostante M tale che

||xk+1 − x∗||||xk − x∗||p ≤ M, per ogni k sufficientemente grande.

Metodi Iterativi

Esercizio 1

Esercizio 1Dimostrare che

1 La successione {1 + 12

k} converge a 1 con rapidità Q-lineare.

2 La successione {1 + k−k} converge a 1 con rapidità Q-superlineare.

3 La successione {1 + 0.52k} converge a 1 con rapidità Q-quadratica.

Dopo aver dimostrato la velocità di convergenza indicata per ciascunasuccessione, usare Matlab per rappresentare graficamente la velocità diconvergenza delle tre successioni.

Metodi Iterativi

Esercizio 1

Esercizio 1Dimostrare che

1 La successione {1 + 12

k} converge a 1 con rapidità Q-lineare.

2 La successione {1 + k−k} converge a 1 con rapidità Q-superlineare.

3 La successione {1 + 0.52k} converge a 1 con rapidità Q-quadratica.

Dopo aver dimostrato la velocità di convergenza indicata per ciascunasuccessione, usare Matlab per rappresentare graficamente la velocità diconvergenza delle tre successioni.

Recommended