Método de Gradientes Conjugados. Lourdes Fabiola Uribe Richaud & Juan Esaú Trejo Espino. Instituto Politécnico Nacional Escuela Superior de Física y Matemáticas February 17, 2015 1 Método de Direcciones Conjugadas. El método de direcciones conjugadas es un método iterativo para resolver un sistema lineal de ecuaciones Ax = b donde A M n (R n ) es simétrica y definida positiva. Como sabemos el resolver el sistema de ecuaciones es equivalente al problema de minimizar la función φ(x) definida como: φ(x) = 1 2 xt Ax x T b Notemos que φ(x) = Ax b. Entonces definimos el resido en cada iteración como r(x k ) = φ(x k ) = Ax k b. Definición 1 Sea P = {p 0,..., p k } un conjunto de vectores no nulos, sea A M n (R n ) simétrica y definida positiva. Se dice que P es un conjunto conjugado con respecto a A si < p i, p j > A = p T i Ap j = 0 para toda i j Se puede demostrar que cualquier conjunto de vectores que es conjugado, es además un conjunto linealmente independiente. Así, dado un punto x 0 y un conjunto conjugado {p 0,..., p n 1 }, el método de direcciones conjugadas genera la sucesión x k+1 = x k + α k p k donde α k es el valor que minimiza la función g(α) = φ(x k + αp k ) y está definido por α k = rt k p k p k Ap k Teorema 1 Sea x 0 R n y {p 1,..., p n 1 } un conjunto conjugado. Entonces la sucesión generada por el algoritmo de direcciones conjugadas converge a la solución del sistema Ax = b en a lo más n iteraciones. 1
Demostración 1 Denotemos por x a la solución del sistema Ax = b. Dado que el conjunto de direcciones {p 0, p 1,..., p n 1 } es linealmente independiente éste genera al espacio y podemos escribir la diferencia de x y x 0 de la siguiente manera: x x 0 = σ 0 p 0 + σ 1 p 1 +... + σ n 1 p n 1 (1) donde σ k R para k = 0,..., n 1. Al multiplicar (1) por p T k A y usando la propiedad de conjugados tenemos p T k A(x x 0 ) = σ 0 p T k Ap 0 +... + σ k p T k Ap k +... + σ n 1 p T k Ap n 1 p T k A(x x 0 ) = σ k p T k Ap k σ k = pt k A(x x 0 ) p T k Ap k Como x k es generada por el método de direcciones conjugados, tenemos que (2) x k = x 0 + α 0 p 0 +... + α k 1 p k 1 Multiplicamos ésta expresión por p T k A y usando la propiedad de conjugado por lo que p T k A(x k x 0 ) = α 0 p T k Ap 0 +... + α k 1 p T k Ap k 1 = 0 p T k Ax k = p T k Ax 0 p T k A(x x 0 ) = p T k A(x x k ) = p T k (Ax Ax k ) = p T k (b Ax k ) = p T k r k Usando esta expresión en (2) encontramos que Finalmente de (1) tenemos que σ k = rt k p k p k Ap k = α k n 1 x = x 0 + α j p j = x n j=0 Por lo que la solución x se obtiene a lo más al calcular en el n ésimo paso a x n. Teorema 2 Sea x 0 R n un punto inicial y supongamos que la sucesión {x n } n N es generada por el algoritmo de Direcciones Conjugadas. Entonces: 1. r T k p i = 0 para i = 0,..., k 1 2. x k es el punto que minimiza φ(x) = 1 2 xt Ax b T x sobre x+gen{p 0,..., p k 1 }. 2
Demostración 2 Primero mostraremos que r T k p i = 0 para i = 0,..., k 1. Procedemos por inducción. Para k = 0. Tenemos la fórmula recursiva del residuo r k+1 = r k + α k Ap k, entonces: r 1 = r 0 + α 0 Ap 0, trasponiendo esta expresión y multiplicandola por p 0, tenemos: r T 1 p 0 = r T 0 p 0 + α 0 p T 0 Ap 0, sustituyendo alpha 0 por su expresión en el algoritmo vemos que: Por lo tanto se cumple para k = 0. r1 T p 0 = r0 T p 0 rt 0 p 0 p T 0 Ap p T 0 Ap 0 = 0. 0 Ahora suponemos que se cumple para algún k 1, es decir, r T k 1 p i = 0 para i = 0,..., k 2. Queremos probar que se cumple para k. Observe que: r k = r k 1 + α k 1 Ap k 1, trasponiendo esta expresión y multiplicando la por p k 1, tenemos: r T k p k 1 = r T k 1p k 1 + α k 1 p T k 1Ap k 1, sustituyendo alpha k 1 por su expresión en el algoritmo vemos que: rk T p k 1 = rk 1p T k 1 rt k 1 p k 1 p T k 1 Ap p T k 1Ap k 1 = 0. k 1 Falta ver que sucede con las direcciones conjudas p i para i = 0,..., k 2. Note que: r k = r k 1 + α k 1 Ap k 1, trasponiendo esta expresión y multiplicando la por p i, tenemos: r T k p i = r T k 1p i + α k 1 p T k 1Ap i = 0 parai = 0,..., k 2. Esto debido a la hipótesis inductiva y a que p i para i = 0,..., k 2 son direcciones conjugadas. Por lo tanto r T k p i = 0 para i = 0,..., k 1. Ahora mostraremos que un punto x minimiza φ sobre x + gen{p 0,..., p k 1 } si y sólo si r( x T )p i = 0 para i = 0,..., k 1, esto por las condiciones de optimalidad r(x) = φ(x) = 0. Definimos una función: h(σ) := φ(x 0 + σ 0 p 0 +... + σ k 1 p k 1 ), como h es un función cuadrática y convexa, posee un único punto σ que minimiza la función que satisface: δh(σ ) δσ i = 0 para i = 0,..., k 1, 3
por la regla de la cadena tenemos entonces que φ(x 0 + σ 0p 0 +... + σ k 1p k 1 ) T p i = 0 para i = 0,..., k 1, r( x) T p i = 0 para i = 0,..., k 1. Por lo tanto x minimiza φ sobre x + gen{p 0,..., p k 1 }. Por lo primero sabemos que x k satisface que r(x k ) T p i = 0 para i = 0,..., k 1, pero x es único, por lo tanto x k = x. 2 Método de Gradientes Conjugados. Este método es un método de direcciones conjugadas con una propiedad especial. Esta propiedad es la de generar un nuevo vector p k usando solamente la dirección anterior p k 1.Por lo que este método no necesita conocer p 0,..., p k 2 del conjunto de direcciones conjugadas, automáticamente el vector p k es conjugados a estos. Esto es una ventaja muy importante computacionalmente, debido a la poca memoria que necesita. 2.1 Características. Cada dirección se escoge para que sea una combinación lineal de la dirección de máximo descenso φ(x k ), que es lo mismo que el negativo del residuo r k y la dirección previa p k 1, de este modo tenemos: p k = r k + β k p k 1, (3) donde el escalar β k se determina por la necesidad de que p k y p k 1 sean conjugados respecto a A. Entonces si multiplicamos 3 por p T k 1A e imponiendo la condición p T k 1 Ap k = 0, encontramos que 2.1.1 Algoritmo. rt k Ap k 1 β k = p T k 1 Ap. k 1 function[xn,its]=cg(a,b,tol,its_max) n=length(b); xn=zeros(n,1); r=-b; p=-r; its=0; while (norm(r)>tol) &&(its<=its_max) q=a*p; alpha=(-r *p)/(p *q); xn=xn+alpha*p; r=r+alpha*q; beta=(r *q)/(p *q); p=-r+beta*p; its=its+1; end end 4
Cada dirección de búsqueda p k y cada residuo r k esta contenido en un subespacio de Krylov. 2.1.2 Preeliminares. Definición 2 Sean a 1,..., a m R n. Denotamos por gen(a 1,..., a m ) al conjunto de todas las combinaciones lineales de los vectores a 1,..., a m : gen(a 1,..., a m ) := {x R n : λ 1,..., λ m R, x = Corolario 1 Sean a 1,..., a k, b 1,..., b k R n tales que m λ j a j } gen(a 1,..., a k 1 ) = gen(b 1,..., b k 1 ), a k gen(b 1,..., b k ), b k gen(a 1,..., a k ) Entonces gen(a 1,..., a k ) = gen(b 1,..., b k ) Definición 3 Sean A M n (R) y v R n, un subespacio de Krylov se define como: K j (A, v) := gen{v, Av,..., A j 1 v}. Lema 1 Sean A M n (R), v R n y x K j (A, v). Entonces Ax K j+1 (A, v). Teorema 3 Sea A M n (R) simétrica y definida positiva. Sea p 0 = r 0. Definimos las siguientes fórmulas del método del gradiente conjugado j=1 α k = rt k p k p T k Ap k rt k Ap k 1 β k = p T k 1 Ap k 1 r k+1 = r k + α k Ap k p k = r k + β k p k 1 Entonces para la k-ésima iteración del método se cumplen las siguientes propiedades: i) gen(r 0, r 1,..., r k ) = gen(r 0, Ar 0,..., A k r 0 ) ii) gen(p 0, p 1,..., p k ) = gen(r 0, Ar 0,..., A k r 0 ) iii) p T k Ap i = 0 i = 0,..., k 1 iv) r T k r i i = 0,..., k 1 Demostración 3 Primero procedemos por inducción para demostrar simultáneamente I) y II). Para k = 0, tenemos que gen(r 0 ) = gen(r 0 ). Luego por hipótesis sabemos que p 0 = r 0 por lo que es claro que gen(p 0 ) = gen(r 0 ). Ahora suponemos que se cumple para algún k y demostraremos que se cumple para k + 1, por lo que nuestra hipotesis inductiva es: gen(r 0, r 1,..., r k ) = gen(r 0, Ar 0,..., A k r 0 ) (4) gen(p 0, p 1,..., p k ) = gen(r 0, Ar 0,..., A k r 0 ) (5) 5
Por (5) tenemos que p k gen(r 0, Ar 0,..., A k r 0 ). Si multiplicamos por A obtenemos Ap k gen(ar 0, A 2 r 0,..., A k+1 r 0 ) tomando esta expresión y recordando que r k+1 = r k + α k Ap k se puede notar que r k+1 gen(r 0, Ar 0, A 2 r 0,..., A k+1 r 0 ) (6) De nuevo por (5) sabemos que A k r 0 gen(p 0, p 1,..., p k ). Si multiplicamos esta expresión por la matriz A obtenemos A k+1 r 0 gen(ap 0, Ap 1,..., Ap k ). Además sabemos que Ap i = r i+1 r i para i = 0, 1,..., k por lo que α i A k+1 r 0 gen(r 0, r 1,..., r k+1 ) (7) Usando el Corolario 1 con las expresiones (4), (6), (7) concluimos que gen(r 0, r 1,..., r k+1 ) = gen(r 0, Ar 0,..., A k+1 r 0 ) con lo que queda demostrada la propiedad I) Por demostrar la propiedad II). Note que: gen(p 0,..., p k+1 ) = gen(p 0,..., p k, r k+1 ) (8) = gen(r 0,..., A k r 0, r k+1 ) (9) = gen(r 0,..., r k, r k+1 ) (10) = gen(p 0,..., A k r 0, A k+1 r 0 ) (11) Donde (8) se obtiene por la forma de calcular p k+1, (9) y (10) suceden por la hipótesis inductiva y (11) por la demostración anterior. Para demostrar la propiedad III) de nuevo usamos inducción matemática. Tomando k = 1 vemos que p T 1 = r1 T + β 1 p T 0 = r1 T + rt 1 Ap 0 p T 0 Ap p T 0 0 Multiplicando por Ap 0 obtenemos p T 1 Ap 0 = r1 T Ap 0 + rt 1 Ap 0 p T 0 Ap p T 0 Ap 0 = 0. 0 Ahora suponemos que se cumple para agún k y lo demostraremos para k + 1, así nuestra hipótesis de inducción es que p T k Ap i = 0 para i = 0, 1,..., k 1 y demostraremos que p T k+1 Ap i = 0 para i = 0, 1,..., k Notemos que si i = k tenemos que p T k+1ap i = r T k+1ap i + β k+1 p T k Ap i (12) p T k+1ap k = rk+1ap T k + rt k+1 Ap k p T k Ap p T k Ap k = 0 k Ahora veamos que ocurre cuando i k 1. Por la de inducción podemos observar que la expresión (12) se reduce 6
p T k+1ap i = r T k+1ap i y como demostramos antes p i gen(r 0, Ar 0,..., A i r 0 ) por lo que Ap i gen(ar 0, A 2 r 0,..., A i+1 r 0 ) gen(r 0, Ar 0, A 2 r 0,..., A i+1 r 0 ) = gen(p 0, p 1,..., p i+1 ) Usando está relación y el Teorema 2 tenemos que r T k+1 Ap i = 0. Por la tanto p T k+1 Ap i = 0 para toda i = 0, 1,..., k y la demostración para la propiedad III) queda concluida. Por último se demuestra la propiedad IV ) por argumentos no inductivos. Dado que el conjunto de direcciones es conjugado, por el Teorema 2 tenemos que r T k p i = 0 i = 0,..., k 1. Recordemos que: p i = r i + β i p i 1, multiplicando esta expresión por rk T, tenemos entonces rk T p i = rk T r i + β i rk T p i 1 y por el Teorema 2, rk T r i = 0 i = 0,..., k 1. Por lo tanto queda demostrada dicha propiedad. 7