21 de setembro de 2012
1 / 31
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.
21 de setembro de 2012
2 / 31
-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)
21 de setembro de 2012
3 / 31
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.
21 de setembro de 2012
4 / 31
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 .
21 de setembro de 2012
5 / 31
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.
21 de setembro de 2012
6 / 31
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 .
21 de setembro de 2012
7 / 31
(1)
21 de setembro de 2012
8 / 31
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)
21 de setembro de 2012
9 / 31
(3)
21 de setembro de 2012
10 / 31
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)
21 de setembro de 2012
11 / 31
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)
21 de setembro de 2012
12 / 31
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 .
21 de setembro de 2012
13 / 31
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.
21 de setembro de 2012
14 / 31
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
21 de setembro de 2012
16 / 31
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 .
21 de setembro de 2012
17 / 31
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)
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
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
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
< , 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.
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.
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
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
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
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
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
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
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
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
21 de setembro de 2012
31 / 31