Está en la página 1de 13

MAT 274 - Análisis numérico II Universidad Tecnica Federico Santa Maria

Profesor: Jesus Vellojin Departamento De Matemática


Alumnos: Agustin Huerta Soto-Gala Carreño Moreno Semestre: 2020-1

Método del gradiente conjugado


Introducción

En problemas matemáticos, en especı́fico en el área donde nos movemos, es decir, buscar soluciones a
problemas computacionalmente, existen dos tipos de resolución, directos e iterativos. El primero busca
la solución del problema mediante el cálculo explicito de la solución y en el segundo se busca resolver
el problema aproximandose sucesivamente a la solución. Además, en contraste, el segundo tiene la
particularidad de que es mejor en uso de recursos cuando ingresamos estructuras más masivas, de aqui
la importancia en Large Sparse Systems. Por ejemplo, la importancia de estos en algoritmos de algebra
lineal es que los metodos no iterativos (la mayoria, hay casos que logran un mejor desempeño) alcanzan
una complejidad de O(m3 )(Gaussian elimination, QR factorization,etc). Es por esto que en el sentido
de solucionar Ax = b, A ∈ Rm×m con ciertas condiciones está el CG. También existen extensiones de
esto y relacionados, como método del bigradiente conj. o casos no lineales, pero solo nos importa el
CG naturalmente.
En este trabajo no incluiremos demostraciones de los resultados por estructura misma de la presenta-
ción.

El método

El entorno en el que trabajaremos será usando métodos proyectivos, en particular, la herramienta


principal usada en el fundamento del metodo son los espacio de Krylov. En concreto, con esto se busca
reducir el problema proyectando a espacios de menor dimension y ası́ disminuir a una secuencia de
problemas en matrices de dimension 1,2,3.. . Definamos la estructura necesaria.
Definition 1. Sea m ∈ N y A ∈ Rm×m una matriz simetrica y supongamos que quremos resolver el
sistema no singular Ax = b. Sea Kn denotando el enésimo subespacio de Krylov generado por b

Kn = hb, Ab, ..., An−1 bi

Consideremos una matriz simetrica real definida positiva, es decir,


√ x Ax > 0, x ∈ R no nulo. En este
T m

sentido podemos considerar la norma || · ||A definida por ||x||A = xT Ax (es fácil verificicar que lo es).
El sentido de esto es que con el método del gradiente conjugado lo que buscamos es minimizar el error
en = x − xn , es decir, buscamos una secuencia {xn ∈ Kn } que satiface ||en ||A es minimizado. Ahora,

1
UTFSM MAT-274

lo interesante de considerar estos espacios es que hay propiedades de ortogonalidad que nos aseguran
estabilidad que veremos como resultados.

Por otro lado, notemos que, naturalmente, también podemos verlo como un algoritmo de optimización:
minimizamos ||en ||A en cada paso n en todos los x ∈ Kn . En efecto, existe x que lo cumple por un
resultado clásico de análisis funcional sobre proyecciones ortogonales.

Theorem 1. Sea A A ∈ Rn×n simétrica y definida positiva, x, b ∈ Rn . Entonces para xm ∈ Km (A, b)


son equivalentes

0 = v T (b − Axm ) = v T A(x − xm ) para todo v ∈ Km (A, b) ||x − xm ||A = mı́n ||x − y||A
y∈Km (A,b)

En particular, hay única solución xm ∈ Lm (A, b) 

Siguiendo con lo anterior, podemos formularlo de la siguiente forma

xn = xn−1 + αn pn−1

es decir, actualizamos desde xn−1 a xn con distancia αn y dirección pn−1 (dirección de busqueda). Un
problema de esta formulación es que la función, que lógicamente vamos a minimizar, ||en ||A o ||en ||2A ,
necesita del valor x (xm → x) para ser evaluada. Por esto consideramos la función

1
ϕA,b (x) = xT Ax − xT b, x ∈ Rm
2

que puede ser evaluada. Notemos que

||en ||2A = eTn Aen = (x − xn )T A(x − xn )


= xTn Axn − 2xTn Ax + xT Ax
= xT Axn − 2xTn b + xT b = 2ϕA,b (x) + const

ésta función y la norma del error se comportan casi de la misma forma, a excepcion de unas cons-
tantes, entonces podemos formular el GC como una minimización de ϕ(x) que es algo que podemos
encontrar mas recurrentemente en aplicaciones en fı́sica y similares. En cada paso xn = xn−1 + αn pn−1
minimizamos ϕ en el espacio 1-dimensional xn + hpn−1 i(∼ Kn ).

Por el lado de la programación como tal en [1], el CG fue formulado por Hestenes y Stiefel como vemos
en el siguiente código implementado el Matlab (y el que usaremos posteriormente)
MAT-274 UTFSM

CG algorithm

function [ R, x ] = c o n j g r a d (A, b , x , error )


r = b− A ∗ x ; p = r ; r s o l d = r ’ ∗ r ;
for i = 1 : length ( b )
Ap = A ∗ p ;
a lpha = r s o l d / ( p ’ ∗ Ap ) ;
x = x + alpha ∗ p ;
r = r − alpha ∗ Ap ;
rsnew = r ’ ∗ r ;
i f sqrt ( rsnew ) < error
break ; end
p = r + ( rsnew / r s o l d ) ∗ p ;
r s o l d = rsnew ;
end
end

Cualitativamente, el algoritmo en cada i del for parte de un x y en una dirección de busaqueda p


optimiza (como dijimos antes). Notar que se pide un error de tolerancia para finalizar las iteracio-
nes. También tenemos varias manipulaciones vectoriales y un producto matricial, entonces podemos
situarnos en dos casos dependiendo de la estructura matricial de A que tienen su costo computacional
respectivo:
la matriz es densa, ie, ausencia relativa de Aij = 0: en este caso el producto matriz-vector es
dominante y se necesitan ∼ 2m2 flops en cada paso.
la matriz es dispersa: lo contrario a lo anterior: en contraste, necesitamos O(n) flops por paso.

De aqui en adelante presentaremos algunos resultados relevantes sobre ortogonalidad y que efectiva-
mente buenas formas para la convergencia de la formulación del método:
Theorem 2 (38.1 trefethen). Sea la iteración del GC (GC alg.) aplicado a una matriz simetrica
definida positiva del problema Ax = b. Mientras que la iteración no haya convergido (ie, rn−1 6= 0), el
algoritmo procede sin divisiones por cero (rT · r) y tenemos las siguientes propiedades:
Kn = hx1 , x2 , ..., xn i = hp0 , p1 , ..., pn−1 i
= hr0 , r1 , ..., rn−1 i = hb, Ab, .., An−1 bi
Además, los residuales son ortogonales
rnT rj = 0, j<n
y las direcciones de busqueda son A-conjugadas

pTn Apj = 0, j<n



UTFSM MAT-274

Axn

||rn ||
~b

Theorem 3 (38.2 trefethen). Sea la iteración del GC (GC alg.) aplicado a una matriz simetrica
definida positiva del problema Ax = b. Mientras que la iteración no haya convergido (ie, rn−1 6= 0),
entonces xn es el único punto en Kn que minimiza ||en ||A . La convergencia es monótona,
||en ||A ≤ ||en−1 ||A
y en = 0 es alcanzado para un n ≤ m 

Dentro del área de métodos iterativos, también podemos carcaterizar el problema a traves de una
perspectiva de problema de aproximación polinómica, esto condicionado por la norma tomada (|| · ||A ).
Por ejemplo, junto con otros métodos presentamos unos ejemplos para concretizar la idea

CG approx. problem Arnoldi/Lanczos approx. GMRES approx. problem


problem
Encontrar pn ∈ P n tal que Encontrar pn ∈ P n tal que
Encontrar pn ∈ P n tal que
||pn (A)e0 ||A = mı́n ||pn (A)e0 || = mı́n
||pn (A)e0 || = mı́n

donde e0 = x − x0 es el error inicial y P n lo polinomios de grado menor o igual a n con p(0) = 1. Incluso
para esto podemos asegurar que la estructura del problema tiene sentido. En efecto, por el teorema de
Cayley-Hamilton, toda matriz cuadrada en un anillo conmutativo anula su polinomio caracterı́stico:
n
p(λ) = det(λIn − A) = pi λi
X

i=0

y como A es invertible, tendremos


1 n−1 pn−1 n−2 p1
A−1 = − A − A − ... − In
p0 p0 p0

siguiendo la idea, el plantamiento es el mismo salvo la norma como dijimos. De esto tenemos el siguiente
resultado que nos aporta información adicional sobre convergencia del problema
MAT-274 UTFSM

Theorem 4 (38.3 trefethen). Si el CG aún no ha convergido en el paso n, entonces el problema


polinomial tiene solución única pn ∈ P n y la iteración xn tiene error en = pn (A)e0 para el mismo
polinomio pn . Consecuentemente tenemos
||en ||A ||pn (A)e0 ||A
= ı́nfn ≤ ı́nfn máx |p(λ|)
||e0 ||A p∈P ||e0 ||A p∈P λ∈Λ(A)

donde Λ(A) denota el espectro de A. 

Un resultado que se puede desprender de esto y que es útil en el sentido de que habla de que es
importante cómo sea estructuralmente las matrices de una forma más explicita aún que el anterior, en
concreto, cómo es el espectro de la matriz:
Theorem 5 (38.4 trefethen). Si A tiene solo n distintos valores propios, entonces el algoritmo 1
converge como máximo en n pasos. 

Otro caso, incluso mucho más general ya que pide menos información, es cuando disponemos no de la
distribución pero sı́ de qué tan alejados están del origen, caracterización debido a los valores máx − mı́n
del espectro:
Theorem 6 (38.5 trefethen). sea el CG aplicado a una matriz simetrica definida positiva en el problema
Ax = b. donde A tiene el número de condición norma-2 κ = λmáx /λmı́n . Entonces el error satisface
en la norma || · ||A lo siguiente
√
||en ||A 2 κ−1 n

≤  √ n  √ −n  ≤ 2 √
||e0 ||A κ+1 κ+1 κ+1

κ−1
+ √κ−1


más tarde expondremos algunos casos explı́citos donde se ve mejor esto. Por ahora veamos el siguiente
ejemplo que concretiza los puntos básicos
Example 0.1. Consideremos una matriz aleatoria A ∈ R500×500 simetrica y con diagonal conformada
por unos, con entradas Aij valores en [−1, 1]. Tomemos un parámetro τ > 0 relativamente cercano a
0 con el fin de hacer 0 las componentes |Aij | > τ , ası́ obtenemos una matriz dispersa. Consideremos
entonces una cantidad finita para valores de tau. En matlab implementar esto y verificar gráficamente
algunos puntos que hemos enunciado. Graficamos ||rn ||A vs n, la cantidad de pasos que toma llegar a
un error de 10−10

Cada gráfica, de izquierda a derecha, representa a un tau en particular en el orden [0,01 0,05 0,1 0,2],
es decir, para una matriz dispersa, como planeamos, se cumplen las condiciones y obtenemos que hay
convergencia. Por otro lado, para matrices que son relativamente más densas no se aclara el panorama
y en concreto el método no asegura nada. Podemos extender la gráfica hasta n=500 y una cantidad
más grande de τ (ocupamos un linspace(0,1))
En este otro caso, también notamos que posible la convergencia para alguna casos como en le ima-
gen derecha, pero es mera coincidencia e incluso no nos dice mucho ya que de aproximadamente 90
UTFSM MAT-274

curvas solo 2 lo lograron, no es confiable, mientras que cuando nos acotamos a las condiciones dichas
obtenemos el resultado con un error en las iteraciones de quiza uno más abajo o uno más arriba como
mucho. También podemos ver cómo son las matrices a nivel de dispersión (gráficas que denotan solo
puntos no nulos).
MAT-274 UTFSM
UTFSM MAT-274

Campo de aplicación y ejemplo a ser abordado

En esta sección enunciaremos algunos casos donde se encontró uso del método seguido de un caso en
particular con más trabajo y análisis/verificación de algunas propiedades dichas.

Campo de aplicación

En general con este método, como vimos anteriormente buscamos 2 tipos de cosas posibles, resolver
distintos problemas de valores de frontera de forma iterativa o resolver sistemas lineales Ax = b. Por
ejemplo, en [2] podemos encontrar aplicaciones en restauración de imagenes o también en [3] podemos
encontrar su aplicación en problemas de fı́sica de minimización de energı́a.

Ejemplo

En sistemas electricos de potencias es de nuestro interes estudiar, naturalmente, el fenómeno de trans-


mitir potencia. En nuestro problema en concreto buscamos dar una solución guiandonos por el método
de análisis de contigencia para analizar un sistema de ésta ı́ndole. Para entrar en contexto, en mode-
lamiento de SEP nosotros tenemos ciertas restricciones naturales, como es que los objetos con los que
trabajamos, lineas, barras, generadores, etc tiene capacidades limitadas de procesamiento. En parti-
cular el problema se centra seguridad ante situaciones donde una de nuestras componentes deje de
funcionar, ya que en este caso debemos seguir satifaciendo condiciones básicas del mundo real, fun-
damentalmente que hay capacidad máxima de ditribución por lı́nea. Para esto nos basta considerar
algunas estructuras que modelan el proceso.
Por su parte tenemos el poder inyectado
Pn = gnn Vn2 − (Vn Vk gnk cos(θk − θn )) + VnV k bnk sin(θk − θn )
X

k6=n

que es la diferencia de lo que se genera y al demanda en el nodo n. El voltaje nodal Vn y el angulo


de fase θn . Los nodos están conectados por lineas de transmisión con conductancia gnk y susceptancia
bnk . Cabe destacar que estas son variables que no entran en nuestro análisis. Lo que nos interesa en
especı́fico es el sistema linearizado
Bθ = P, B ∈ RN ×N , θ ∈ RN
donde B es la matriz de admitancia de barra y está determinada por
P
 N
j=1 bnj k=n
Bnk =
−b
nk k 6= n
También es importante tener en cuenta el flujo Fkn = bkn (θk − θn ). Nuestro objetivo es encontrar θ
dados P y B.
consideraciones
MAT-274 UTFSM

la matriz es real por definición


es simétrica por la construcción de la misma, ie, porque las relaciones de conexión son reflexivas.
dentro de ésta área y este problema no tiene sentido fı́sico tener valores propios no positivos,
entonces es definida positiva.
Nuestra matriz test210000 es una matriz real definida positiva y simétrica en R10000×10000 que modela
la siguiente red (ver referencia )

Cualitativamente la matriz se describe por su diespersión y espectro (cosas que nos interesa dentor del
análisis)
UTFSM MAT-274

notar que está en escala logaritmica, ie, el espectro va desde poco más de 0 hasta ∼ 105 . Las lineas
rojas denotan el máximo y mı́nimo del espectro, entonces efectivamente es definida positiva. Al aplicar
al método a un vector aleatorio P con el fin de obtener θ en Bθ = P antes dicha (esto es válido ya
que solo nos interesa cómo es que funciona el algoritmo y no hay dependencia con este vector en la
convergencia), tenemos el resultado

Como vemos en el último gráfico, la matriz no tiene muy buen comportamiento con nuestro algoritmo
como son otras que veremos (y vimos) seguido de esto. Tenemos que tener en cuenta que existe un
continuo entre las consideraciones que ya hemos tenido y la realidad. También notemos que efectiva-
mente lo que se lleva más de los recursos es la operación matricial ya discutida, en concreto, podemos
encontrar un gasto 95 % <. También, podemos notar que la tolerancia usada tol = 10−10 es alcanzada
MAT-274 UTFSM

en un no muy buen número de iteraciones, lo cual vamos a contrastar después con matrices de mejor
comportamiento dentro de lo pedido.

Otras matrices y observaciones de teoremas

En concreto, del primero ejemplo podemos notar otras cosas. Lo espectros de las matrices generadas
son

entonces efectivamente tendremos el comportamiento buscaso para los tau más pequeños donde el
espectro es positivo.
También podemos verificar el consumo que tienen matrices densas. Tomamos un vector de densida-
des en escala logaritmica dado por logspace(1, j, j)/10j y generamos matrices con cada componente
del vector con la función sprandsym(n,density). Después la hacemos simétrica y definida positiva
operando
A → A + A0
A → A ∗ A0 + eye(n)
Obtenemos que
UTFSM MAT-274

Podriamos considerar una escala logaritmica pero no cambia mucho el panorama. Lo importante a
recalcar es que efectivamente tenemos un crecimiento exponencial, ya que en este caso tenemos 100
datos y el dato extremo se escapa de la escala dada.
Respecto a un resultado más fuerte, el teorema 6, podemos verificar el enunciado Aunque tenemos que

tener en consideración que ocupamos una matriz del ejemplo 1 para esto. Para las otras matrices el
comportamiento es un poco más azaroso dentro de los rangos posible, pero a grandes rasgos siguen
cumpliendo lo que deberı́an.
nota: en la presentación se pueden ver más casos pero estos son relevantes o introductorios.

Conclusiones

El método del gradiente conjugado dentro de los parametros mencionados actua con una buena con-
vergencia como quisieramos, pero hay que entender que existe un continuo entre lo óptimo que le
puedes entregar al algoritmo y lo que no. En concreto, podemos tener convergencia fuera de la estruc-
tura buscada dentro del rango de lo posible dependiendo de lo ingresado. Vimos que efectivamente
MAT-274 UTFSM

es dependiente de la densidad de la matriz de una forma exponencial y que el error el casos ideales
deberia converger monotonamente. También es de importancia considerar que un espectro mejor dis-
tribuido nos lleva a un desempeño mejor. En nuestro ejemplo en particular notamos que varias de estas
caracterı́sticas no se satifacian tan bien y, en efecto, el desempeño no fue tan bueno.
nota: ver codigos en carpeta adjunta

Referencias

[1] M. Hestenes E. Stiefel. Methods of conjugate gradients for solving linear systems, volume 49.
Journal of research of the National Bureau of standards, 1952.
[2] Tingting Li Wujie Hu Gonglin Yuan. A conjugate gradient algorithm and its application in
large-scale optimization problems and image restoration. Journal of Inequalities and Applications,
2019.
[3] D. J. Chadi. Energy-Minimization Approach to the Atomic Geometry of Semiconductor Surfaces,
volume 41. Physical Review Letters, 1978.
[4] LLoyd N. Trefethen David Bau. Numerical linear algebra. S.I.A.M., (10):293–301, 1997.
[5] Donald Knuth. Knuth: Computers and typesetting.
[6] Marc Timme Dirk Witthaut Henrik Ronellenfitsch. A Dual Method for Computing Power Transfer
Distribution Factors, volume 13. Journal of Latex class files, 2014.
[7] https://electricgrids.engr.tamu.edu/electric-grid-test-cases/activsg10k/

También podría gustarte