Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di...

24
Capitolo 18 Metodi del gradiente 18.1 Condizioni di ottimalit` a per minimi di fun- zioni non soggette a vincoli Si esamina il problema del calcolo di un minimo di una funzione f a valori reali definita in insieme Ω R n ; si definiscono i punti di minimo locale e globale. Definizione. Un punto x R n ` e un punto di minimo locale (o di minimo relativo) di una funzione f se esiste ρ> 0 tale che f (x ) f (x) x ∈B(x ) dove B(x ) indica la boccia di centro x e di raggio ρ. Nel caso di una variabile reale, la boccia B(x ) si identifica con l’intervallo [x ρ, x + ρ]. Se f (x ) f (x) x Ω, allora x ` e un punto di minimo globale Se la disuguaglianza vale in senso stretto, allora x si dice essere un punto di minimo locale o globale in senso stretto. La funzione f da minimizzare ` e detta funzione obiettivo. Si osserva banalmente che un punto di minimo globale ` e anche un punto di minimo locale. Se la funzione ` e una funzione lineare su Ω = R, f (x)= mx + q, allora non esiste il minimo (locale o globale) oppure ci sono infiniti minimi locali che sono anche globali (f (x)= q). Ad esempio la funzione f (x) = sin(x) ammette infiniti minimi locali che sono anche globali, mentre la funzione f (x)= x sin(x) ammette infiniti minimi locali e nessun minimo globale. Si richiamano ora le condizioni di ottimalit`a per una funzione a valori reali in una sola variabile reale. Condizione necessaria del I o ordine. Sia f continua e derivabile con continuit` a, i.e. f ∈C 1 (R), e sia x punto di minimo locale, allora f (x )=0 Se un punto x soddisfa la condizione f (x ) = 0, tale punto si dice essere punto di stazionariet` a. Tale punto, ovviamente pu`o essere un punto di minimo, di massimo o un punto di flesso orizzontale. Se si conoscono informazioni sulla derivata seconda della funzione f allora possiamo avere le condizioni del II o ordine per un punto di minimo locale. Condizione necessaria del II o ordine. Sia f ∈C 2 (R), e sia x punto di minimo locale, allora 265

Transcript of Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di...

Page 1: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

Capitolo 18

Metodi del gradiente

18.1 Condizioni di ottimalita per minimi di fun-zioni non soggette a vincoli

Si esamina il problema del calcolo di un minimo di una funzione f a valori realidefinita in insieme Ω ⊆ Rn; si definiscono i punti di minimo locale e globale.

Definizione. Un punto x∗ ∈ Ω ⊆ Rn e un punto di minimo locale (o di minimorelativo) di una funzione f se esiste ρ > 0 tale che

f(x∗) ≤ f(x) ∀x ∈ B(x∗, ρ)

dove B(x∗, ρ) indica la boccia di centro x∗ e di raggio ρ. Nel caso di una variabilereale, la boccia B(x∗, ρ) si identifica con l’intervallo [x∗ − ρ, x∗ + ρ].

Se f(x∗) ≤ f(x) ∀x ∈ Ω, allora x∗ e un punto di minimo globale

Se la disuguaglianza vale in senso stretto, allora x si dice essere un punto di minimolocale o globale in senso stretto.

La funzione f da minimizzare e detta funzione obiettivo.

Si osserva banalmente che un punto di minimo globale e anche un punto di minimolocale. Se la funzione e una funzione lineare su Ω = R, f(x) = mx + q, alloranon esiste il minimo (locale o globale) oppure ci sono infiniti minimi locali che sonoanche globali (f(x) = q). Ad esempio la funzione f(x) = sin(x) ammette infinitiminimi locali che sono anche globali, mentre la funzione f(x) = x sin(x) ammetteinfiniti minimi locali e nessun minimo globale.

Si richiamano ora le condizioni di ottimalita per una funzione a valori reali in unasola variabile reale.

Condizione necessaria del Io ordine.

Sia f continua e derivabile con continuita, i.e. f ∈ C1(R), e sia x∗ punto di minimolocale, allora

f ′(x∗) = 0

Se un punto x∗ soddisfa la condizione f ′(x∗) = 0, tale punto si dice essere punto distazionarieta. Tale punto, ovviamente puo essere un punto di minimo, di massimoo un punto di flesso orizzontale.

Se si conoscono informazioni sulla derivata seconda della funzione f allora possiamoavere le condizioni del IIo ordine per un punto di minimo locale.

Condizione necessaria del IIo ordine.

Sia f ∈ C2(R), e sia x∗ punto di minimo locale, allora

265

Page 2: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

266 CAPITOLO 18. METODI DEL GRADIENTE

• f ′(x∗) = 0

• f ′′(x) ≥ 0

Condizione sufficiente del IIo ordine.

Sia f ∈ C2(R), e sia x∗ punto tale che

• f ′(x∗) = 0

• f ′′(x) > 0

allora, x∗ e un punto di minimo locale.1

Si nota che nella condizione necessaria del Io ordine la funzione f e continua ederivabile con continuita; la condizione non e verificata se la funzione f e “solo”continua e derivabile. Ad esempio, per il punto di minimo x∗ = 0 della funzionecontinua e derivabile

f(x) =

x2 se x > 0−x se x ≤ 0

si ha f ′(x∗) = −1 = 0.

Si forniscono ora le condizioni di ottimalita per funzioni f di vettori x di n compo-nenti reali.

Lo sviluppo in serie di Taylor per funzioni a due variabili di f(x+h, y+ k) rispettoa f(x, y)

f(x+h, y+k) = f(x, y)+hfx(x, y)+kfy(x, y)+1

2[h2fxx(x, y)+2hkfxy(x, y)+k

2fyy(x, y)]+...

si puo scrivere

f(x+h, y+k) = f(x, y)+(h, k)

(fx(x, y)fy(x, y)

)+1

2(h, k)

(fxx(x, y) fyx(x, y)fxy(x, y) fyy(x, y)

)(hk

)+...

dunque, in generale per n ≥ 1, indicato con d la cui componente di, i = 1, ..., n,indica lo spostamento lungo la direzione xi si ha

f(x+ d) = f(x) + dT∇f(x) + 1

2dT∇2f(x)d+ ...

La condizione necessaria del Io ordine per funzioni a piu variabili si formula nelmodo seguente.

Condizione necessaria del Io ordine.

Sia f ∈ C1(Rn), e sia x∗ punto di minimo locale, allora per ogni vettore d = 0 vale

∇f(x∗)Td ≥ 0 (18.1)

Poiche la condizione ∇f(x∗)Td ≥ 0 deve valere per ogni vettore d = 0, allora lacondizione (18.1) si scrive

∇f(x∗) = 0

E utile riportare la condizione di ottimalita del Io ordine come ∇f(x∗)Td ≥ 0 inquanto questa condizione suggerisce la definizione di direzione di discesa.

Infatti se per un punto x esiste un vettore d, detto direzione tale per cui, appena cisi muove da x lungo d, ovvero si considerano i punti x+αd con α > 0 e α “piccolo”,succede che la funzione f decresca, ovvero f(x+αd) < f(x), allora il punto x none un punto di minimo locale ed il vettore d e una direzione di discesa di f .

Si puo allora affermare che:

1Si consideri il punto x = 0 per le funzioni f(x) = x2, f(x) = x3 e f(x) = x4; la prima funzione, f(x) = x2, soddisfale condizioni necessarie del Io e del IIo ordine e la condizione sufficiente del IIo ordine in x = 0, la funzione f(x) = x3 nonsoddisfa la condizione del primo ordine in x = 0, mentre la funzione f(x) = x4 soddisfa, in x = 0, le condizioni necessariedel Io e del IIo ordine.

Page 3: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.1. CONDIZIONI DI OTTIMALITA PERMINIMI DI FUNZIONI NON SOGGETTE A VINCOLI267

dato un punto x ∈ Rn, affinche il vettore d sia una direzione di discesa perf(x) in x deve essere

∇f(x)Td < 0 (18.2)

La (18.2) e detta condizione di discesa.

Il vettored = −∇f(x)

e una direzione di discesa per f(x) in x. Infatti dalla (18.2)

−∇f(x)T∇f(x) = −∥∇f(x)∥22 < 0

La condizione necessaria del IIo ordine per funzioni a piu variabili si formula nelmodo seguente.

Condizione necessaria del IIo ordine.

Sia f ∈ C2(Rn), e sia x∗ punto di minimo locale, allora per ogni vettore d = 0

• ∇f(x∗) = 0

• dT∇2f(x∗)d ≥ 0

(La dimostrazione e riportata nella sezione Complementi al capitolo).

La condizione necessaria del IIo ordine afferma che per un punto di minimo locale, lamatrice Hessiana valutata nel minimo locale e una matrice simmetrica e semidefinitapositiva.

Condizione sufficiente del IIo ordine.

Sia f ∈ C2(Rn), e sia x∗ punto tale che, per ogni vettore d = 0

• ∇f(x∗) = 0

• dT∇2f(x∗)d > 0

allora, x∗ e un punto di minimo locale.

(La dimostrazione e riportata nella sezione Complementi al capitolo).2

La condizione sufficiente del IIo ordine afferma che se la matrice Hessiana valutatanel punto x∗ e simmetrica e definita positiva allora x∗ e un punto di minimo locale.

Si puo provare un’importante proprieta delle funzioni convesse differenziabili.

Sia f ∈ C2(K) dove K e un insieme convesso, allora f e convessa se e solose

dT∇2f(x)d ≥ 0 ∀x ∈ K, ∀d ∈ Rn,d = 0

Questo risultato prova che una funzione e convessa se e solo se la sua matrice Hes-siana, valutata in ogni punto dell’insieme di definizione della funzione, e simmetricasemidefinita positiva.3

Inoltre, se la matrice Hessiana di una funzione f definita su un convesso e simmetricadefinita positiva, allora la funzione f e strettamente convessa.4

Per i minimi di funzioni convesse valgono i seguenti risultati:5

2Per la maggior parte delle dimostrazioni di questo capitolo si fa riferimento a Luenberger (1984) e a Nocedal e Wright(1999) indicando rispettivamente

• Luenberger D.G.: Linear and Nonlinear Programming, Second Edition, Addison–Wesley Publ. Co., Reading MA,1984.

• Nocedal J., Wright S.J.: Numerical Optimization, Springer, New York, 1999.

3La dimostrazione di questa proprieta (si veda, e.g., p. 180 in Luenberger (1984)) sfrutta il seguente risultato perfunzioni, definite su un insieme convesso K, continue e con derivate prime continue:

f e convessa se e solo se f(y) ≥ f(x) +∇f(x)T (x− y) ∀x,y ∈ K

4Se la funzione f e una forma quadratica, allora vale anche la condizione sufficiente, ovvero, se f e strettamente convessaallora la sua matrice Hessiana e simmetrica e definita positiva.

5Si veda §6.5 in Luenberger (1984) per una dimostrazione.

Page 4: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

268 CAPITOLO 18. METODI DEL GRADIENTE

• sia f una funzione convessa definita su un convesso K, allora, l’insieme Γ costi-tuito dai minimi di f e un insieme convesso e ogni minimo locale di f e ancheun minimo globale;

• sia f ∈ C1(K) una funzione convessa definita su un convesso K. Se esiste unpunto x∗ ∈ K tale che per ogni y ∈ K si ha che ∇f(x∗)T (y − x∗) ≥ 0, allorax∗ e un punto di minimo globale.Ovvero, la condizione necessaria del Io ordine e anche sufficiente.

18.2 Metodi di discesa: metodo del gradiente

18.2.1 Direzione di discesa e tecnica di ricerca in linea

Per il calcolo di un minimo locale di una funzione f(x) a valori reali, non soggettaa vincoli, x ∈ Rn, si puo utilizzare un metodo di discesa, ovvero un metodoiterativo che calcola una successione di iterati xk in cui il “nuovo” iterato xk+1

e calcolato “muovendosi” da xk lungo una direzione di discesa per f(x).

Se, ad esempio, la funzione f(x) e di classe C1, allora una direzione dk e di discesaper f(x) in xk se

∇f(xk)Tdk < 0

Ad esempio,dk = −∇f(xk) (18.3)

e una direzione di discesa per f(x) in xk. Il metodo di discesa che utilizza la scelta(18.3) come direzione di discesa si chiama metodo del gradiente o metodo delladiscesa ripida (steepest descent, Cauchy 1847).

Dunque, la strategia dei metodi di discesa e quella di generare una successione dipunti xk in modo tale che la funzione valutata in tali punti abbia valore sempreminore fino ad ottenere il suo minimo, se questo esiste.

Si osserva che se si sceglie come nuovo iterato xk+1 = xk + dk, non e assicuratoche f(xk+1) < f(xk); il fatto che dk sia una direzione di discesa per f(x) in xkassicura che “appena mi muovo” da xk lungo dk la funzione f decresca.

Il nuovo iterato xk+1 puo essere calcolato mediante la formula xk+1 = xk + αkdk,dove lo scalare αk > 0 e detto lunghezza del passo e dk e una direzione di discesaper f(x) in xk che, ad esempio, puo essere scritta nella forma

dk = −B−1k ∇f(xk)

con Bk matrice simmetrica e definita positiva. Se Bk = I, con I matrice identita,allora si ottiene il metodo del gradiente.

Per il valore da assegnare al parametro αk si considerino i due esempi seguenti.

Sia f(x) = x2 e x0 = 2. Se si sceglie dk = (−1)k+1, allora xk+1 = xk + αkdkcon αk = 2 + 3 · 2−(k+1), k = 0, 1, 2, ..., implica xk = 2,−3/2, 5/4,−9/8, ... =(−1)k(1 + 2−k). Ciascun dk e una direzione di discesa (soddisfa la condizione didiscesa) per f in xk e f(xk) e monotonicamente decrescente con

limk→∞

f(xk) = 1

che non e il valore di f in corrispondenza del minimo e xk ha ±1 come puntilimite.6

Se si considera invece dk = −1, αk = 2−k+1, allora xk = 2, 3/2, 5/4, 9/8, ... =1 + 2−k con dk che e ancora una direzione di discesa ed f e monotonicamentedecrescente con

limk→∞

xk = 1

6Si osserva in questo caso una piccola decrescita della funzione f rispetto al passo αkdk (vedi figura).

Page 5: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.2. METODI DI DISCESA: METODO DEL GRADIENTE 269

che non e un minimo di f .7

Ne discende da questi esempi che:

la sola condizione f(xk+1) < f(xk), con f limitata inferiormente, nongarantisce che la successione degli iterati xk converga ad un minimo dif .

Si vuole allora calcolare il parametro αk in modo che si produca una decresci-ta sostanziale nella funzione f(x) (tecnica di ricerca in linea – line searchtechnique).

Per fare questo consideriamo la funzione univariata nell’incognita α

ϕ(α) = f(xk + αdk) α > 0

Il parametro α si puo ottenere considerando le seguenti condizioni di Wolfe (1968):

f(xk + αdk) ≤ f(xk) + c1α∇f(xk)Tdk (18.4)

∇f(xk + αdk)Tdk ≥ c2∇f(xk)Tdk (18.5)

dove c1 ∈ (0, 1) e c2 ∈ (c1, 1).

Analizziamo la prima condizione di Wolfe. Il termine a destra di (18.4) e unafunzione lineare in α ed ha una inclinazione negativa (c1 ∈ (0, 1) e ∇f(xk)Tdk < 0perche dk e una direzione di discesa); si indichi tale termine come l(α). Per piccolivalori di α, dalla condizione (18.4) si ha che il grafico di l(α) giace “sopra” quellodi ϕ(α); ovvero dalla prima condizione di Wolfe si considerano come valori di αaccettabili per una decrescita di f , quei valori α tale che

ϕ(α) ≤ l(α)

La condizione (18.4) e detta anche condizione di Armijo (1966).

Dalla prima condizione di Wolfe si osserva che valori di α molto piccoli sono ac-cettabili; valori molto piccoli di α provocano uno spostamento piccolo da xk e nongarantiscono un sostanziale progresso verso la soluzione. Si vuole dunque evitareche il parametro α diventi troppo piccolo. Per tale motivo si introduce la secondacondizione di Wolfe (18.5), detta anche condizione della curvatura.

Si osserva che il termine a sinistra di (18.5) e uguale a ϕ′(α); ovvero la condizioneassicura che l’inclinazione di ϕ(α) e piu grande di c2 volte quella di ϕ(α) per α = 0,ovvero in xk:

ϕ′(α) ≥ c2ϕ′(0)

Si puo dimostrare il seguente risultato.8

Sia f : Rn −→ R una funzione differenziabile con continuita; sia dk unadirezione di discesa per f(x) in xk e si assume che f sia inferiormentelimitata lungo la direzione xk + αdk, α > 0.Allora, se 0 < c1 < c2 < 1, esistono intervalli di lunghezza del passo αsoddisfacenti le condizioni di Wolfe (18.4) e (18.5).

Il calcolo del parametro α deve comunque assicurare che il valore αk determinatosoddisfi le condizioni di Wolfe. Questo si implementa mediante una procedura dibacktracking come segue:

1. assegnati i parametri: α > 0; ρ, c1 ∈ (0, 1);

7Si osserva in questo caso che si effettuano passi αkdk troppo piccoli rispetto alla decrescita iniziale di f (vedi figura).8Si veda p. 40 in Nocedal e Wright (1999).

Page 6: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

270 CAPITOLO 18. METODI DEL GRADIENTE

2. porre α← α;

3. finche (f(xk + αdk) > f(xk) + c1α∇f(xk)Tdk) allora

α← ρα

4. αk ← α

Come scelta iniziale α, in generale, si pone α = 1.

Un valore accettabile della lunghezza del passo α, sara dunque trovato dopo unnumero finito di passi della procedura di backtracking, perche α diventera suf-ficientemente piccolo da soddisfare la prima condizione di Wolfe, condizione dibacktracking.

La procedura di backtracking assicura ad ogni iterazione k, che la lunghezza delpasso αk selezionata e o il valore iniziale α oppure e reso abbastanza piccolo dasoddisfare la condizione di backtracking ma non “troppo” piccolo, in quanto il valoreaccettato αk e “poco distante” dal precedente valore αk/ρ che non era accettabilein quanto non soddisfaceva la condizione di backtracking.

18.2.2 Convergenza per i metodi di discesa

Per studiare la convergenza di una successione xk ad un punto di minimo localex∗ di f(x), con xk+1 = xk + αkdk, dk direzione di discesa e αk calcolato con laprocedura di backtracking; si considera θk l’angolo tra dk e la direzione del metododi discesa ripida −∇f(xk) definito da

cos θk =−∇f(xk)Tdk∥∇f(xk)∥ ∥dk∥

Vale il seguente risultato di Zoutendijk (1960).

Teorema. Si consideri l’iterazione xk+1 = xk + αkdk con dk direzione di discesaed αk soddisfacente le condizioni di Wolfe (18.4) e (18.5). Supponiamo che lafunzione f sia limitata inferiormente e differenziabile con continuita in un insiemeN contenente l’insieme di livello

Γ = x | f(x) < f(x0)

dove x0 e l’iterazione iniziale. Se inoltre il gradiente di f soddisfa la condizione diLipschitz con costante L > 0

∥∇f(x)−∇f(y)∥ ≤ L∥x− y∥ ∀x,y ∈ N

allora9 ∑k≥0

cos2 θk∥∇f(xk)∥2 <∞

9Dimostrazione. Dalla seconda condizione di Wolfe si ha

(∇f(xk+1)−∇f(xk))Tdk ≥ (c2 − 1)∇f(xk)

Tdk

e dalla condizione di Lipschitz(∇f(xk+1)−∇f(xk))

Tdk ≤ αkL∥dk∥2

da cui

αk ≥c2 − 1

L

(∇f(xk)

Tdk

∥dk∥2

)sostituendo questo valore di αk nella prima condizione di Wolfe si ha:

f(xk+1) ≤ f(xk)− c11− c2

L

(∇f(xk)Tdk)

2

∥dk∥2

e dalla definizione di cos θk si ha:f(xk+1) ≤ f(xk)− c cos θk∥∇f(xk)∥2

Page 7: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.2. METODI DI DISCESA: METODO DEL GRADIENTE 271

La condizione di Zoutendijk implica che

cos2 θk∥∇f(xk)∥2 −→ 0 per k →∞

Se l’angolo θk e uniformemente limitato lontano da π/2, allora esiste una costantepositiva δ > 0 tale che

cos θk ≥ δ > 0 ∀k

Cio implica chelimk→∞

∥∇f(xk)∥ = 0

Dunque la norma del gradiente (e dunque ogni componente del gradiente) converge azero se le direzioni dk non sono ortogonali con il gradiente di f in xk. In particolare,il metodo del gradiente (in cui le direzioni dk formano un angolo di π con il gradiente∇f(xk)) converge ad un punto che annulla il gradiente.10

18.2.3 Dinamica gradiente

Si considera un sistema di n equazioni differenziali ordinarie del primo ordine informa autonoma

u′(t) = −g(u(t))

a cui rimangono associate le condizioni iniziali u(t0) = u0.

Si suppone che le componenti gi, siano continue rispetto alle variabili ui, i = 1, ..., n,e che g sia di Lipschitz nella variabile u.

Supponiamo inoltre che il vettore g(u) sia il gradiente di una funzione f , ovvero

u′ = −∇f(u) (18.6)

Si vuole calcolare una soluzione di equilibrio, se esiste. Le soluzioni di equilibriosono quelle particolari soluzioni tali per cui per t > t vale che u′ = 0 ovvero che∇f(u) = 0.

Il metodo di Eulero applicato al sistema (18.6) si scrive, k = 0, 1, 2, ...

uk+1 = uk − h∇f(uk).

con c = c1(1− c2)/L. Sommando questa espressione per tutti gli indici j ≤ k si ottiene

f(xk+1) ≤ f(x0)− ck∑

j=0

cos θj∥∇f(xj)∥2

Poiche f e limitata inferiormente si ha che f(x0)− f(xk+1) e minore o uguale di una costante positiva per ogni k.Passando al limite per k si ottiene ∑

k≥0

cos2 θk∥∇f(xk)∥2 <∞

10Altri metodi calcolano la direzione di discesa dk tenendo conto anche della curvatura della funzione in xk per convergerea punti di minimo di f (Goldfarb, 1980) oppure calcolano la lunghezza di passo αk in modo tale da soddisfare condizionidi decrescita della funzione obiettivo f piu deboli di quelle di Wolfe (Barzilai e Borwein, 1988).I metodi di discesa esaminati (line search method) calcolano una direzione dk come direzione di discesa per la funzione f inxk e successivamente calcolano la lunghezza di passo αk in modo da poter soddisfare delle condizioni di sufficiente decrescitadella funzione f . Un’altra classe di metodi (trust–region method) si basa sulla definizione di un intorno dell’iterato correntexk (region) e individuano un “modello”, ad esempio quadratico, che si identifica (trust) con la funzione nell’intorno di xk;si determina cosı il passo che calcola il minimo (o una sua approssimazione) del modello; in pratica, la direzione dk e lalunghezza di passo αk vengono calcolati contemporaneamente (si veda e.g. Cap. 4 in Nocedal e Wright (1999)); questimetodi sono riferiti nel Cap. 5 in

• Fletcher R.: Practical Methods of Optimization, Second Edition, John Wiley & Sons, Chichester, 1987.

come metodi a passo ristretto, ovvero il passo αkdk e ristretto alla regione di validita dello sviluppo della serie di Taylorper f(xk).

Page 8: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

272 CAPITOLO 18. METODI DEL GRADIENTE

Osserviamo che questo metodo coincide con il metodo del gradiente applicato alproblema

min f(u)

considerando la lunghezza di passo α = h fissa ad ogni passo. Affinche la soluzionecalcolata con il metodo di Eulero si comporti come una soluzione di equilibrio,ovvero per avere la convergenza del metodo del gradiente ad uno zero del gradientedi f , si deve considerare il metodo di Eulero (o metodo del gradiente) con passo h(o lunghezza di passo α) variabile ad ogni passo (iterazione) k e tale da soddisfarele condizioni di Wolfe.11

18.2.4 Caso di f forma quadratica strettamente convessa

Si vede ora che:

per un metodo di discesa, e dunque anche per il metodo del gradiente, se lafunzione f ha matrice Hessiana simmetrica e definita positiva in ogni puntodel dominio, la lunghezza di passo αk, ad ogni iterazione k, e determinabileesattamente (exact line search).

Sia la funzione obiettivo f una funzione la cui matrice Hessiana e simmetrica edefinita positiva in ogni punto del dominio, dunque la funzione f e strettamenteconvessa. Si definisce ϕ(α) = f(xk + αdk), dove dk e una direzione di discesa perf(x) in xk; si ha ϕ

′(α) = ∇f(xk + αdk)Tdk e ϕ′′(α) = dTk∇2f(xk + αdk)dk con

∇2f(xk+αdk) matrice simmetrica e definita positiva. La funzione ϕ e una funzioneconvessa in α, allora la condizione necessaria del Io ordine e anche sufficiente.

Per il calcolo del valore di α = αk in corrispondenza del quale la funzione ϕ(α)assume valore minimo si ha allora ϕ′(α) = 0 e dunque

ϕ′(α) = ∇f(xk + αdk)Tdk = 0 (18.7)

Sviluppando in serie di Taylor il termine ∇f(xk + αdk) si ha

∇f(xk + αdk) = ∇f(xk) + α∇2f(xk)dk +O(α2)

e, trascurando termini dell’ordine O(α2), la formula (18.7) diventa

∇f(xk)Tdk + αdTk∇2f(xk)dk = 0

da cui il valore esatto

αk = − ∇f(xk)Tdk

dTk∇2f(xk)dk(18.8)

Si esamina ora il caso in cui la funzione f definita su Rn e una forma quadrati-ca strettamente convessa, ovvero la sua matrice Hessiana e simmetrica e definitapositiva.

Sia

f(x) =1

2xTAx− xT b+ c (18.9)

con A matrice simmetrica e definita positiva.

Il gradiente e la matrice Hessiana di f hanno espressione

∇f(x) = Ax− b ∇2f(x) = A

11Cfr. § Stabilita per passo fissato all’interno del capitolo Sistemi del primo ordine, equazioni implicite e problema dellastiffness.

Page 9: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.2. METODI DI DISCESA: METODO DEL GRADIENTE 273

Poiche f(x) e una forma quadratica strettamente convessa, il suo minimo x∗ e unicoe si ottiene risolvendo

∇f(x) = 0

ovvero risolvendo il sistema lineare

Ax = b

ed e formalmente dato da x∗ = A−1b.

In corrispondenza di tale punto f(x) assume valore f(x∗) = −(1/2) bTA−T b+ c.

Se si pone e(x) = 12 (x− x∗)TA(x− x∗) allora f(x) = e(x) + f(x∗) ed il valore di

e(x) in corrispondenza del minimo x = x∗ e 0.

Siano λi gli autovalori di A e ui i corrispondenti autovettori, i = 1, ..., n. Poiche lamatrice A e simmetrica i suoi autovalori sono reali e i suoi autovettori sono a duea due tra loro ortogonali. Dalla definizione di autovalore e autovettore si ha

AU = UΛ

dove U e una matrice ortogonale le cui colonne sono gli autovettori ui di A, i =1, ..., n, e Λ e una matrice diagonale con elementi diagonali uguali agli autovalori λidi A, i = 1, ..., n. Dunque

A = UΛUT

e sostituendo nell’espressione di e(x) si ottiene

e(x) =1

2(x− x∗)TUΛUT (x− x∗) =

1

2zTΛz =

1

2

n∑i=1

λiz2i

dove z = UT (x− x∗). L’equazione in zi, i = 1, ..., n,

1

2

n∑i=1

λiz2i = c (18.10)

con c costante, e l’equazione di un ellissoide scritto in forma canonica. Si osserva chegli autovalori λi, i = 1, ..., n, sono i reciproci dei semiassi al quadrato dell’ellissoide.Nel caso n = 2, l’equazione (18.10) e l’equazione dell’ellisse ottenuta dall’interse-zione della funzione (paraboloide) y = f(x1, x2) con il piano y = c. Se λ1 = λ2,l’ellisse e una circonferenza. Questa curva di intersezione e detta “curva di livello”.

Il numero di condizione12 K(A) della matrice simmetrica e definita positiva A innorma 2, i.e., K2(A) = ∥A∥2 · ∥A−1∥2, e il rapporto tra l’autovalore massimo el’autovalore minimo di A ed e tanto maggiore quanto meno l’ellissoide “assomiglia”ad una sfera. Nel caso di una sfera si ha K2(A) = 1.

18.2.5 Algoritmo del gradiente

Scriviamo l’algoritmo del metodo di discesa nel caso in cui la funzione f(x) sia laforma quadratica strettamente convessa (18.9):

sia x0 arbitrarior0 = b−Ax0

per k = 0, 1, ...calcolo direzione dk di discesapk = Adkαk = (dTk rk)/(d

Tk pk)

xk+1 = xk + αkdkrk+1 = rk − αkpk

12Il numero di condizione di una matrice K(A) e definito come K(A) = ∥A∥ · ∥A−1∥ ed e sempre un numero maggiore ouguale di 1.

Page 10: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

274 CAPITOLO 18. METODI DEL GRADIENTE

La complessita computazionale del metodo e, ad ogni iterazione k, pari ad n2, ovverola complessita computazionale per eseguire il prodotto matrice per vettore Adk.

Si noti che il residuo rk = b−Axk e calcolato con una formula di “aggiornamento”per evitare ad ogni iterazione k il calcolo del prodotto della matrice per vettoreAxk; infatti si ha

rk+1 = b−Axk+1 = b−A(xk + αkdk) = b−Axk − αkAdk

Inoltre, il residuo all’iterazione k + 1 e ortogonale alla direzione all’iterazione k,i.e.,13

rTk+1dk = 0

Il criterio di arresto di un metodo di discesa e scelto come

∥rk+1∥2 ≤ τ oppure ∥rk+1∥2 ≤ τ∥b∥2

dove τ e una tolleranza prefissata.

L’algortimo del gradiente, ovvero l’algoritmo di discesa quando si sceglie comedirezione di discesa dk = −∇f(xk) = rk, si scrive

sia x0 arbitrarior0 = b−Ax0

per k = 0, 1, ...pk = Arkαk = (rTk rk)/(r

Tk pk)

xk+1 = xk + αkrkrk+1 = rk − αkpk

Per quanto concerne la convergenza del metodo del gradiente, si osserva che ilmetodo e sensibile alla grandezza degli autovalori della matrice A. Infatti se λ1 ≥λ2 ≥ ... ≥ λn > 0 sono gli autovalori di A, e possibile mostrare che per la successionedi vettori xk generata con l’algoritmo del gradiente vale

e(xk+1) ≤(λ1 − λnλ1 + λn

)2

e(xk)

ovvero, per la definizione di e(x), che

f(xk+1)− f(x∗) ≤(λ1 − λnλ1 + λn

)2

(f(xk)− f(x∗))

(Per la dimostrazione si veda, e.g., p. 218 in Luenberger (1984)).

Questo risultato mostra che la velocita di convergenza del metodo del gradiente etanto piu bassa quanto piu λ1 − λn e grande. Se λ1 = λn, il metodo del gradienteconverge in un solo passo.

Si nota inoltre, che se n − 1 degli n autovalori sono uguali ed il rimanente diffe-risce sensibilmente da questi, la convergenza e lenta e quindi, un solo autovalore“anomalo” influisce notevolmente sull’efficienza del metodo.

18.3 Metodo del gradiente coniugato

Si definiscono vettori coniugati rispetto ad una matrice A, n × n, simmetrica edefinita positiva.

13

rTk+1dk = (rk − αkAdk)

Tdk = rTk dk − αkd

TkAdk = 0

per la scelta (18.8) di αk.

Page 11: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.3. METODO DEL GRADIENTE CONIUGATO 275

Due vettori u e v si dicono A–coniugati se

uTAv = 0

Si nota che la definizione di vettori A–coniugati, per A = I, con I matrice identita,coincide con la definizione di ortogonalita.

Inoltre, gli autovettori di una matrice simmetrica sono A–coniugati. Infatti

uTAv = λuTv = 0

poiche gli autovettori di una matrice simmetrica sono a due a due ortogonali.

Si descrive ora un procedimento per generare un insieme di vettori A–coniugati.Questo procedimento e analogo al procedimento di Gram–Schmidt per generarevettori ortogonali e puo essere provato per induzione.

Sia d1 arbitrario

d2 = Ad1 − b11d1 con b11 =dT

1 A2d1

dT

1 Ad1

d3 = Ad2 − b22d2 − b21d1 con b22 =dT

2 A2d2

dT

2 Ad2

b21 =dT

2 Ad2

dT

1 Ad1

...

dk+1 = Adk − bkkdk − bkk−1dk−1 con bkk =dT

kA2dk

dT

kAdk

bkk−1 =dT

kAdk

dT

k−1Adk−1

Valgono le seguenti proprieta per d1, ...,dn vettori di Rn:• se d1, ...,dn sono vettori A–coniugati allora d1, ...,dn sono linearmente indipen-denti;14

• se d1, ...,dn sono vettori A–coniugati e ciascuno di e A–coniugato con un vettorev allora v = 0;15

• se d1, ...,dn sono vettori A–coniugati allora ogni vettore v si puo esprimere16

v =n∑i=1

(dTi Av

dTi Adi

)di

• se d1, ...,dn sono vettori A–coniugati allora la matrice inversa di A si puoscrivere come somma di diadi17

A−1 =

n∑j=1

1

dTj Adjdjd

Tj (18.11)

14

0 =

n∑i=1

cidi =

n∑i=1

cidTj Adi = cjd

Tj Adj =⇒ cj = 0

poiche dTj Adj > 0 in quanto la matrice A e simmetrica e definita positiva.

15Poiche d1, ...,dn sono linearmente indipendenti si ha che v =∑n

i=1 cidi e

0 = dTj Av =

n∑i=1

cidTj Adi = cjd

Tj Adj =⇒ cj = 0

poiche dTj Adj > 0 in quanto la matrice A e simmetrica e definita positiva; dunque se tutte le componenti di un vettore

sono nulle rispetto ad una base (d1, ...,dn) lo sono rispetto ad ogni base, i.e., v = 0.16Poiche d1, ...,dn sono linearmente indipendenti si ha che v =

∑ni=1 cidi; dunque da dT

j Av =∑n

i=1 cidTj Adi si hanno

le espressioni per ogni cj = (dTj Av)/(d

Tj Adj), j = 1, ..., n.

17Per s = 1, ..., n si ha

(n∑

j=1

cjdjdTj )Ads = csdsd

Ts Ads = ds

avendo posto cs = 1/(dTs Ads).

Page 12: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

276 CAPITOLO 18. METODI DEL GRADIENTE

Si prova il seguente risultato.

Sia f(x) la forma quadratica strettamente convessa (18.9)

f(x) =1

2xTAx− xT b+ c

con A matrice simmetrica e definita positiva e sia x∗ il suo punto di mi-nimo. Si considerano n vettori d0, ...,dn−1 A–coniugati e sia il vettore x0

arbitrario ed i vettori x1, ...,xn generati con il metodo, detto metodo delgradiente coniugato,

xk+1 = xk + αkdk

dove i vettori d0, ...,dn−1 sono stati presi ciascuno una volta sola ed indi-pendentemente dall’ordine; la lunghezza di passo αk e come in (18.8).Allora vale che

dTj ∇f(xk+1) = 0 per j = 0, ..., k (18.12)

exn = x∗

La dimostrazione della convergenza in n iterazioni del metodo del gradiente coniu-gato e riportata nella sezione Complementi al capitolo.

Si puo provare che il metodo del gradiente coniugato di Hestenes e Stiefel (1952) eun metodo di discesa; ovvero dk e una direzione di discesa per f(x) in xk, i.e.,

dTk∇f(xk) < 0

L’algoritmo del gradiente coniugato si scrive come procedimento iterativo (Reid,1971) nel modo seguente:

sia x0 arbitrarior0 = b−Ax0; d0 = r0

per k = 0, 1, ...pk = Adkαk = (dTk rk)/(d

Tk pk)

xk+1 = xk + αkdkrk+1 = rk − αkpkse ∥rk+1∥2 ≤ τ allora xk+1 approssimazione di x∗

βk = (rTk+1rk+1)/(rTk rk)

dk+1 = rk+1 + βkdk

Il criterio di arresto ∥rk+1∥2 ≤ τ puo essere sostituito da un criterio relativo sulresiduo ∥rk+1∥2 ≤ τ∥b∥2. τ e una tolleranza prefissata.

Si nota che l’algoritmo e formulato in modo che:

• rk+1 e calcolato da rk e non come rk+1 = b − Axk+1; quindi la complessitacomputazionale del metodo ad ogni passo k e n2 ovvero la complessita delprodotto matrice per vettore Adk;

• il calcolo della direzione dk+1 e formulato con un’espressione a due termini dk+1

e dk e non a tre termini dk+1, dk e dk−1 come nel processo per la generazionedi vettori A–coniugati. Questa formula a due termini e possibile mediantel’introduzione del parametro βk.

18

18Con questa espressione per dk si prova facilmente che dk e una direzione di discesa.Da rk = −∇f(xk), la condizione di discesa dT

k ∇f(xk) < 0 si scrive dTk rk > 0. Questa condizione e verificata poiche

dTk rk = rT

k rk + βk−1dTk−1rk > 0 in quanto rT

k rk = ∥rk∥22 > 0, βk−1 = ∥rk+1∥22/∥rk∥22 > 0 e, dalla (18.12), dTk−1rk = 0.

Page 13: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.3. METODO DEL GRADIENTE CONIUGATO 277

Per il metodo del gradiente coniugato, si puo mostrare, sfruttando la proprieta chele direzioni dk sono A-coniugate, che

• ∇f(xj)T∇f(xk+1) = 0 per j = 0, ..., k;

• rTj rk+1 = 0 per j = 0, ..., k.

Il metodo del gradiente coniugato, in teoria, converge in al piu n passi. Dunque ilmetodo del gradiente coniugato, in teoria,19 e un metodo diretto20 e non un metodoiterativo, anche se la formulazione dell’algoritmo e propria di un metodo iterativo(scelta dell’iterato iniziale, legge per generare gli elementi della successione, criteriodi arresto).

Come per il metodo del gradiente, anche per il metodo del gradiente coniugatoil numero di iterazioni dipende dal numero di autovalori distinti della matrice A;per il metodo del gradiente coniugato il numero di iterazioni dipende anche dalladistribuzione degli autovalori della matrice A.

Valgono infatti i risultati seguenti:21

se la matrice A possiede m autovalori distinti allora il metodo del gradienteconiugato converge in al piu m iterazioni.

se λ1 ≥ λ2 ≥ ... ≥ λn > 0 sono gli autovalori della matrice A allora

∥xk − x∗∥2A ≤(λk − λnλk + λn

)2

∥x0 − x∗∥2A

Si vede come questo risultato serve a prevedere il comportamento del metodo deigradienti coniugati.

Supponiamo che la matrice A abbiam autovalori, λ1,...,λm, con “valori grandi” e chei rimanenti n−m autovalori, λm+1,...,λn, siano “piccoli” e raggruppati (“clustered”)vicino ad 1. Se definiamo ε = λm+1 − λn, il teorema sopra afferma che dopo m+ 1passi del metodo si ha

∥xm+1 − x∗∥2A ≃ ε∥x0 − x∗∥2APer piccoli valori di ε il metodo del gradiente coniugato ottiene una buona stimadella soluzione dopo “solo” m+ 1 iterazioni.

Per raggruppare gli autovalori della matrice A si adotta la tecnica del precondiziona-mento. Nella sezione Complementi al capitolo si riporta il metodo del gradienteconiugato precondizionato e differenti precondizionatori.

18.3.1 Metodo di Fletcher–Reeves

Il metodo del gradiente coniugato puo essere scritto anche per la minimizzazionedi funzioni f non lineari, non necessariamente di forme quadratiche con matriceHessiana simmetrica e definita positiva.

Il metodo di Fletcher–Reeves (1964) applica il metodo del gradiente coniugatoper un problema non lineare. Il metodo si descrive con il seguente algoritmo:

sia x0 arbitrariod0 = −∇f(x0)

per k = 0, 1, ...αk scelto con la tecnica di ricerca in lineaxk+1 = xk + αkdkse ∥∇f(xk+1)∥2 ≤ τ allora xk+1 approssimazione di x∗

βk = (∇f(xk+1)T∇f(xk+1))/(∇f(xk)T∇f(xk))

dk+1 = −∇f(xk+1) + βkdk

19Ovvero in assenza di errori di arrotondamento nelle operazioni.20Si dovrebbe parlare di “passi” e non di “iterazioni”.21Si veda, e.g., pp. 114, 115 in Nocedal e Wright (1999).

Page 14: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

278 CAPITOLO 18. METODI DEL GRADIENTE

Se la funzione f e la forma quadratica (18.9) con matrice A simmetrica e defini-ta positiva, allora il metodo di Fletcher–Reeves si riduce al metodo del gradienteconiugato.

18.4 Complementi al capitolo

18.4.1 Definizioni e notazioni

Data una funzione f : Rn −→ R, si indichi con x = (x1, ..., xn)T il generico punto

di Rn, si definiscono• gradiente di f(x) calcolato nel punto x = (x1, ..., xn)

T il vettore

∇f(x) =

∂f∂x1

(x1, ..., xn)...

∂f∂xn

(x1, ..., xn)

• Hessiano di f(x) calcolato nel punto x = (x1, ..., xn)

T la matrice

∇2f(x) =

∂2f∂x2

1(x1, ..., xn) ... ∂2f

∂x1∂xn(x1, ..., xn)

...∂2f

∂xn∂x1(x1, ..., xn) ... ∂2f

∂x2n(x1, ..., xn)

Data una funzione g : Rn −→ Rn, di componenti gi(x), i = 1, ..., n, si definisce

• Jacobiano di g(x) calcolato nel punto x = (x1, ..., xn)T la matrice

Jg(x) =

∂g1∂x1

(x1, ..., xn) ... ∂g1∂xn

(x1, ..., xn)...

∂gn∂x1

(x1, ..., xn) ... ∂gn∂xn

(x1, ..., xn)

La matrice Jacobiana di g(x) si indica anche con g′(x).

Si nota che se il vettore g(x) ha una sola componente (n = 1), allora la matriceJacobiana si riduce al vettore riga uguale al gradiente di g(x) trasposto, i.e., Jg(x) =∇g(x)T .Inoltre, se g(x) = ∇f(x), con f : Rn −→ R, allora

Jg(x) = ∇2f(x)

In questo caso, la matrice Jg(x) e simmetrica.

Una funzione f : Rn −→ R si dice continua nel punto x ∈ Rn, se per ϵ > 0 esisteδ > 0 tale che

|f(x+ h)− f(x)| ≤ ϵ per ∥h∥ ≤ δ

dove con ∥ · ∥ si indica una qualsiasi norma vettoriale per vettori di n componenti.

Si definiscono ora insieme convesso e funzioni convesse.

Definizione. Un insieme K ⊆ Rn si dice convesso se

∀x,y ∈ K, ∀α ∈ R con α ∈ [0, 1] =⇒ αx+ (1− α)y ∈ K

Sono insiemi convessi lo spazio Rn e gli insiemi costituiti da un solo punto.

Page 15: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.4. COMPLEMENTI AL CAPITOLO 279

Su insiemi convessi si definiscono le funzioni convesse.

Definizione. Una funzione f a valori reali definita su un convessoK si dice convessase

∀x,y ∈ K, ∀α ∈ R con α ∈ [0, 1] =⇒ f(αx+(1−α)y) ≤ αf(x)+(1−α)f(y)

Se la disuguaglianza vale in senso stretto, allora la funzione f si dice strettamenteconvessa.

Una funzione g definita su un convesso K si dice concava (strettamente concava) sef = −g e convessa (strettamente convessa).

Si prova facilmente che

• Se f1 e f2 sono due funzioni convesse definite su un convesso K, allora lafunzione f1 + f2, definita su K, e convessa;

• Se f e convessa e definita su un convesso K e a ∈ R, allora la funzione a · f ,definita su K, e convessa;

• Se f e convessa e definita su un convesso K, allora l’insieme Γ = x | f(x) ≤ ce convesso per ogni valore reale di c.22

18.4.2 Dimostrazione delle condizioni di ottimalita

Si considera la condizione necessaria del Io ordine.

Per ogni direzione d si definiscono

x(α) = x∗ + αd

con α > 0 e g(α) = f(x(α)); si ha

g′(α) =∂f

∂x1(x∗ + αd)d1 + ...+

∂f

∂xn(x∗ + αd)dn = ∇f(x∗ + αd)Td (18.13)

La funzione reale nella variabile reale α ammette un minimo in α = 0. Si ha

g(α) = g(0) + αg′(0) +O(α2)

Se g′(0) < 0, allora per valori di α > 0 sufficientemente piccoli si ha

g(α)− g(0) = αg′(0) +O(α2) =⇒ g(α) < g(0) (18.14)

che contraddice l’ipotesi che g(α) abbia un minimo per α = 0.

Dunque, g′(0) ≥ 0 che implica g′(0) = ∇f(x∗)Td ≥ 0 per ogni vettore d.

Per dimostrare la condizione necessaria del IIo ordine, poiche g′(0) = 0, tenendoconto anche del termine del secondo ordine in α in (18.14) si ha

g(α)− g(0) = 1

2α2g′′(0) +O(α3) (18.15)

Se g′′(0) < 0 allora il termine a destra dell’uguale, per valori piccoli di α, e negativo;cio contraddice l’ipotesi che x∗ sia un punto di minimo locale, dunque g′′(0) ≥ 0.

Dall’espressione di g′(α) in (18.13) si calcola l’espressione di g′′(α)

g′′(α) = dT∇2f(x∗ + αd)d

22Per x e y punti dell’insieme convesso K vale f(x) < c e f(y) < c; per α ∈ [0, 1] si ha poiche f e convessa

f(αx+ (1− α)y) ≤ αf(x) + (1− α)f(y) ≤ c

che implica che il punto αx+ (1− α)y sia un punto di Γ.

Page 16: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

280 CAPITOLO 18. METODI DEL GRADIENTE

dunqueg′′(0) = dT∇2f(x∗)d

Cio prova la condizione necessaria del IIo ordine.

Per la condizione sufficiente, per ipotesi si ha che g′(0) = 0 e g′′(0) > 0. Per valorisufficientemente piccoli di α vale

1

2α2g′′(0) > O(α3)

e allora, da (18.15) si ottiene g(α) > g(0), ovvero x∗ e un punto di minimo.

18.4.3 Dimostrazione della convergenza in n iterazioni delmetodo del gradiente coniugato

Dimostrazione. Vale che

xk+1 = xk + αkdk = xk−1 + αk−1dk−1 + αkdk = ... = x0 +

k∑i=0

αidi

oppure arrestando il processo delle sostituzioni di xk, xk−1, xk−2,..., a xj , si scrive

xk+1 = xj +

k∑i=j

αidi j = 0, ..., k

Allora

∇f(xk+1) = Axk+1 − b = A(x0 +k∑i=0

αidi)− b = (Ax0 − b) +Ak∑i=0

αidi (18.16)

oppure

∇f(xk+1) = A(xj +k∑i=j

αidi)− b = (Axj − b) +Ak∑i=j

αidi j = 0, ..., k

Allora per ogni valore j ≤ k vale

dTj ∇f(xk+1) = dTj (Axj − b) + dTj Ak∑i=j

αidi

= dTj ∇f(xj) + αjdTj Adj

poiche d1, ...,dn sono direzioni A–coniugate; per l’espressione di αj in (18.8) neconsegue

dTj ∇f(xk+1) = 0 ∀j ≤ k

Se si considerano le direzioni A–coniugate d1, ...,dn come direzioni di discesa, allorapossiamo scrivere per i parametri αj , j = 0, ..., n− 1 la seguente espressione

αj = −dTj (Ax0 − b)

dTj Adj(18.17)

Infatti dadTj ∇f(xk+1) = 0 per j = 0, ..., k

e sostituendo in ∇f(xk+1) l’espressione in (18.16) si ottiene

dTj (Ax0 − b) + αjdTj Adj = 0

Page 17: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.4. COMPLEMENTI AL CAPITOLO 281

e dunque si ottiene la formula (18.17).

Possiamo cosı ora provare che xn = x∗. Infatti

xn = x0 +

n−1∑i=0

αidi = x0 +

n−1∑i=0

diαi

= x0 −n−1∑i=0

didTi

dTi Adi(Ax0 − b)

Da (18.11) si ha allora

xn = x0 −A−1(Ax0 − b) = x0 − x0 +A−1b = x∗ ♯

18.4.4 Minimizzazione del quoziente di Rayleigh

Un’applicazione del metodo del gradiente coniugato o del gradiente coniugato pre-condizionato e il calcolo dell’autovalore minimo di una matrice A simmetrica edefinita positiva mediante la minimizzazione del quoziente di Rayleigh.

Si definisce il quoziente di Rayleigh q(x) per una matrice A, n × n, simmetrica,come

q(x) =xTAx

xTx

Dunque se si ha una successione di vettori xk che tende, per k che tende all’in-finito, all’autovettore uj associato all’autovalore λj , j = 1, ..., n, di una matrice Asimmetrica, allora la successione del quoziente di Rayleigh q(xk) tende a λj perk che tende all’infinito.

Se una matrice simmetrica A di ordine n ha autovalori

λ1 ≥ λ2 ≥ ... ≥ λn

allora

λ1 = maxx

q(x) λn = minx

q(x)

Se la matrice A e simmetrica e definita positiva, il metodo del gradiente coniugato,precondizionato e non, calcola l’autovalore minimo e il corrispondente autovettorecome limite delle successioni, rispettivamente, degli scalari q(xk) e dei vettorixk.Gli algoritmi del gradiente coniugato e del gradiente coniugato precondizionatoscritti per la minimizzazione del quoziente di Rayleigh si modificano soltanto nelleassegnazioni

r0 = ∇q(x0) pk = ∇2q(xk)dk

dove

∇q(x) = 2

xTx(Ax− q(x)x) ∇2q(x) =

2

xTx(A− q(x)I−∇q(x)xT −x∇q(x)T )

18.4.5 Metodo del gradiente coniugato precondizionato

Sia A una matrice n× n simmetrica e definita positiva. Si pone

A = SAST

dove S e una matrice non singolare e scelta in modo tale che K(A) < K(A).

Page 18: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

282 CAPITOLO 18. METODI DEL GRADIENTE

Dalla definizione di A si ha23 S−1AS−T = A. Posto

M−1 = STS =⇒ M = (STS)−1

alloraM−1A = STS(S−1AS−T ) = ST AS−T

ovvero le matrici M−1A e A hanno gli stessi autovalori24 dunque K2(M−1A) =

K2(A).

Il sistema lineareAx = b

e equivalente aAx = b (18.18)

avendo posto b = Sb e x = S−Tx.

Il metodo del gradiente coniugato precondizionato consiste nell’applicare ilmetodo del gradiente coniugato al sistema (18.18) e scrivere l’algoritmo in terminidi A, b e x.

Si formula allora il seguente algoritmo:

sia x0 arbitrarior0 = b−Ax0

sia r0 la soluzione del sistema: M r = r0d0 = r0

per k = 0, 1, ...pk = Adkαk = (rTk rk)/(d

Tk pk)

xk+1 = xk + αkdkrk+1 = rk − αkpkse ∥rk+1∥2 ≤ τ allora xk+1 approssimazione di x∗

sia rk+1 la soluzione del sistema: M r = rk+1

βk = (rTk+1rk+1)/(rTk rk)

dk+1 = rk+1 + βkdk

Poiche per il metodo del gradiente coniugato, scritto per il sistema (18.18) valerTj rk+1 = 0 per j = 0, ..., k, si ha che

• rTj Mrk+1 = 0 per j = 0, ..., k

18.4.6 Precondizionatori

Per avere il numero di condizione K(M−1A) piu piccolo possibile, la matrice M−1

deve essere una “buona approssimazione” di A−1. Si esaminano tre precondiziona-tori per il metodo del gradiente coniugato.

Il piu semplice precondizionatore e il precondizionatore diagonale che sceglie

M = D

dove D e una matrice diagonale (ad esempio una matrice il cui elemento diagonaledii e uguale alla norma della riga i-esima della matrice A).

La risoluzione, ad ogni iterazione k, del sistema lineare M r = rk, ha complessitacomputazionale n.

23Con A−T si indica A−T = (AT )−1 = (A−1)T .24Sia λ un autovalore di una matrice A, i.e., Ax = λx e x il corrispondente autovettore. Sia C una matrice non singolare;

se una matrice B si scrive come B = C−1AC, allora A = CBC−1, dunque CBC−1x = λx. Posto y = C−1x, si haBy = λy, ovvero λ e anche autovalore della matrice B.

Page 19: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.4. COMPLEMENTI AL CAPITOLO 283

Un precondizionatore che tiene conto maggiormente degli elementi di A e il pre-condizionatore SSOR (Evans, 1968) dove si sceglie

M =1

ω(2− ω)(D − ωL)D−1(D − ωLT )

dove si pone A = D−L−LT e D e una matrice diagonale con elementi diagonali glielementi diagonali di A, L e una matrice strettamente triangolare inferiore che haper elementi quelli della parte strettamente triangolare inferiore di A. Il parametroω e un valore compreso tra 0 e 2.

La risoluzione, ad ogni iterazione k, del sistema lineare M r = rk+1, comporta larisoluzione in sequenza di due sistemi triangolari; la complessita computazionale epari a n2. Infatti M r = rk+1 diventa

1

ω(2− ω)(D − ωL)D−1(D − ωLT )r = rk+1 =⇒

(D − ωL)y = ω(2− ω)rk+1

(D − ωLT )r = Dy

Un altro precondizionatore che sfrutta l’eventuale sparsita della matrice A e quelloche si basa sulla fattorizzazione incompleta di Choleski (Kershaw, 1978).

Una matrice A simmetrica e definita positiva si puo fattorizzare in modo univocoin un prodotto di due matrici A = LLT , dove il fattore di Choleski L e calcolatomediante un algoritmo di pavimentazione ed ha elementi determinati dal seguentealgoritmo:

l11 =√a11⌊

per i = 2, ..., nli1 = ai1/l11per j = 2, ..., n

ljj =√ajj −

∑j−1k=1 l

2jk⌊

per i = j + 1, ..., n

lij = (aij −∑j−1k=1 likljk)/ljj

Il problema della fattorizzazione di Choleski e il cosidetto fill–in che puo intervenirenell’istruzione del codice che implementa

lij = (aij −j−1∑k=1

likljk)/ljj

ovvero, se l’elemento aij e nullo, e di conseguenza non viene memorizzato in un arrayche memorizza gli elementi non nulli di A e sovrascrive gli elementi corrispondentidi L, puo succedere che l’elemento lij non sia nullo e questo provocherebbe unari–memorizzazione degli elementi nell’array.

Il metodo del gradiente coniugato, precondizionato e non, si usa per risolvere sistemilineari con matrice dei coefficienti simmetrica e definita positiva sparsa (con o senzastruttura) e di grandi dimensioni. La memorizzazione in array di matrici sparse edi grandi dimensioni deve essere effettuata tenendo conto solo degli elementi nonnulli della matrice. Vi sono diverse tecniche per la memorizzazione di matricesparse anche in base all’algoritmo in cui vengono usate. Algoritmi, come quelliche si basano sulla fattorizzazione di matrici, provocano fill–in e dunque non sonoadatti a trattare matrici sparse di grandi dimensioni; si utilizzano algoritmi, comeil metodo del gradiente coniugato o i metodi iterativi di decomposizione, che hannocome nucleo computazionale il prodotto matrice per vettore.

Page 20: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

284 CAPITOLO 18. METODI DEL GRADIENTE

La fattorizzazione incompleta di Choleski elimina l’inconveniente del fill–in ponendonell’algoritmo

lij = 0 se aij = 0

(18.19)

lij = lij se aij = 0

E ovvio che per questo nuovo fattore di Choleski L non vale A = LLT ma A =LLT+B, dove B e la matrice che tiene conto di (18.19). Se la matrice A e simmetricae definita positiva la fattorizzazione incompleta di Choleski e sempre possibile.

Il precondizionatore incompleto di Choleski sceglie25

M = LLT

La risoluzione, ad ogni iterazione k, del sistema lineare M r = rk, comporta larisoluzione in sequenza di due sistemi triangolari; la complessita computazionale epari a n2.

18.4.7 Metodo dei gradienti biconiugati e varianti

Il metodo dei gradienti biconiugati (Fletcher, 1975) risolve il sistema Ax = bdove la matrice A e indefinita. Si considera il metodo del gradiente coniugatoapplicato alla matrice A ed alla matrice AT dove i residui e le direzioni devonorispettare delle condizioni di bi–ortogonalita e di bi–coniugio.

L’algoritmo si scrive nel seguente modo:

sia x0 arbitrarior0 = b−Ax0; r0 = b−ATx0

d0 = r0; d0 = r0

per k = 0, 1, ...

pk = Adk; pk = AT dk

αk = (rTk rk)/(dT

k pk)xk+1 = xk + αkdkrk+1 = rk − αkpk; rk+1 = rk − αkpkse ∥rk+1∥2 ≤ τ allora xk+1 approssimazione di x∗

βk = (rTk+1rk+1)/(rTk rk)

dk+1 = rk+1 + βkdk; dk+1 = rk+1 + βkdk

I coefficienti αk e βk sono scelti in modo da verificare le condizioni di bi–ortogonalitasui residui

rTk+1rk = rTk+1rk = 0

e di bi–coniugio sulle direzioni

dT

k+1Adk = dTk+1AT dk = 0

Queste condizioni valgono anche per i vettori al passo minore o uguale a k, ovvero,per j = 0, ..., k si ha

rTk+1rj = rTk+1rj = 0; dT

k+1Adj = dTk+1AT dj = 0

25Per matrici tridiagonali a blocchi puo anche essere definito un precondizionatore che si basa sulla fattorizzazioneincompleta di Choleski a blocchi (Concus, Golub e Meurant, 1985).

Page 21: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.4. COMPLEMENTI AL CAPITOLO 285

Se si considera il sistema lineare Ax = b con A matrice indefinita (non necessa-riamente simmetrica), il metodo del gradiente coniugato applicato a tale sistema,gode della proprieta che l’iterazione xk minimizza l’errore rispetto ad ogni vettoreappartenente allo spazio di Krylov Kk, che e uno spazio di vettori generato dar0, Ar0, ..., Ak−1r0.26

Per l’iterazione k–esima, xk, del metodo del gradiente coniugato vale

∥x∗ − xk∥A ≤ ∥x∗ −w∥A

dove w ∈ x0 + Kk ovvero w = x0 +∑k−1j=0 γjA

jr0, con i coefficienti γj non tuttinulli.

Ovviamente, ad ogni iterazione k, si deve supporre che i vettori r0, Ar0, ..., Ak−1r0,siano linearmente indipendenti.

Se la matrice A e simmetrica e definita positiva, allora, ad ogni iterazionek, i vettori r0, Ar0, ..., Ak−1r0, sono linearmente indipendenti.

Inoltre, l’algoritmo del gradiente coniugato e strettamente legato ad un processodi triagonalizzazione della matrice A se la matrice A e simmetrica27 oppure ad unprocesso di riduzione della matrice A in forma di Hessenberg28 se la matrice A none simmetrica.

In dettaglio, supponiamo che la matrice A sia simmetrica.

Definiamo Rk e Dk le matrici di dimensione n× k le cui colonne sono i residui rj ele direzioni dj , j = 0, ..., k − 1, calcolate con l’algoritmo del gradiente coniugato, lamatrice Bk, di ordine k, la matrice bidiagonale superiore

Bk =

1 −β0

1 −β1. . .

. . .

1 −βk−2

1

dove i coefficienti βj , j = 0, ..., k − 2 sono i parametri calcolati nell’algoritmo del

gradiente coniugato. Inoltre definiamo le matrici ∆k e Dk matrici diagonali di ordinek aventi elementi diagonali pari a ∥rj∥2 e dTj Adj rispettivamente, j = 0, ..., k − 1.

Si ha che la matrice n× k, Qk = Rk∆−1k di colonne rj/∥rj∥2, j = 0, ..., k− 1 e una

matrice le cui colonne sono tra di loro vettori ortonormali e

QTkAQk = Tk

dove Tk e la matrice tridiagonale di ordine k: Tk = ∆−Tk BTk DkBk∆

−1k .

26I metodi che verificano la proprieta di minimizzazione sullo spazio di Krylov sono anche detti metodi di Krylov. Illavoro di Krylov (1931) e stato il primo di una lunga serie di lavori che riguardano la scrittura dell’equazione caratteristicain forma polinomiale. Si veda, e.g., Cap. III in

• Faddeva V.N.: Computational Methods of Linear Algebra, Dover Publications Inc., New York, 1959.

27Si veda e.g., p. 370 in

• Golub G.H., Van Loan C.F.: Matrix Computations, North Oxford Academic, Oxford, 1983.

28Una matrice di Hessenberg e una matrice della formaX X X X XX X X X X

X X X XX X X

X X

Page 22: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

286 CAPITOLO 18. METODI DEL GRADIENTE

Questo processo di triagonalizzazione, che prende il nome di processo di tridiago-nalizzazione di Lanczos (1950), se applicato ad A simmetrica e definita positivaha termine dopo n passi; se applicato ad A “solo ” simmetrica, esso termina dopon passi se i vettori r0, Ar0, ..., An−1r0 sono linearmente indipendenti. La lineareindipendenza dei vettori suddetti implica che i coefficienti βj , j = 0, ..., n− 2 sianotutti diversi da 0 (ovvero positivi).

Mediante un procedimento analogo a quello di triadiagonalizzazione di Lanczos,e possibile trasformare, attraverso matrici di colonne tra di loro ortonormali, unamatrice A qualunque in una matrice in forma di Hessenberg. Questo procedimentodovuto ad Arnoldi (1951) calcola i residui rk mediante il procedimento di orto-gonalizzazione di Gram–Schmidt ed ha termine, ovvero calcola rn−1, se i vettorir0, Ar0, ..., An−1r0 sono linearmente indipendenti.

La proprieta di minimizzazione sullo spazio di Krylov ed il legame con il proce-dimento di Laczos o di Arnoldi hanno portato a tutta una classe di varianti delmetodo del gradiente coniugato implementati in algoritmi piu o meno efficienti perla risoluzione di sistemi lineari di grandi dimensioni con matrice qualsiasi e sparsa.Il “collo di bottiglia” di questi metodi e il verificarsi o meno che, ad ogni iterazionek, i vettori r0, Ar0, ..., Ak−1r0, siano linearmente indipendenti. Questi metodifalliscono se i vettori r0, Ar0, ..., Ak−1r0 non sono linearmente indipendenti; ilfallimento o meno di questi metodi dipende allora dal vettore r0 e dunque da x0.Si puo dimostrare che

se il vettore x0 e combinazione lineare degli autovettori di A con coefficientidella combinazione lineare non tutti nulli, i vettori r0, Ar0, ..., Ak−1r0,sono linearmente indipendenti.

Tecniche di restart sono state sviluppate per diversi metodi.

Si vedono ora alcuni metodi che minimizzano lo spazio di Krylov senza scendere neidettagli. Per una trattazione “pratica” si veda Kelley (1995).29

Se supponiamo che la matrice dei coefficienti A del sistema lineare Ax = b siaindefinita, gli algoritmi CGNR e CGNE (p. 25 in Kelley (1995)) si basano sulcalcolo dei residui rk del metodo del gradiente coniugato applicati ai sistemi conmatrice simmetrica ATAx = AT b e AATy = b (posto x = ATy) rispettivamente.30

L’algoritmo GMRES, (Generalized Minimum Residual di Saad e Schultz (1986);si veda Cap. 3 in Kelley (1995)) si basa sul calcolo dei residui rk del procedimentodi Arnoldi per la risoluzione del sistema con matrice A indefinita.

Una tecnica di implementazione del metodo GMRES e quella di abbinare il metodocon un precondizionamento della matrice A. Un precondizionatore efficace per ilmetodo GMRES e quello che si basa sulla fattorizzazione LU incompleta con soglia(ILUT , Saad (1994)).

Un procedimento analogo a quelli di Lanczos e Arnoldi e quello in cui si mostra chei residui normalizzati rk/∥rk∥2 e rk/∥rk∥2, k = 0, ..., n−1 del metodo dei gradientibiconiugati costituiscono due matrici n× k di colonne tra di loro ortonormali Qk eQk tali che la matrice di ordine k, QTkAQk, e una matrice bidiagonale. Il processo dibidiagonalizzazione della matrice A e equivalente al processo di tridiagonalizzazionedi Lanczos per la matrice simmetrica

B =

(0 AAT 0

)(18.20)

29

• Kelley C.T.: Iterative Methods for Linear and Nonlinear Equations, SIAM, Philadelphia, 1995.

30La matrice ATA, cosı come la matrice AAT , e simmetrica qualunque sia A.

Page 23: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

18.4. COMPLEMENTI AL CAPITOLO 287

L’algoritmo dei gradienti biconiugati (Bi–CG) non fallisce se i vettori r0, Ar0, ..., An−1r0sono linearmente indipendenti, ovvero il procedimeno di bidiagonalizzazione termi-na alla (n − 1)–esima iterazione; in tal caso, come per il metodo del gradienteconiugato, in assenza di errori di arrotondamento, la soluzione del sistema lineareAx = b si ottiene al piu dopo n passi.

Il metodo dei gradienti biconiugati soddisfa una proprieta di minimo come quelladel gradiente coniugato. Varianti del metodo dei gradienti biconiugati sono statesviluppate e implementate.

Tra queste varianti si citano l’algoritmo Bi–CGSTAB (van der Vorst (1992),si veda p. 50 in Kelley (1995)) e un algoritmo molto efficiente per il calcolodella soluzione di sistemi lineari con matrice sparsa di grandi dimensioni che eimplementato nella routine LSQR di Paige e Saunders (1982) che si basa sullabidiagonalizzazione di A, minimizzando i residui calcolati ad ogni passo.

L’algoritmo LSQR non fallisce se i vettori r0, Br0, ..., Bn−1r0 sono linearmente

indipendenti, dove B e la matrice in (18.20).

Page 24: Metodi del gradiente - UnimoreIl metodo di discesa che utilizza la scelta (18.3) come direzione di discesa si chiama metodo del gradiente o metodo della discesa ripida (steepest descent,

288 CAPITOLO 18. METODI DEL GRADIENTE