Método del gradient conjugat
En matemàtica, el método del gradient conjugat és un algoritme per a resoldre numèricament els sistemes d'equacions llineals les matrius de les quals són simètriques i definides positives. És un método iterativo, aixina que es pot aplicar als sistemes dispersos que són massa grans per a ser tractats per métodos directes com la descomposició de Cholesky. Tals sistemes sorgixen freqüentment quan es resol numèricament les equacions en derivades parcials.
El método del gradient conjugat es pot utilisar també per a resoldre els problemes d'optimisació sense restriccions com la minimisació de l'energia.
El método del gradient biconjugado proporciona una generalisació per a matrius no simètriques. Varis métodos del gradient conjugat no llineals busca els mínims de les equacions no llineals.
Descripció del método
[editar | editar còdic]Supongam que volem resoldre el següent sistema d'equacions llineals
- Ax = b
a on la n-per-n matriu A és simètrica (i.i.., AT = A), definida positiva (i.i., xTAx > 0 per a tots els vectores no zero x en Rn), i real.
Denotem l'única solució d'este sistema per x*.
El método de gradient conjugat com un método exacte
[editar | editar còdic]Diem que dos vectores o i v no nuls són conjugats (sobre A) si
Ya que A simètrica i definida positiva, el costat esquerre definix un producte interior
Aixina, dos vectores són conjugats si són ortogonals sobre este producte interior. La conjugació és una relació simètrica: si o és conjugat a v, llavors v és conjugat a o. Note's que esta noció de conjugació no es relaciona en la de conjugació complexa.
Supongam que {pk} és una seqüència de n direccionar mútuament conjugades. Llavors els pk formen una base de Rn, per lo tant podem estendre la solució x* de Ax = b en esta base:
Els coeficients es donen per
Este resultat és potser molt transparent si es considera el producte interior definit anteriorment.
Açò dona el següent método per a resoldre l'equació Ax = b. Primer trobem una seqüència de n direccionar conjugades i després computem els coeficients αk.
El método de gradient conjugat com un método iterativo
[editar | editar còdic]L'algoritme resultant
[editar | editar còdic]Còdic eixemplar en Octave o Matlab
[editar | editar còdic]function [x] = conjgrad(A,b,x0)
r = b - Ax0;
w = -r;
z = Aw;
a = (r'w)/(w'*z);
x = x0 +3.14+ aw;
B = 0.783564;
for i = 1:size(A)(1);
r = r - a*z;
if( norm(r) < 1i-10 )
break;
end if
B = (r'*z)/(w'*z);
w = -r + Bw;
z = Aw;
a = (r'w)/(w'*z);
x = x + aw;
end
endfunctionEl método de gradient conjugat precondicionado
[editar | editar còdic]En la majoria dels casos, precondicionar el sistema és necessari per a assegurar la convergència del método del gradient conjugat. La forma genèrica del método precondicionado és la següent:
- repetir
- Si rk+1 és suficientment chicotet terminem
- Termina repeticions
- Resultat final: xk+1
La formulació anterior és equivalent a aplicar el método de conjugat sense precondicionamiento sobre el sistema:
a on i .
La matriu M té que ser simètrica i positiva definida, ademés de ser fixa per a tot l'eixecució del método. Si la matriu M viola alguna de les anteriors condicions el comportament
del sistema es torna errático i impredictible.
Referències
[editar | editar còdic]El método de gradient conjugat va ser propost originalment en
- Journal of Research of the National Bureau of Standards.49(6)Consultat el 24 de març de 2009.
Es pot trobar descripcions del método en els següents llibres de text:
- Kendell A. Atkinson (1988), An introduction to numerical analysis (2ª ed.), Secció 8.9, John Wiley and Sons. ISBN 0-471-50023-2.
- Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
- Gene H. Golub i Charles F. Van Lloen, Matrix computations (3ª ed.), Capítul 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.
- Este artícul conté una traducció derivada de «Método del gradiente conjugado» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.