Sei sulla pagina 1di 3

Mtodo del gradiente conjugado

Mtodo del gradiente conjugado


En matemtica, el mtodo del gradiente conjugado es un algoritmo para resolver numricamente los sistemas de ecuaciones lineales cuyas matrices son simtricas y definidas positivas. Es un mtodo iterativo, as que se puede aplicar a los sistemas dispersos que son demasiado grandes para ser tratados por mtodos directos como la descomposicin de Cholesky. Tales sistemas surgen frecuentemente cuando se resuelve numricamente las ecuaciones en derivadas parciales. El mtodo del gradiente conjugado se puede utilizar tambin para resolver los problemas de optimizacin sin restricciones como la minimizacin de la energa. El mtodo del gradiente biconjugado proporciona una generalizacin para matrices no simtricas. Varios mtodos del gradiente conjugado no lineales busca los mnimos de las ecuaciones no lineales.

Descripcin del mtodo


Supongamos que queremos resolver el siguiente sistema de ecuaciones lineales Ax = b donde la n-por-n matriz A es simtrica (i.e., AT = A), definida positiva (i.e., xTAx > 0 para todos los vectores no cero x en Rn), y real. Denotamos la nica solucin de este sistema por x*.

El mtodo de gradiente conjugado como un mtodo directo


Decimos que dos vectores no cero u y v son conjugados (con respecto a A) si

Ya que A simtrica y definida positiva, el lado izquierdo define un producto interior

As, dos vectores son conjugados si son ortogonales con respecto a este producto interior. La conjugacin es una relacin simtrica: si u es conjugado a v, entonces v es conjugado a u. Ntese que esta nocin de conjugacin no se relaciona con la de conjugacin compleja. Supongamos que {pk} es una secuencia de n direcciones mutuamente conjugadas. Entonces los pk forman una base de Rn, por lo tanto podemos extender la solucin x* de Ax = b en esta base:

Los coeficientes se dan por

Este resultado es quizs muy transparente si se considera el producto interior definido anteriormente. Esto da el siguiente mtodo para resolver la ecuacin Ax = b. Primero encontramos una secuencia de n direcciones conjugadas y luego computamos los coeficientes k.

Mtodo del gradiente conjugado

El algoritmo resultante
Cdigo ejemplar en Octave o Matlab function [x] = conjgrad(A,b,x0) r w z a x B = = = = = = b - A*x0; -r; A*w; (r'*w)/(w'*z); x0 + a*w; 0;

for i = 1:size(A)(1); r = r - a*z; if( norm(r) < 1e-10 ) break; end if B = (r'*z)/(w'*z); w = -r + B*w; z = A*w; a = (r'*w)/(w'*z); x = x + a*w; end end

Referencias
El mtodo de gradiente conjugado fue propuesto originalmente en Hestenes, Magnus R.; Stiefel, Eduard (diciembre 1952). Methods of Conjugate Gradients for Solving Linear Systems [1] (PDF). Journal of Research of the National Bureau of Standards 49 (6). Descripciones del mtodo se puede encontrar en los siguientes libros de texto: Kendell A. Atkinson (1988), An introduction to numerical analysis (2 ed.), Seccin 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 y Charles F. Van Loan, Matrix computations (3 ed.), Captulo 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.

Referencias
[1] http:/ / nvl. nist. gov/ pub/ nistpubs/ jres/ 049/ 6/ V49. N06. A08. pdf

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Mtodo del gradiente conjugado Fuente: http://es.wikipedia.org/w/index.php?oldid=50270249 Contribuyentes: Jkbw, Juan Mayordomo, Kxx, Oblongo, Santisis, Tecsie, 7 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Potrebbero piacerti anche