You are on page 1of 28

Mtodo iterativo para soluo de sistemas lineares

Gradientes e Gradientes Conjugados


Silvia Maria Pereira Grandi dos Santos
USP - So Carlos/SP
Outubro 2008
Roteiro

Motivao;

Processos de Relaxao;

Estudo do caso f (x) =


1
2
x
T
Ax b
T
x + x;

Mtodo dos Gradientes;

Direo Conjugada;

Mtodo dos Gradientes Conjugados;

Exemplo resolvido.
Motivao
Considere o sistema linear Ax = b. Deseja-se encontrar a soluo x desse
sistema.
Muitas vezes, usar Mtodos Exatos para encontrar a soluo desse sistema
to eciente quanto usar Mtodos Iterativos, mas a situao pode se
complicar quando usamos Mtodos Exatos em sistemas cuja matriz dos
coecientes, A, uma matriz esparsa (cheia de zeros).
O Mtodo dos Gradientes utilizado quando a matriz A simtrica denida
positiva.
Processos de Relaxao

Dado um sistema Ax = b e um ponto para a aproximao inicial x


(0)
da
soluo do sistema, queremos reduzir o resduo dado por
r
(0)
= b Ax
(0)
at que este resduo seja nulo.

Para que o resduo diminua, tomamos uma direo v e corrigimos x


(0)
nesta direo, ou seja,
x
(1)
= x
(0)
+ v de forma que r
(1)
= b Ax
(1)
< r
(0)
.

Dessa forma, construimos uma sequncia {x


(k)
} que converge para a
soluo do sistema Ax = b, pois estamos considerando que o resduo
diminua em cada passo do processo iterativo, ou seja,
r
(k+1)
< r
(k)
.

Quando k temos r
(k)
0 e, dessa forma, Ax
(k)
b e k
(k)
uma
aproximao para a soluo do sitema dado Ax = b.
Estudo de um caso especco
Para o estudo da funo f (x) =
1
2
x
T
Ax b
T
x + c consideremos as seguintes
notaes:

x
T
y representa o produto escalar de x com y no espao R
n
, assim
x
T
y =
_
x
1
x
2
x
n

_
y
1
y
2
.
.
.
y
n
_

_
=
n

i=1
x
i
y
i

Se x e y so vetores ortogonais, ento x


T
y = 0

A uma matriz denida positiva se, para todo vetor x no nulo, tem-se
x
T
Ax > 0

Lembre-se que (AB)


T
= B
T
A
T
.
Estudo de um caso especco
Considere f : R
n
R em que f (x) =
1
2
x
T
Ax b
T
x + c, A uma matrix
n n, b e x so vetores n 1 e c uma constante.
Sejam A =
_
3 2
2 6
_
, b =
_
2
8
_
e c = 0. Nestas condies, o grco da
funo f pode ser visto na Figura 6.
-8
-6
-4
-2
0
2
4
6
8
-8
-6
-4
-2
0
2
4
6
8
0
50
100
150
200
250
300
350
400
450
O ponto de mnimo de f (x) neste caso o ponto (2, 2).
Estudo de um caso especco
possvel mostrar que o ponto de mnimo de f (x) a soluo do sistema
Ax = b. De fato,
sabemos que o ponto de mnimo de f (x) um ponto crtico, ou seja,
f

(x) = f (x) = 0.
Mas f : R
n
R; f (x) =
1
2
n

i,j=1
a
ij
x
i
x
j

i=1
b
i
x
i
+ c. Assim
f (x) =
_

x
1
f (x)

x
2
f (x)
.
.
.

x
n
f (x)
_

_
=
_

_
a
11
x
1
+ a
12
x
2
+ a
1n
x
n
b
1
a
21
x
1
+ a
22
x
2
+ a
2n
x
n
b
2
.
.
.
a
n1
x
1
+ a
n2
x
2
+ a
nn
x
n
b
n
_

_
= Ax b
Fazendo f (x) = 0 temos Ax b = 0 Ax = b, ou seja,
o ponto crtico de f (x) o ponto x tal que Ax = b. Nos resta saber se
x; Ax = b de mnimo ou de mximo.
Estudo de um caso especco
Sabemos que um ponto x ponto de mnimo de f : R
n
R se J(f )
positiva denida.
Como J =
_

2
f (x)
x
2
1

2
f (x)
x
1
x
2


2
f (x)
x
1
x
n

2
f (x)
x
2
x
1

2
f (x)
x
2
2


2
f (x)
x
2
x
n
.
.
.

2
f (x)
x
n
x
1

2
f (x)
x
n
x
2


2
f (x)
x
2
n
_

_
=
_

_
a
11
a
12
a
1n
a
21
a
22
a
2n
.
.
.
a
n1
a
n2
a
nn
_

_
= A
e A uma matriz positiva denida por hiptese, segue o ponto x tal que
Ax = b ponto de mnimo de f (x). Dessa forma, se encontrarmos o ponto
de mnimo de f (x) encontramos a soluo do sistema Ax = b.
Estudo de um caso especco
Sabemos que f (x), num dado ponto x, aponta a direo de maior
crescimento da funo f .
Mtodo dos Gradientes
Dada uma aproximao inicial x
(0)
para a soluo do sistema Ax = b, seria
natural pensarmos em tomar a direo oposta a f (x) para a correo de
x
(0)
, pois f (x) aponta na direo que f decresce mais rapidamente (o
ponto de mnimo de f a soluo do sistema Ax = b).
Pelos clculos feitos anteriormente, sabemos que
f (x
(i)
) = b Ax
(i)
= r
(i)
.
Dessa forma, tomando x
(0)
= (2, 2), sabemos em qual direo caminhar,
mas no sabemos o quanto caminhar.
Mtodo dos Gradientes
Mtodo dos Gradientes
Como x
(1)
= x
(0)
+ r
(0)
e minimiza f (x
(1)
) quando a derivada direcional
f (x
(1)
)

= 0.
Mas
f (x
(1)
)

=
_
f

(x
(1)
)
_
T
x
(1)

=
_
f

(x
(1)
)
_
T
r
(0)
.
Igualando essa expresso a zero temos
_
f

(x
(1)
)
_
T
r
(0)
= 0 que nos sugere
que ser escolhido de forma que r
(0)
e f

(x
(1)
) sejam ortogonais.
Para determinar usamos o fato de f

(x
(1)
= r
(1)
. Dessa forma, teremos
Mtodo dos Gradientes
_
r
(1)
_
T
r
(0)
= 0 Substituindo r
(1)
nessa expresso
_
b Ax
(1)
_
T
r
(0)
= 0 Como x
(1)
= x
(0)
+ r
(0)
temos
_
b A
_
x
(0)
+ r
(0)
__
T
r
(0)
= 0
_
b Ax
(0)
_
T
r
(0)

_
Ar
(0)
_
T
r
(0)
= 0
_
b Ax
(0)
_
T
r
(0)
=
_
Ar
(0)
_
T
r
(0)
_
r
(0)
_
T
r
(0)
=
_
r
(0)
_
T
Ar
(0)
Logo
=
_
r
(0)
_
T
r
(0)
_
r
(0)
_
T
Ar
(0)
Mtodo dos Gradientes
Colocando todas essas informaes juntas, temos
dada uma aproximao inicial x
(0)
para a soluo do sistema Ax = b, o
processo iterativo, conhecido como Mtodo dos Gradientes, dado
por

r
(i)
= b Ax
(i)


(i)
=
_
r
(0)
_
T
r
(0)
_
r
(0)
_
T
Ar
(0)

x
(i+1)
= x
(i)
+
(i)
r
(i)
Mtodo dos Gradientes
Intuitivamente, temos
Mtodo dos Gradientes
Exemplo: Usando o Mtodo dos Gradientes, obtenha uma soluo
aproximada para
_
4 1
1 3
_
x =
_
5
4
_
com x
(0)
=
_
0
0
_
e = 10
1
.
Abrir arquivo Exemplo1.xls e arquivo Exemplo1.mws
Mtodo dos Gradientes Conjugados
Mtodo dos Gradientes Conjugados
Mtodo dos Gradientes Conjugados
possvel, no Mtodo dos Gradientes, uma direo que est sendo adotada
na iterao i ter sido usada em iteraes anteriores, como pode ser visto na
Figura 15.
Para evitar que se tome vrias vezes uma mesma direo r
(i)
para a correo
de x
(i)
, o Mtodo dos Gradientes Conjugados prope uma modicao no
Mtodo dos Gradientes.
O Mtodo dos Gradientes Conjugados sugere que, dada uma aproximao
inicial x
(0)
para o sistema n n, Ax = b, tomemos um conjunto de direes
conjugadas {d
0
, d
1
, , d
n1
} e em at n iteraes, teremos encontrado uma
aproximao satisfatria para a soluo do sistema.
Dois vetores x e y so conjugados se x
T
Ay = y
T
Ax = 0.
Mtodo dos Gradientes Conjugados
Mtodo dos Gradientes Conjugados
Dado x
(0)
, faa d
0
= r
0
= b Ax e x
(1)
ser obtido fazendo
x
(1)
= x
(0)
+
(0)
d
(0)
.
Para obter o tamanho do passo
(0)
, procedemos como no caso do Mtodo
dos Gradientes:
d
_
f (x
(1)
)
_
d
= f

_
x
(1)
_
T dx
(1)
d
= r
(1)T
d
(0)
.
Como queremos que minimize f
_
x
(1)
_
, fazemos
r
(1)T
d
(0)
= 0 d
(0)T
r
(1)
= 0 d
(0)T
_
b Ax
(1)
_
= 0
Substituindo x
(1)
nessa expresso concluimos que

(0)
=
r
(0)T
r
(0)
d
(0)T
Ad
(0)
Mtodo dos Gradientes Conjugados
Para que r
(1)
= r
(0)

(0)
Ad
(0)
seja ortogonal nova direo
d
(1)
= r
(1)
+
(1)
d
(0)
preciso escolher um valor para
(1)
conveniente.
Assim
r
(1)T
d
(1)
= 0
_
r
(0)

r
(0)T
r
(0)
d
(0)T
Ad
(0)
Ad
(0)
_
T
_
r
(1)
+
(1)
d
(0)
_
= 0
r
(0)T
r
(1)
+
(1)
r
(0)T
d
(0)
d
(0)T
A
r
(0)T
r
(0)
d
(0)T
Ad
(0)
r
(1)

(1)
d
(0)T
A
r
(0)T
r
(0)
d
(0)T
Ad
(0)
d
(0)
=
0
Simplicando temos
(1)
=
d
(0)T
Ar
1
d
(0)T
Ad
(0)
=
r
(1)T
Ad
0
d
(0)T
Ad
(0)
Assim a nova direo dada por d
(1)
= r
(1)
+
(1)
d
(0)
Mtodo dos Gradientes Conjugados
Podemos resumir o Mtodo dos Gradientes Conjugados por, dado x
(0)
inicial

d
(0)
= r
(0)
= b Ax
(0)

Para i = 0, 1, ...


(i)
=
r
(i)T
r
(i)
d
(i)T
Ad
(i)

x
(i+1)
= x
(i)
+
(i)
d
(i)

r
(i+1)
= r
(i)

(i)
Ad
(i)


(i+1)
=
r
(i+1)T
Ad
(i)
d
(i)T
Ad
(i)

d
(i+1)
= r
(i+1)
+
(i+1)
d
(i)
Mtodo dos Gradientes Conjugados
Podemos simplicar um pouco mais a expresso de
(i+1)
considerando
r
(i+1)
= r
(i)

(i)
Ad
(i)
, pois dessa forma temos
Ad
(i)
=
1

(i)
_
r
(i+1)
r
(i)
_
Fazendo r
(i+1)
Ad
(i)
e d
(i)T
Ad
(i)
temos
r
(i+1)T
Ad
(i)
=
1

(i)
_
r
(i+1)T
r
(i+1)
r
(i+1)T
r
(i)
_
=
1

(i)
_
r
(i+1)T
r
(i+1)
_
e
d
(i)T
Ad
(i)
=
1

(i)
_
d
(i)T
r
(i+1)
d
(i)T
r
(i)
_
=
1

(i)
_
d
(i)T
r
(i)
_
=
1

(i)
d
(i)T
r
(i)
Mtodo dos Gradientes Conjugados
Substituindo r
(i+1)T
Ad
(i)
=
1

(i)
_
r
(i+1)T
r
(i+1)
_
e
d
(i)T
Ad
(i)
=
1

(i)
d
(i)T
r
(i)
em
(i+1)
temos

(i+1)
=

(i)
_
r
(i+1)T
r
(i+1)
_
1

(i)
d
(i)T
r
(i)
=
r
(i+1)T
r
(i+1)
d
(i)T
r
(i)
=
r
(i+1)T
r
(i+1)
r
(i)T
r
(i)
Mtodo dos Gradientes Conjugados
Dessa forma, dado x
(0)
uma aproximao inicial do sistema Ax = b, o
Mtodo dos Gradientes Conjugados dado por

d
(0)
= r
(0)
= b Ax
(0)

Para i = 0, 1, ...


(i)
=
r
(i)T
r
(i)
d
(i)T
Ad
(i)

x
(i+1)
= x
(i)
+
(i)
d
(i)

r
(i+1)
= r
(i)

(i)
Ad
(i)


(i+1)
=
r
(i+1)T
r
(i+1)
r
(i)T
r
(i)

d
(i+1)
= r
(i+1)
+
(i+1)
d
(i)
Mtodo dos Gradientes Conjugados
Mtodo dos Gradientes Conjugados
Exemplo: Obtenha uma soluo aproximada para o sistema
_
4 1
1 3
_
x =
_
5
4
_
com x
(0)
=
_
0
0
_
e = 10
1
.
Abrir arquivo Exemplo2.xls e arquivo Exemplo2.mws
Referncias

Shewchuk, J R. An Introduction to the Conjugate Gradient Method


Without the Agonizing Pain Edition 1
1
4
. School of Computer Science
Carnegie Mellon University Pittsburgh. PA, 1994.

Franco, N B. Clculo Numrico. Editora: Pearson / Prentice Hal. 2006.

Todas as guras (exceto a primeira) foram extradas de Shewchuk,


1994.

You might also like