Metodo del gradiente coniugato
Da Wikipedia, l'enciclopedia libera.
In analisi numerica, il metodo del gradiente coniugato è un algoritmo per la risoluzione di un sistema lineare della forma Ax = b.
Per poter applicare questo metodo è necessario che A sia una matrice simmetrica definita positiva cioè .
[modifica] Spiegazione del metodo
Quando A è simmetrica si ha che la minimizzazione della funzione è equivalente alla risoluzione del sistema iniziale Ax = b, ed avviene quando
cioè quando:
Questo significa che risolvere il sistema lineare è equivalente a trovare lo zero di e quindi il minimo di f.
Per trovare il minimo si procede iterativamente come nel metodo del gradiente cioè, partendo da un punto xi si sceglie una direzione di e si trova il punto successivo minimizzando f sulla retta avente direzione di e passante per xi.
La differenza sostanziale rispetto al metodo del gradiente è nella scelta della direzione di che non corrisponde alla direzione di massima pendenza come nel metodo del gradiente, ma è scelta A-ortogonale alle superfici di livello.
La ragione di questa scelta è che f(x) è un paraboloide dilatato con coefficiente ci sulla direzione ei e poi traslato. I ci sono gli autovalori di A e gli ei i corrispondenti autovettori che esistono per il teorema spettrale. La direzione scelta coincide con il gradiente nel paraboloide originale. Questo assicura la convergenza in n - 1 passi.
Il metodo del gradiente biconiugato fornisce una generalizzazione per matrici non simmetriche.
[modifica] Implementazione d'esempio nel linguaggio Octave
function [x] = conjgrad(A,b,x0) r = b - A*x0; w = -r; z = A*w; a = (r'*w)/(w'*z); x = x0 + a*w; B = 0; for i = 1:size(A)(1); r = r - a*z; if( r < 1e-10) break; endif B = (r'*z)/(w'*z); w = -r + B*w; z = A*w; a = (r'*w)/(w'*z); x = x + a*w; end
[modifica] Collegamenti esterni
- (FR) La méthode du gradient conjugué
- (EN) An Introduction to the Conjugate Gradient Method Without the Agonizing Pain Un'ottima introduzione al Metodo del Gradiente Coniugato.