You are on page 1of 31

Resolu c ao de sistemas de equa co es lineares: M etodo dos Gradientes Conjugados

Marina Andretta/Franklina Toledo


ICMC-USP

21 de setembro de 2012 Baseado no livro C alculo Num erico, de Neide B. Franco

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

1 / 31

M etodo dos Gradientes Conjugados

Estamos interessados em resolver o sistema linear Ax = b , com A I R n n e b I R n dados. Quando a matriz A e esparsa, podemos n ao t e-la representada, mas dispor apenas de rotinas que calculem o produto de A por um dado vetor v . Neste caso, n ao e poss vel usar os m etodos diretos ou os M etodos Jacobi-Richardson ou Gauss-Seidel.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

2 / 31

M etodo dos Gradientes Conjugados


Uma possibilidade, como j a vimos, e utilizar o M etodo dos Gradientes. Uma desvantagem deste m etodo e que sua converg encia costuma ser muito lenta. 8 Jonathan Richard Shewchuk
2

-4

-2

-2

-4

-6

Figure 8: Here, the method of J Steepest Descent starts at 2 2to and converges at 2 2 . Fonte: Shewchuk, R. An Introduction the Conjugate Putting it all together, Science the method of Steepest Descent is: of Computer Carnegie Mellon

Gradient Method Without the Agonizing Pain Edition 1. School University Pittsburgh. PA, 1994.
sme0100 - C alculo Num erico I

(10)

Marina Andretta/Franklina Toledo (ICMC-USP)

21 de setembro de 2012

3 / 31

M etodo dos Gradientes Conjugados

Uma alternativa para resolver um sistema linear que veremos agora eo M etodo dos Gradientes Conjugados. Este e um m etodo iterativo, que parte da mesma ideia do M etodo dos Gradientes (minimizar uma fun c ao quadr atica). No entanto, veremos que h a um limitante para o n umero de itera c oes necess arias para que o M etodo dos Gradientes Conjugados convirja ` a solu c ao do sistema linear.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

4 / 31

M etodo dos Gradientes Conjugados


Assim como no M etodo dos Gradientes, trocaremos o problema de encontrar uma solu c ao para o sistema Ax = b pelo problema equivalente T T de encontrar um minimizador de 1 etrica e 2 x Ax b x , com A sim denida positiva.
T T Dada a fun c ao f (x ) = 1 2 x Ax b x , lembre que:

f (x ) = Ax b ; 2 f (x ) = A. Encontrar a solu c ao do sistema linear Ax = b e equivalente a encontrar o ponto x que satisfaz f (x ) = Ax b = 0, ou seja, o minimizador da fun c ao f .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

5 / 31

M etodo dos Gradientes Conjugados

Antes de descrever o M etodo dos Gradientes Conjugados, precisamos da seguinte deni c ao: Deni c ao 1: Dada uma aplica c ao linear A denida positiva, duas dire c oes x e y s ao ditas conjugadas se (Ax )T y = y T Ax = 0.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

6 / 31

M etodo dos Gradientes Conjugados

A primeira itera c ao (k = 1) do M etodo dos Gradientes Conjugados ser a igual ` a primeira itera c ao do M etodo dos Gradientes. Ou seja, calculamos o res duo r0 = Ax0 b e denimos a dire c ao p1 = r0 .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

7 / 31

M etodo dos Gradientes Conjugados


O novo ponto e dado por x1 = x0 + tp1 , com t = q1 = (igual ao m etodo do gradiente) Portanto, x1 = x0
Tr r0 0 r0 . (Ar0 )T r0 Tp Tr r0 r0 1 0 = . T T (Ap1 ) p1 (Ar0 ) r0

(1)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

8 / 31

M etodo dos Gradientes Conjugados


Para denir a dire c ao pk , para cada itera c ao k > 1, tomamos uma dire c ao que seja conjugada ` a dire c ao pk 1 , isto e, queremos que
T (Apk )T pk 1 = pk Apk 1 = 0.

Al em disso, tomamos pk como uma combina c ao linear de rk 1 e pk 1 . Como o coeciente de rk 1 nesta combina c ao linear n ao pode ser nulo, denimo-lo como -1. Assim, pk = rk 1 + k 1 pk 1 . (2)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

9 / 31

M etodo dos Gradientes Conjugados


Precisamos, ent ao, denir o valor de k 1 . Note que
T pk Apk 1 = 0 (rk 1 + k 1 pk 1 )T Apk 1 = 0 T T rk 1 Apk 1 + k 1 pk 1 Apk 1 = 0.

Ou seja, k 1 = para k > 1.


T Ap rk k 1 1 T Ap pk k 1 1

(3)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

10 / 31

M etodo dos Gradientes Conjugados

Calculada a dire c ao pk , precisamos denir o tamanho de passo qk para calcular xk = xk 1 + qk pk . O tamanho de passo qk e denido como o minimizador da fun c ao 1 T T x na dire x Ax b c a o p . Ou seja, k 2
T p rk 1 k . (Apk )T pk

(4)

qk =

(5)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

11 / 31

M etodo dos Gradientes Conjugados

Note que k 1 e qk , denidos em (3) e (5), respectivamente, sempre s ao maiores do que zero. Como rk = Axk b , temos que rk = A(xk 1 + qk pk ) b = Axk 1 b + qk Apk rk = rk 1 + qk Apk . (6)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

12 / 31

M etodo dos Gradientes Conjugados

O M etodo dos Gradientes Conjugados e denido pelas f ormulas (1) a (6). No entanto, podemos usar algumas propriedades sobre o res duo rk para simplicar os c alculos de k 1 e qk .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

13 / 31

M etodo dos Gradientes Conjugados


O res duo na itera c ao k (rk ) e ortogonal ao res duo na itera c ao k 1 (rk 1 ). Ou seja,
T rk rk 1 = 0.

O res duo na itera c ao k (rk ) e ortogonal ` a dire c ao calculada na itera c ao k (pk ). Ou seja,
T rk pk = 0.

O res duo na itera c ao k (rk ) e ortogonal ` a dire c ao calculada na itera c ao k 1 (pk 1 ). Ou seja,
T rk pk 1 = 0.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

14 / 31

M etodo dos Gradientes Conjugados


Lembre-se que qk = Com estas propriedades, temos que
T T (rk 1 pk ) = rk 1 (rk 1 + k 1 pk 1 ) = T T T rk 1 rk 1 k 1 rk 1 pk 1 = rk 1 rk 1 T p rk 1 k . (Apk )T pk

Ou seja,
T r rk k 1 qk = 1 T . (Apk ) pk
Marina Andretta/Franklina Toledo (ICMC-USP) sme0100 - C alculo Num erico I 21 de setembro de 2012 15 / 31

M etodo dos Gradientes Conjugados


O valor de k 1 e dado por k 1 = Como rk = rk 1 + qk Apk , temos que Apk 1 = 1 qk 1 (rk 1 rk 2 ).
T Ap rk k 1 1 T Ap pk k 1 1

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

16 / 31

M etodo dos Gradientes Conjugados

Usando as propriedades mencionadas, temos que


T T rk 1 Apk 1 = rk 1

1 qk 1 1

(rk 1 rk 2 )
T rk 1 rk 2

1 qk 1

T rk 1 rk 1

qk 1 1 qk 1

T rk 1 Apk 1 =

T rk 1 rk 1 .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

17 / 31

M etodo dos Gradientes Conjugados


Al em disso,
T T pk 1 Apk 1 = pk 1

1 qk 1

(rk 1 rk 2 ) 1 qk 1

1 qk 1 1 qk 1

T pk 1 rk 1

1 qk 1

T pk 1 rk 2 =

T pk 1 rk 2 =

(rk 2 + k 2 pk 2 )T rk 2 = 1 qk 1
T rk 2 rk 2

1 qk 1

T T (rk 2 rk 2 + k 2 pk 2 rk 2 ) =

k 2 T p rk 2 qk 1 k 2 1 qk 1
T rk 2 rk 2 .
21 de setembro de 2012 18 / 31

T pk 1 Apk 1 =
Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

M etodo dos Gradientes Conjugados

Portanto,
T Ap rk k 1 1 T Ap pk k 1 1

k 1 =

k 1 =

T r rk 1 k 1 T r rk 2 k 2

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

19 / 31

Algoritmo
M etodo dos Gradientes Conjugados: dadas a dimens ao n, uma matriz AI R nn sim etrica denida positiva, um vetor b IR n , uma aproxima c ao inicial x0 , uma toler ancia TOL > 0 e o n umero m aximo de itera c oes MAXIT , devolve xk uma aproxima c ao da solu c ao de Ax = b ou emite uma mensagem de erro. Passo 1: Fa ca r0 Ax0 b . Passo 2: Se r0 < , ent ao devolva x0 como solu c ao e pare. Passo 3: Fa ca p1 r0 e q1 Passo 4: Fa ca x1 x0 + q1 p1 . Passo 5: Se x1 x0 < ou
x1 x0 x1
Tr r0 0 . (Ar0 )T r0

< , ent ao

devolva x1 como solu c ao e pare. Passo 6: Fa ca r1 r0 + q1 Ap1 e k 2.


Marina Andretta/Franklina Toledo (ICMC-USP) sme0100 - C alculo Num erico I 21 de setembro de 2012 20 / 31

Algoritmo - continua c ao
Passo 7: Enquanto k MAXIT , execute os passos 8 a 14: Passo 8: Se rk 1 < , ent ao devolva xk 1 como solu c ao e pare. Passo 9: Fa ca k 1
T r rk 1 k 1 . T r rk 2 k 2

Passo 10: Fa ca pk rk 1 + k 1 pk 1 . Passo 11: Fa ca qk


T r rk 1 k 1 . (Apk )T pk

Passo 12: Fa ca xk xk 1 + qk pk . Passo 13: Se xk xk 1 < ou


xk xk 1 xk

< , ent ao

devolva xk como solu c ao e pare. Passo 14: Fa ca rk rk 1 + qk Apk e k k + 1. Passo 15: Escreva o m etodo falhou ap os MAXIT itera c oes e pare.
Marina Andretta/Franklina Toledo (ICMC-USP) sme0100 - C alculo Num erico I 21 de setembro de 2012 21 / 31

Converg encia

Teorema 1: No M etodo dos Gradientes Conjugados, as dire c oes pk formam um sistema de dire c oes conjugadas e os res duos formam um sistema ortogonal. Isto e, para i , j = 1, 2, ..., i = j, (Api )T pj = 0 e riT rj = 0.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

22 / 31

Converg encia

Teorema 2: Dado um sistema linear Ax = b, A IR nn , b , x I R n, o M etodo dos Gradientes Conjugados fornece a solu c ao do sistema em, no m aximo, n itera c oes.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

23 / 31

Exemplo

Vamos usar o M etodo dos Gradientes Conjugados para encontrar a solu c ao do sistema linear

10 1 0 x1 11 1 10 1 x2 = 11 0 1 10 x3 1 com precis ao 102 , usando o ponto inicial x0 = (0, 0, 0)T .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

24 / 31

Exemplo

Na primeira itera c ao (k = 1), temos que 11 r0 = 11 , 1 p1 = r0 , q1 = tmin = 0.0902, 0.9922 x1 = 0.9922 0.0902 0.0858 r1 = 0.0044 . 0.8942

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

25 / 31

Exemplo

Para k = 2, temos
Tr 0.8070 r1 1 = = 0.0033 T 243 r0 r0

1 = e

0.0858 11 0.1221 p2 = r1 + 1 p1 = 0.0044 + 0.0033 11 = 0.0319 . 0.8942 1 0.8909

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

26 / 31

Exemplo
Assim, 10 1 0 0.1221 1.2529 Ap2 = 1 10 1 0.0319 = 0.4498 , 0 1 10 0.8909 8.8771 (Ap2 )T p2 = 0.1530 0.0143 + 7.9086 = 8.0473 e q2 =
Tr r1 0.8070 1 = = 0.1003. T 8.0473 (Ap2 ) p2

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

27 / 31

Exemplo
Portanto,

0.9922 0.1221 1.0044 x2 = x1 + q2 p2 = 0.9922 + 0.1003 0.0319 = 0.9954 0.0902 0.8909 0.0008 e 0.0399 r2 = r1 + q2 Ap2 = 0.0407 . 0.0038

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

28 / 31

Exemplo

Para k = 3, temos
Tr r2 0.0033 2 = 0.0041 = T 0.8070 r1 r1

2 = e

0.0394 p3 = r2 + 2 p2 = 0.0408 . 0.0001

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

29 / 31

Exemplo
Assim, 0.3532 Ap3 = 0.3685 , 0.0398 (Ap3 )T p3 = 0.0139 + 0.0150 0.0000 = 0.0289 e q3 =
Tr r2 0.0033 2 = = 0.1142. T 0.0289 (Ap3 ) p3

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

30 / 31

Exemplo

Portanto,

0.9999 x3 = x2 + q3 p3 = 1.0001 . 0.0008 Note que x3 x2 0.0047 = 0.0047 < 102 . x3 1.0001

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - C alculo Num erico I

21 de setembro de 2012

31 / 31

You might also like