3- Metodi del gradiente (cenni)
Per il problema Ax=b, con A matrice simmetrica e definita positiva, consideriamo la classe di problemi equivalenti di punto fisso del tipo:
x=x+(x)(Ax-b) con (x): RnR e (x) x
Per questo problema consideriamo l'iterazione semplice: 444b123e
xk+1=xk (xk)(Axk-b)=xk (xk)rk
la quale, se converge, converge alla soluzione del sistema lineare assegnato. Tale metodo è caratterizzato dal fatto che ogni punto xk+1 della traiettoria è raggiunto dal punto precedente avanzando nella direzione del residuo. Più in generale consideriamo iterazioni del tipo
xk+1=xk (xk)pk
dove le direzioni pk sono a loro volta definite attraverso il residuo nel seguente modo:
pk=rk (xk)pk-1 con (xk): RnR
Soffermiamoci dapprima sulla scelta delle costanti (xk) che, per brevità di notazione, indicheremo semplicemente con k. Esse possono venir individuate, ad ogni passo, in modo da minimizzare la norma ellittica dell'errore ,o equivalentemente, il suo quadrato.
Indicando la norma ellittica con:
z =ztAz
si tratta quindi di minimizzare, al passo (k+1)-esimo, il funzionale:
(xk+1 x-xk+1=(x-xk+1 tA(x-xk+1
dove
xk+1=xk kpk
Si ottiene così:
(xk+1 x-xk+1=(x-xk kpk tA(x-xk kpk
=(x-xk tA(x-xk kpk tA(x-xk kpk tA(kpk
=x-xk kpktrk pk
il cui minimo è raggiunto per
k
ed e:
(xk+1 x-xk (2.4)
Si osservi che con tale scelta ottimale del parametro k si ha, per ogni direzione di discesa pk, un residuo rk+1 ortogonale alla direzione pk stessa.
Infatti si ha:
rk+1=Axk+1-b=A(xk kpk)-b= rk kApk
dalla quale si ricava:
pktrk+1 =pkt(rk kApk)=pktrk kpktApk
=pktrk pktApk
E' utile considerare la seguente interpretazione geometrica del metodo.
Cominciamo con l'osservare che l'equazione in z:
(z)=(z-x)tA(z-x)=c
rappresenta, al variare di c in R , delle ellissi concentriche di centro x. In particolare il punto xk della traiettoria si trova sull'ellisse
(z)= (xk-x)tA(xk-x).
Inoltre il minimo del funzionale (z) è 0 ed è raggiunto nel punto z=x. Poichè il punto xk+1 è cercato sulla retta s=xk pk R, in modo da minimizzare (x-xk+1 tA(x-xk+1), esso si trova sull'ellisse più interna tra tutte quelle che intersecano la retta s, cioè sull'ellisse tangente ad s.
Metodo del gradiente. Quando la direzione di discesa è quella del residuo:
pk =rk
allora la direzione del passo successivo, che è rk+1 , risulta ortogonale alla precedente ed è quella del gradiente della funzione (z) nel punto xk+1. Per questo motivo il metodo è detto metodo del gradiente.
Si dimostra che tale metodo converge per ogni punto iniziale x , ed i valori dei funzionali (xk) sono legati dalla relazione:
(xk+1 (xk (2.5)
dove K2 (A) è l'indice di condizionamento di A.
Si osservi che quando le ellissi sono molto appiattite, il metodo può risultare molto lento, come illustrato in figura.
Viceversa quando le ellissi sono prossime a cerchi il metodo è molto veloce. Il caso estremo si ha quando (z-x)=c è l'equazione di un cerchio. In tal caso gli autovalori di A sono tutti uguali e quindi K2 (A)=1. Sia l'interpretazione geometrica che la stima (2.5) mostrano che la soluzione è raggiunta dopo un solo passo.
Metodo del gradiente coniugato. Consideriamo sempre iterazioni del tipo
xk+1=xk (xk)pk
dove il parametro (xk) è scelto, come in precedenza, in maniera ottimale. Imponiamo ora che la direzione di discesa al passo k-esimo sia presa nel piano generato dai due vettori pk-1 e rk relativi al passo precedente, che sappiamo essere tra loro ortogonali.
Sia dunque, come già considerato all'inizio del paragrafo,
pk=rk (xk)pk-1
Fissata la direzione iniziale p =r , il parametro (xk) sia ancora scelto in modo da minimizzare il funzionale (xk+1). Prima di stabilire qual'è il valore di (xk) che risponde a questa richiesta, si osservi che in dimensione due il metodo converge alla seconda iterazione. Infatti la prima direzione di ricerca, r ,ed il residuo del primo passo, r , sono tra loro ortogonali e quindi generano tutto il piano.
Per quanto riguarda la determinazione dei coefficienti k ,si tratta di fissare il parametro k in modo da minimizzare il funzionale (xk+1) dato dalla (2.4).
Poichè pk=rk kpk-1 , esso assume la forma:
(xk+1 x-xk
e quindi sarà minimizzato per quel valore di k che minimizza pk In modo diretto si trova:
k
In questo caso si osserva che le due direzioni pk-1 e pk sono ortogonali nel prodotto scalare <z|w>:=zTAw, cioè sono A-coniugate. Si ha infatti:
pk-1TApk =pk-1TA(rk kpk-1)=pk-1TArk kpk-1
Per questa ragione il metodo prende il nome di metodo del gradiente coniugato.
Si dimostra che la direzione pk è A-coniugata con tutte le precedenti direzioni di discesa e che il residuo rk è ortogonale a tutti i precedenti residui:
pkTApi rkTri i=0,1,...,k-1.
Da quest'ultima si evince che il metodo del gradiente coniugato converge in un numero finito di passi non superiore ad n.
Infine conviene osservare che i parametri ottimali k possono esprimersi attraverso le espressioni più semplici:
k
Analogamente al metodo del gradiente, vale la seguente stima tra le norme degli errori di due passi successivi:
(xk+1 (xk
Anche in questo caso minore è l'indice di condizionamento della matrice, più rapido è lo smorzamento dell'errore. Può accadere che, per matrici sufficientemente ben condizionate, il numero di iterazioni sufficienti ad ottenere una buona approssimazione sia considerevolmente inferiore ad n. In questo caso il metodo è fortemente competitivo con tutti gli altri metodi proposti.
Precondizionamento
Data l'importanza di avere un indice di condizionamento piccolo sulla matrice del sistema, sarebbe vantaggioso considerare sistemi equavalenti con matrici meglio condizionate. A tale scopo supponiamo di disporre di una matrice simmetrica, definita positiva ed invertivile C tale che per il prodotto C-1A si abbia: K2 (C-1A)<< K2 (A).
Allora conviene risolvere il sistema equivalente
C-1Ax=C-1b
Siccome la matrice prodotto C-1A non è più simmetrica si può procedere nel seguente modo. Sia C-1/2 una matrice simmetrica e definita positiva tale che C-1/2C-1/2=C-1 (si può dimostrare che una tale matrice esiste). Si consideri l'ulteriore sistema, equivalente al precedente:
C1/2C-1Ax=C1/2C-1b=C-1/2b
C1/2C-1AC-1/2C1/2x=C-1/2b
C1/2C-1AC-1/2y =c dove y=C1/2x e c=C-1/2b
Poichè la matrice C1/2C-1AC-1/2 è simile a C-1A, esse hanno lo stesso indice di condizionamento. L'ultimo sistema si può scrivere come
C-1/2AC-1/2y=c
e può essere risolto con il metodo del gradiente coniugato perchè la sua matrice è simmetrica e definita positiva.
|