O método do gradiente conjugado é considerado, nos dias de hoje, uma das técnicas mais eficientes para a resolução de sistemas de equações lineares com matrizes de coeficientes simétricas e definidas positivas [Golub e O’Leary 1989].
Logo após o seu desenvolvimento nos anos 50 [Hestenes e Stiefel 1952], o método do gradiente conjugado foi considerado um método directo. Isto deve-se ao facto de este método permitir obter, em termos de aritmética exacta, a solução de um sistema de n equações lineares num máximo de n iterações14. No entanto, rapidamente se constatou que os erros provenientes do arredonda-
mento numérico destruíam a propriedade de convergência finita deste método, pelo que este não constituía uma alternativa eficiente para a factorização de sistemas densos de equações lineares. Neste contexto, o método CG não mereceu grande atenção por parte da comunidade científica, até que, nos anos 70, as suas capacidades como método iterativo foram evidenciadas15 por Reid
[Reid 1971]. Apesar disso, o método CG continuou a ser considerado como incapaz de suplantar a velocidade de cálculo dos métodos directos [Irons e Ahmad 1980]. No entanto, o método CG tem vindo a demonstrar a sua competitividade face aos métodos directos [Farhat e Wilson 1987]. Umas
10Do inglês: Minimal Residual. 11Do inglês: Symmetric LQ.
12Do inglês: Generalised Minimal Residual. 13Do inglês: Bi-Conjugate Gradient Stabilized.
14De um modo mais preciso, o método do gradiente conjugado permite determinar, em termos de precisão infinita,
a solução num número finito e predeterminado de operações.
15Na realidade, as mesmas observações já tinham sido publicadas cerca de uma década antes [Engeli et al. 1959].
Método do Gradiente Conjugado
das razões para esta competitividade deve-se à utilização de precondicionadores16. Na realidade,
verifica-se que a velocidade de convergência do método CG é altamente dependente do condici- onamento do sistema de equações lineares [Barrett et al. 1994]. Assim, a utilização de técnicas de precondicionamento de um sistema de equações lineares permite obter velocidades de cálculo superiores às dos métodos directos [Saint-Georges et al. 1996]. No entanto, ao contrário do que se passa com os métodos directos, o uso conveniente dos métodos iterativos exige, por parte do utilizador, um conhecimento relativamente profundo das várias técnicas de precondicionamento, aliado a alguma experiência.
A utilização do método CG não obriga ao armazenamento das componentes nulas da matriz A (esparsa). Além disso, a simetria desta matriz possibilita ainda o não-armazenamento de uma das suas partes triangulares (estritamente) superior ou inferior. Por outro lado, a natureza intrinseca- mente paralelizável do método CG, em particular, e de grande parte dos métodos iterativos, em geral, constitui também uma vantagem relevante deste método em relação aos métodos directos.
De acordo com o que foi referido na Secção 7.3, a resolução do sistema de equações 7.1 com o método do gradiente conjugado baseia-se na técnica de projecção ortogonal num subespaço afim x(0)+ KmA, r(0). Para uma matriz A simétrica e definida positiva, esta técnica corresponde [Axelsson 1996] à minimização da função quadrática
ϕ(x) = 1
2(b− Ax)
T
A−1(b− Ax) . (7.14)
Em cada iteração, o método do gradiente conjugado procura minimizar ϕ ao longo do vector x(k)+αk+1p(k+1), em que x(k)é a solução aproximada actual e αk+1um escalar que actua segundo a direcção de busca p(k+1), isto é,
x(k+1)= x(k)+ αk+1p(k+1). (7.15)
Substituindo a expressão 7.15 na equação 7.14, derivando esta última em ordem a αk+1e aplicando a condição de estacionariedade, obtém-se17
αk+1= p
(k+1)Tr(k)
p(k+1)TAp(k+1), (7.16)
em que r(k)= b− Ax(k) é o resíduo actual. Por outro lado, de acordo com a equação 7.15, o novo resíduo consiste em
r(k+1)= r(k)− αk+1Ap(k+1). (7.17)
Multiplicando ambos os termos da equação 7.17 por p(k+1)Te substituindo nesta a equação 7.16, obtém-se
p(k+1)Tr(k+1)= 0. (7.18)
Assumindo que as direcções de busca são conjugadas18relativamente a A, tem-se para duas direc-
ções consecutivas que
p(k+1)TAp(k)= 0. (7.19)
A direcção de procura p(k+1) é definida recursivamente por
p(k+1)= r(k)+ βkp(k), (7.20)
16As técnicas de precondicionamento e a sua aplicação ao método do gradiente conjugado serão abordadas com
maior detalhe em secções subsequentes.
17Atenda-se ao facto de, por uma questão de simplificação da notação utilizada e sem perda de generalidade, se
omitirem os parêntesis externos na representação do vector transposto de um vector com índice superior de iteração,
e.g. utiliza-sep(k+1)T para representarˆp(k+1)˜T.
18Os vectoresx e y ∈ IRndizem-se conjugados relativamente à matrizA ∈ IRn×nsimétrica e definida positiva se
Método do Gradiente Conjugado
em que βk é um escalar. Multiplicando ambos os termos da equação 7.20 por r(k)T, atendendo à equação 7.18 e substituindo na equação 7.16, vem
αk+1= r
(k)Tr(k)
p(k+1)TAp(k+1). (7.21)
Resta proceder à determinação do parâmetro βk. Assim, transpondo a equação 7.20 e substituindo na equação 7.19, obtém-se
βk=−r
(k)TAp(k)
p(k)TAp(k). (7.22) Multiplicando a equação 7.17 por p(k)T e atendendo às equações 7.18 e 7.19, tem-se que
p(k)Tr(k+1)= 0. (7.23)
Por outro lado, multiplicando a equação 7.20 por r(k+1)T e atendendo às equações 7.18 e 7.23, obtém-se
r(k+1)Tr(k)= 0. (7.24)
Assim, a substituição das equações 7.17, 7.21 e 7.24 na equação 7.22 resulta em
βk = r
(k)Tr(k)
r(k−1)Tr(k−1). (7.25)
As equações anteriores definem o método do gradiente conjugado19. O seu algoritmo encontra-se ilustrado na tabela 7.1. Nmáx corresponde ao número máximo de iterações admissível.
Tabela 7.1: Algoritmo do método do gradiente conjugado. 1. Definir x(0)
2. r(0)= b− Ax(0)
3. Repetir — Ciclo iterativo em k = 0, . . . 3.1 Se k = 0, então p(k+1)= r(k) Senão βk =r(k)Tr(k)/r(k−1)Tr(k−1) p(k+1)= r(k)+ βkp(k) Fim Se 3.2 αk+1=r(k)Tr(k)/p(k+1)TAp(k+1) 3.3 x(k+1)= x(k)+ αk+1p(k+1) 3.4 r(k+1)= r(k)− αk+1Ap(k+1) Até convergência ou k + 1 = Nmáx
Embora seja difícil prever exactamente a taxa de convergência do método CG, é possível obter um limite superior para a norma do erro associada a cada iteração k. Este limite encontra-se
19Uma apresentação intuitiva e baseada em ilustrações geométricas do método do gradiente conjugado pode ser
Técnicas de Precondicionamento
relacionado com o número de condição espectral20 da matriz A, κ(A). De facto, considerando a
norma-A21, a taxa de convergência pode ser avaliada [Ortega 1988] com base na expressão
||x(k)− x∗|| A≤ 2 &0 κ(A)− 1 0 κ(A) + 1 'k ||x(0)− x∗|| A. (7.26)
Assim, de acordo com a expressão 7.26, verifica-se que a norma-A do erro e(k) = x(k)− x∗ tende para zero quando k→ +∞. Deste modo, a sequência da norma-A do erro decresce monotonamente para 0. Este facto justifica a natureza iterativa do método do gradiente conjugado [Meurant 1999]. Além disso, constata-se que quanto mais próximo for κ(A) de 1 maior será a taxa de convergência do processo iterativo22. Neste contexto, o precondicionamento consiste na obtenção de um sistema equivalente ao da expressão 7.1 em que a nova matriz de coeficientes possui um número de condição espectral mais próximo da unidade. Deste modo, esta técnica permite a obtenção da solução com uma taxa de convergência mais elevada.
Em seguida, abordam-se os principais aspectos relativos à técnica de precondicionamento e referem-se alguns precondicionadores usualmente aplicados ao método do gradiente conjugado.