You are on page 1of 22

Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Mtodo de gradiente conjugado

Mtodos Numricos

Conferencia 17
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Conferencia 17

1 Conceptos bsicos

2 Mtodos de direcciones conjugadas y de gradiente conjugado

3 Convergencia y precondicionamiento
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Matrices definidas positivas

Definicin
Una matriz A Rnn es definida positiva si es simtrica y cumple
x T Ax > 0, x Rn , x 6= 0,
Proposicin (Caracterizacin mediante valores propios)
Una matriz simtrica es definida positiva si y solo si todos sus valores
propios son estrictamente positivos.
Norma asociada a A

Si A es definida positiva la funcin kxkA = x T Ax es una norma
(i) kxkA 0, x Rn
(ii) kxkA = 0 x = 0
(iii) kxkA = ||kxkA , R, x Rn
(iv ) kx + y kA kxkA + ky kA , x, y Rn
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Sistemas lineales

Definicin
Dado un sistema de ecuaciones Ax = b con solucin x = A1 b
definimos, para una solucin aproximada x, los vectores
Residuo: r (x) = b Ax
Error: e(x) = x x
Proposicin
El problema de encontrar la solucin x de un sistema lineal de ecua-
ciones Ax = b, con A positiva definida, es equivalente a encontrar
el mnimo de cualquiera de las dos siguientes funciones:
(x) = x T Ax 2b T x = x T r (x)
p
(x) = ke(x)kA = (x x)T A(x x)
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Ortogonalidad
Definicin
Sea A Rnn una matriz definida positiva.
Dos vectores x, y Rn son ortogonales respecto a A si
x T Ay = 0.
Un conjunto de vectores no nulos {v1 , . . . , vn } Rn se llama
ortogonal respecto a A si todos son ortogonales entre s:
viT Avj = 0, i 6= j

Observaciones
Si A es la matriz identidad, entonces la ortogonalidad se
reduce a la condicin x T Ay = x T y = x1 y1 + + xn yn = 0 , lo
cual geometricamente significa que los vectores forman un
ngulo recto.
Los vectores unitarios son un ejemplo de conjunto ortogonal.
Todo conjunto de vectores ortogonales es independiente.
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Ejemplo de ortogonalidad respecto a A

Datos y clculos

34 73

4 3 0 1
4
A= 3 4 1 v1 = 0 v2 = 1 v3 = 7

0 1 4 0 0 1

34 34

4 3 0
v1T Av2 = [1 0 0] 3 4 1 1 = [4 3 0] 1 =0
0 1 4 0 0
3 3
4 3 0 7 7
v1T Av3 = [1 0 0] 3 4 1 4 = [4
7
3 0] 4 =0
7
0 1 4 1 1

37 73

  4 3 0  
3 7
v2T Av3 = 10 3 4 1 4
7
= 0 1 4
7
=0
4 0 1 4 4
1 1
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Algoritmo general de direcciones conjugadas


Teorema
Sea {v1 , . . . , vn } una base de vectores ortogonales respecto a la ma-
triz definida positiva A y x 0 = 0 el vector inicial nulo. Si definimos
vkT (b Axk1 ) vkT r (xk1 )
tk = = ; xk = xk1 + tk vk
vkT Avk vkT Avk

para k = 1, . . . , n, entonces Axn = b.


Teorema (ortogonalidad)
Los vectores residuales rk = r (x k ), k = 1, . . . , n del anterior algoritmo
de direcciones conjugadas satisfacen que: rkT vj = 0, j = 1, . . . , k
Observacin
Si tenemos una base ortogonal respecto a una matriz A definida
positiva, podemos usar el anterior procedimiento como un algoritmo
exacto de resolucin del sistema Ax = b.
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Regresando al mismo ejemplo para resolver Ax = b

Datos y base ortogonal


34 37

4 3 0 24 1
A= 3 4 1 b= 30 ; v1 = 0 v2 = v3 = 4
1
7

0 1 4 24 0 0 1

Paso 1 (Direcciones conjugadas): x0 = [0 0 0]



24 24
r0 = r (x0 ) = b Ax0 = b = 30 T
= v1 r0 = [1 0 0] 30 = 24
24 24


4 3 0 1 4
v1T Av1 = [1 0 0] 3 4 1 0 = [1 0 0] 3 = 4
0 1 4 0 0


v1T r0 0 1 6
24
t1 = T = = 6 = x1 = x0 + t1 v1 = 0 +6 0 = 0
v1 Av1 4 0 0 0
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Regresando al mismo ejemplo para resolver Ax = b

Datos y base ortogonal


34 37

4 3 0 24 1
A= 3 4 1 b = 30 ; v1 = 0 v2 = 4
1 v3 = 7

0 1 4 24 0 0 1

Paso 2 (Direcciones conjugadas): x1 = [6 0 0]



24 4 3 0 6 24 24 0
r1 = 30 3 4 1 0 = 30 18 = 12
24 0 1 4 0 24 0 24
3

4 3 0 4
0
v2T Av2 = 43 1 0 3 1 = 34 1 0 74 = 74
   
4 1
0 1 4 0 1

0 T
v r1 12 4 48
v2T r1 = 43 1 0 12 = 12 = t2 = T2
 
= =
24 v2 Av2 7 7
6
43

6 7
x2 = x1 + t2 v2 = 0 + 48 7
1 = 48 7

0 0 0
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Regresando al mismo ejemplo para resolver Ax = b

Datos y base ortogonal


34 37

4 3 0 24 1
A= 3 4 1 b = 30 ; v1 = 0 v2 = 4
1 v3 = 7
0 1 4 24 0 0 1
6 48

Paso 3 (Direcciones conjugadas): x2 = 7 7 0
6
24 4 3 0 7 24 24 0
r2 = 30 3 4 1 48 = 30 30 = 0
7
24 0 1 4 0 24 48
7
120
7
37

4 3 0 0
v3T Av3 = 37 4
 3 4 
4 1 0 = 24
 
1 3
7
4 1 7
=
7 7 7
4
0 1 4 1 7

0
 3 4  v T r2 120
T
v3 r2 = 7 7 1 0 = 120
7
= t3 = T3 = = 5
7120 v3 Av 3 24
6
37

7 3
x3 = x2 + t3 v3 = 48
7
5 4 =
7
4
0 1 5
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Regresando al mismo ejemplo para resolver Ax = b

Datos y base ortogonal


34 37

4 3 0 24 1
A= 3 4 1 b = 30 ; v1 = 0 v2 = 4
1 v3 = 7
0 1 4 24 0 0 1

Solucin x3 = [3 4 5]

4 3 0 3 24
3 4 1 4 = 30
0 1 4 5 24

Ortogonalidad

0 0 0
r1 = 12 r2 = 0 r3 = 0
24 120
7
0

r1T v1 = 0; r2T v1 = 0; r3T v2 = 0


Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Algoritmo de gradiente conjugado de Hestenes y Stiefel


Dada una matriz definida positiva A y un punto inicial x0 calculamos:
r0 = b Ax0 ; v1 = r0

Realizamos los siguientes pasos con k = 1, 2, 3 . . . hasta que rk1 = 0.


T
rk1 rk1
tk = T
vk Avk

xk = xk1 + tk vk

rk = rk1 tk Avk

rkT rk
sk = T r
rk1 k1

vk+1 = rk + sk vk
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Algoritmo de gradiente conjugado de Hestenes y Stiefel


Observacin
El algoritmo de gradiente conjugado construye una base ortogonal
v1 , . . . , vn respecto a una matriz definida positiva A, utilizando los
residuos del sistema Ax = b. Al mismo tiempo calcula los vectores
xk , k = 1, . . . , n tales que Axn = b.
Teorema
Consideremos que se aplica el algoritmo de gradiente conjugado al
sistema Ax = b, con A definida positiva. Si rk1 6= 0, entonces se
cumplen las siguientes relaciones:
rkT rj = 0, (j < k)

T
vk+1 Avj = 0, (j < k)

ke(xk )kA ke(xk1 )kA


Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Aplicando Gradiente conjugado al mismo ejemplo


Datos y punto inicial

4 3 0 24 0 24
A= 3 4 1 b = 30 ; x0 = 0 v1 = r0 = 30
0 1 4 24 0 24

Paso 1

24
r0T r0 = [24 30 24] 30 = 2052
24


4 3 0 24 186
v1T Av1 = [24 30 24] 3 4 1 30 = [1 0 0] 216 = 13968
0 1 4 24 126

r0T r0 2052 57
t1 = = = = 0.1469..
v1T Av1 13968 388


0 24 3.5258
x1 = x0 + t1 v1 = 0 + 0.1469 30 = 4.4072
0 24 3.5258
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Aplicando Gradiente conjugado al mismo ejemplo


Datos y puntos

4 3 0 0 24 3.5258
A= 3 4 1 x0 = 0 v1 = r0 = 30 x1 = 4.4072
0 1 4 0 24 3.5258

Paso 1 (II)

186
r0T r0 = 2052 Av1 = 216 t1 = 0.1469
126


24 186 3.3247
r1 = r0 t1 Av1 = 30 0.1469 216 = 1.7320
24 126 5.4897

r1T r1 44.19
s1 = = = 0.02154..
r0T r0 2052


3.3247 24 2.8079
v2 = r1 + s1 v1 = 1.7320 + 0.02154 30 = 1.0859
5.4897 24 6.0065
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Aplicando Gradiente conjugado al mismo ejemplo


Datos y puntos

4 3 0 0 24
A= 3 4 1 x0 = 0 v1 = r0 = 30
0 1 4 0 24

Paso 1

3.5258 3.3247 2.8079
x1 = 4.4072 r1 = 1.7320 v2 = 1.0859
3.5258 5.4897 6.0065

Paso 2

2.8580 0.1210 0.1191
x2 = 4.1490 r2 = 0.1241 v3 = 0.1249
4.9542 0.0341 0.0384

Paso 3
0.36 108

2.99999
x3 = 4.0000 r2 = 0.39 10 8
4.9999 0.141 108
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Resultados de convergencia
Teorema (Convergencia finita)
Si A Rnn es una matriz definida positiva que tiene m valores pro-
pios distintos (m n), entonces el algoritmo de gradiente conjugado
aplicado a Ax = b converge en m pasos.
Notacin
Para una matriz A Rnn definida positiva, denotemos por (A) a
su nmero de condicin respecto a la norma 2. Se tiene que:
max (A)
(A) = kAk2 kA1 k2 = max (A) max (A1 ) =
min (A)

Teorema (Velocidad de convergencia)


Si se aplica el algoritmo de gradiente conjugado al sistema Ax = b
con A definida positiva, entonces se cumple para todo k:
p !k
(A) 1
ke(xk )kA 2 p ke(x0 )kA
(A) + 1
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Matriz de precondicionamiento
Observacin
Sea C una matriz regular y A definida positiva. Se tiene que:
Ax = b Ax = b

donde
A = C 1 AC T ; x = C T x; b = C 1 b

y por definicin C T = (C T )1 = (C 1 )T
Motivacin
El algoritmo de gradiente conjugado precondicionado utiliza
una matriz C , tal que A tenga un mejor nmero de condicin
que A. Se resuelve entonces el sistema mejor condicionado
Ax = b y se recupera la solucin original usando x = C T x.
Todas las operaciones pueden realizarse sin trabajar
explcitamente con el sistema transformado.
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Algoritmo de gradiente conjugado con precondicionamiento


Dada una matriz definida positiva A, un punto inicial x0 y una matriz
regular C calculamos:
r0 = b Ax0 ; w0 = C 1 r0 ; v1 = C T w0

Realizamos para k = 1, 2, 3 . . . hasta que wk1 = 0.


T w
wk1 k1
tk =
vkT Avk

xk = xk1 + tk vk

rk = rk1 tk Avk

wk = C 1 rk

wkT wk
sk = T
wk1 wk1

vk+1 = C T wk + sk vk
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Ejemplo
Datos y solucin
0.2 0.1 1 1 0 1 7.8597

0.1 4 1 1 1 2 0.4229

A= 1 1 60 0 2 b= 3 x = 0.0736


1 1 0 8 4 4 0.5406
0 1 2 4 700 5 0.0106

Condicin
0.0571

3.7453
700.03081
vp(A) = 8.3384 (A) = = 1.2260 104

60.0284 0.0571
700.03081

Matriz de precondicionamiento

0.2 0 0 0 0
p

0 4 0 0 0

C = Diag (A) =
0 0 60 0 0

0 0 0 8 0

0 0 0 0 700
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Ejemplo

Precondicionamiento


0.2 0.1 1 1 0
0.2 0 0 0 0
0.1 4 1 1 1
0 4 0 0 0

A= 1 1 60 0 2 C = 0 0 60 0 0


1 1 0 8 4 0 0 0 8 0

0 1 2 4 700 0 0 0 0 700

1.0000 0.1118 0.2887 0.7906 0



0.1118 1.0000 0.0645 0.1768 0.0189
A = C 1 AC T = 0.2887 0.0645 1.0000 0 0.0098


0.7906 0.1768 0 1.0000 0.0535
0 0.0189 0.0098 0.0535 1.0000

Condicin
0.1564

0.8527 1.8805
vp(A) = 1.0088 (A) = 12

1.1016 0.1564
1.8805
Conceptos bsicos Mtodos de direcciones conjugadas y de gradiente conjugado Convergencia y precondicionamiento

Ejemplo

Comparacin
Mtodo Iteraciones ||xk x ||
Jacobi 49 0.00305834
Gauss-Seidel 15 0.02445559
Gradiente conjugado 5 0.00629785
Gradiente conjugado precondicionado 4 0.00009312

You might also like