Anar al contingut

Método del gradient conjugat

De L'Enciclopèdia, la wikipedia en valencià

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

𝐮T𝐀𝐯=𝟎.

Ya que A simètrica i definida positiva, el costat esquerre definix un producte interior

𝐮,𝐯𝐀=𝐀T𝐮,𝐯=𝐀𝐮,𝐯=𝐮,𝐀𝐯=𝐮T𝐀𝐯.

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:

𝐱*=i=1nαi𝐩i

Els coeficients es donen per

𝐛=𝐀𝐱*=i=1nαi𝐀𝐩i.
𝐩kT𝐛=𝐩kT𝐀𝐱*=i=1nαi𝐩kT𝐀𝐩i=αk𝐩kT𝐀𝐩k.
αk=𝐩kT𝐛𝐩kT𝐀𝐩k=𝐩k,𝐛𝐩k,𝐩k𝐀=𝐩k,𝐛𝐩k𝐀2.

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

endfunction

El 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:

𝐫0:=𝐛𝐀𝐱0
𝐳0:=𝐌1𝐫0
𝐩0:=𝐳0
k:=0
repetir
αk:=𝐫kT𝐳k𝐩kT𝐀𝐩k
𝐱k+1:=𝐱k+αk𝐩k
𝐫k+1:=𝐫kαk𝐀𝐩k
Si rk+1 és suficientment chicotet terminem
𝐳k+1:=𝐌1𝐫k+1
βk:=𝐳k+1T𝐫k+1𝐳kT𝐫k
𝐩k+1:=𝐳k+1+βk𝐩k
k:=k+1
Termina repeticions
Resultat final: xk+1

La formulació anterior és equivalent a aplicar el método de conjugat sense precondicionamiento sobre el sistema:

𝐄1𝐀(𝐄1)T𝐱^=𝐄1𝐛

a on 𝐄𝐄T=𝐌 i 𝐱^=𝐄T𝐱.


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.