• Nenhum resultado encontrado

Convergˆ encia do M´ etodo do Gradiente Conjugado

Vamos agora provar uma s´erie de resultados com o objetivo principal de demonstrar o fato mencionado acima que cki= 0 para todo i = 1, . . . , k − 1 e tamb´em que o m´etodo do gradiente conjugado converge em

aritm´etica exata em precisas n itera¸c˜oes para uma matriz de tamanho n.

5.33 Defini¸c˜ao. Dada uma matriz A ∈ Mn(C) e um vetor v ∈ Cn, o espa¸co de Krylov Kj(A, v) ´e o

5.34 Teorema. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado (com rk 6= 0 em cada itera¸c˜ao), temos

p0, p1, . . . , pj−1 = r0, r1, . . . , rj−1 =K

j A, r0 .

Prova: A demonstra¸c˜ao ´e por indu¸c˜ao. O resultado ´e trivial para j = 0, pois p0= r0. Assuma o resultado

v´alido para j − 1. Em primeiro lugar, mostraremos que r0, r1, . . . , rjK

j+1 A, r0 . (5.83)

Em vista da hip´otese de indu¸c˜ao, basta mostrar que rj K

j+1 A, r0. Como rj = rj−1− αj−1Apj−1 e

rj−1 K

j A, r0 ⊂ Kj+1 A, r0 por hip´otese de indu¸c˜ao, basta provar que Apj−1 ∈Kj+1 A, r0. Mas,

tamb´em por hip´otese de indu¸c˜ao, pj−1K

j+1 A, r0, logo

Apj−1∈Kj A, Ar0 = Ar0, A2r0, . . . , Ajr0 ⊂ r0, Ar0, A2r0, . . . , Ajr0 =Kj+1 A, r0 .

Em seguida, mostraremos que

p0, p1, . . . , pj ⊂ r0, r1, . . . , rj . (5.84)

Por hip´otese de indu¸c˜ao, basta provar que pj r0, r1, . . . , rj . Isso segue de (5.76) e da hip´otese de indu¸ao.

At´e aqui provamos que

p0, p1, . . . , pj ⊂ r0, r1, . . . , rjK

j+1 A, r0 . (5.85)

Para provar que eles s˜ao iguais, basta mostrar que eles tˆem a mesma dimens˜ao. Isso decorre de dimr0, r1, . . . , rj 6 j + 1,

dimKj+1 A, r0 6 j + 1

e

dimp0, p1, . . . , pj = j + 1,

o ´ultimo porque os vetores p0, p1, . . . , pj s˜ao vetores n˜ao-nulos A-ortogonais.  5.35 Corol´ario. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado, temos

ej ⊥AKj A, r0



para todo j.

Prova: Segue imediatamente do teorema anterior e do Teorema5.32. 

5.36 Corol´ario. Depois de j itera¸c˜oes do algoritmo do gradiente conjugado, temos rj ⊥Kj A, r0

para todo j.

Prova: Em vista do Teorema5.34, basta provar que rj⊥ p0, p1, . . . , pj−1para todo j. Como Aej+1= rj+1,

rj+1, pi = Aej+1, pi = ej+1, pi

A= 0

para todo i = 1, . . . , j − 1, como vimos na demonstra¸c˜ao do Teorema5.32. 

Prova: Temos que provar que

rk+1, pi

A=r

k+1, Api = 0

para todos i = 1, . . . , k − 1. Pelo Teorema 5.34, pi ∈p0, p1, . . . , pi = r0, Ar0, . . . , Air = K

i+1 A, r0,

logo

Api∈Ar0, A2r0, . . . , Ai+1r ⊂K

i+2 A, r0 ⊂Kk+1 A, r0



e o resultado segue do corol´ario anterior. 

5.38 Teorema. Seja A uma matriz sim´etrica positiva definida n×n. Ent˜ao o m´etodo do gradiente conjugado converge em n itera¸c˜oes.

Prova: Se fizemos n − 1 itera¸c˜oes em obter x, pelo Corol´ario 5.37os vetores r0, r1, . . . , rn−1 formam uma

base ortogonal para Rn. Depois de mais uma itera¸ao, de acordo com este mesmo corol´ario o res´ıduo rn

satisfaz rnr0, r1, . . . , rn−1 = Rn, logo rn

= 0. 

De fato, na maioria das aplica¸c˜oes o m´etodo do gradiente conjugado converge ainda mais r´apido, se apenas uma boa aproxima¸c˜ao ´e requerida. Defina o n´umero de condi¸c˜ao de uma matriz sim´etrica positiva definida por

κ (A) = max {λ : λ ´e um autovalor de A}

min {λ : λ ´e um autovalor de A}; (5.86) assim, quanto maior o n´umero de condi¸c˜ao de uma matriz, ela ´e mais mal-condicionada e a convergˆencia de m´etodos de descida ´e mais vagarosa. Pode-se provar a seguinte estimativa de erro para o m´etodo do gradiente conjugado (veja [Strikwerda]):

ek A6 2 e0 A p κ (A) − 1 pκ (A) + 1 !k . (5.87)

Esta estimativa ´e uma estimativa grosseira, mas mostra que o m´etodo do gradiente conjugado converge mais rapidamente para matrizes bem-condicionadas (κ (A) ∼ 1). Uma compara¸c˜ao entre a velocidade de convergˆencia dos dois m´etodos para a matriz de discretiza¸c˜ao da f´ormula de cinco pontos aplicada ao problema descrito na primeira se¸c˜ao deste cap´ıtulo, desta vez com o tamanho das matrizes indicado na linha superior da tabela, ´e dada a seguir [Watkins].

n = 81 n = 361 n = 1521 Descida Mais Acentuada 304 1114 4010

Gradiente Conjugado 29 60 118

No caso desta matriz de discretiza¸c˜ao no quadrado unit´ario temos

κ (A) = sen2(n − 1) π 2n sen2 π 2n = cot2 π 2n = cot 2π∆x 2 ≈ 4 π2∆x2 de modo que pκ (A) − 1 pκ (A) + 1≈ 1 − π∆x/2 1 + π∆x/2≈ 1 − π∆x,

o que d´a uma velocidade de convergˆencia para o m´etodo do gradiente conjugado duas vezes maior que a do m´etodo SOR com o fator de relaxamento ´otimo. No entanto, deve-se ter em mente que enquanto que a taxa de covergˆencia que obtivemos para o m´etodo SOR ´e precisa, a estimativa de erro (5.87) para o m´etodo do gradiente conjugado ´e apenas um limitante superior grosseiro (veja [Watkins] para algumas estimativas melhoradas).

Cap´ıtulo 6

M´etodos Multigrid

Neste cap´ıtulo consideraremos o m´etodo multigrid, que ´e o m´etodo mais r´apido para resolver equa¸c˜oes el´ıpticas em geral. Embora o m´etodo possa ser empregado em malhas de elementos finitos e volumes fini- tos tamb´em, neste cap´ıtulo consideraremos o seu emprego apenas em malhas de diferen¸cas finitas para a equa¸c˜ao de Poisson no quadrado. A tabela a seguir (adaptada de [TOS]) compara o custo de processamento em uma m´aquina serial de alguns dos m´etodos mais populares para resolver sistemas lineares que surgem na discretiza¸c˜ao do problema de Poisson (`a exce¸c˜ao do m´etodo de elimina¸c˜ao gaussiana cujo custo de armazena- mento ´e O n2, todos os demais m´etodos tem custo de armazenamento O (n)). Como estamos comparando m´etodos diretos (elimina¸c˜ao gaussiana e transformada de Fourier r´apida (FFT) ) com m´etodos iterativos (todos os demais), assumimos um ´unico crit´erio de parada para os v´arios m´etodos iterativos; se o crit´erio de parada for escolhido da ordem do erro de discretiza¸c˜ao da malha, um fator O (log n) deve ser multiplicado para todos os m´etodos iterativos, `a exce¸c˜ao do multigrid completo.

M´etodo n´umero de opera¸c˜oes (2D; n = N2)

Elimina¸c˜ao Gaussiana O n3 Jacobi O n2 Gauss-Seidel O n2 SOR O n3/2 Gradiente Conjugado O n3/2 FFT O (n log n) Multigrid iterativo O (n) Multigrid completo O (n)

A id´eia do m´etodo multigrid ´e baseada em dois princ´ıpios: suaviza¸c˜ao do erro e a sua corre¸c˜ao em um grid mais grosseiro (menos refinado). Estes princ´ıpios ser˜ao explicados em detalhes nas pr´oximas se¸c˜oes.

Em linhas gerais, a id´eia b´asica ´e eliminar os componentes de alta freq¨uˆencia do erro em uma malha refinada. Para que isso ocorra, ´e necess´ario que estes componentes de alta freq¨uˆencia correspondam aos menores autovalores da matriz de itera¸c˜ao porque, como vimos no cap´ıtulo anterior, estes s˜ao eliminados rapidamente pelos m´etodos iterativos lineares (a velocidade de convergˆencia de cada m´etodo ´e dada pelo raio espectral da matriz de itera¸c˜ao, que corresponde ao valor absoluto do maior autovalor |λ1| < 1, enquanto

que as componentes do erro correspondentes aos menores autovalores λj convergem para zero muito mais

rapidamente (|λj/λ1|  1); isso significa que este m´etodo iterativo suaviza o erro, pois quanto maior a

influˆencia das componentes de maior freq¨uˆencia (maior oscila¸c˜ao), menos suave ´e a fun¸c˜ao. Aqui ´e ´util fazer uma analogia com a s´erie de Fourier: ´e exatamente a presen¸ca de componentes de oscila¸c˜ao arbitrariamente maior que permite que a s´erie convirja para uma fun¸c˜ao n˜ao diferenci´avel, ou mesmo descont´ınua; se a s´erie for truncada a qualquer momento o resultado ´e sempre uma fun¸c˜ao suave, pois ´e a combina¸c˜ao linear finita de autofun¸c˜oes suaves. Esta visualiza¸c˜ao tamb´em permanece verdade para fun¸c˜oes discretizadas em

malhas de diferen¸cas finitas escritas como uma combina¸c˜ao linear das autofun¸c˜oes da matriz de itera¸c˜ao nesta malha: mesmo que o n´umero de componentes da fun¸c˜ao seja finito, porque a malha ´e discreta a presen¸ca de componentes de alta oscila¸c˜ao d˜ao origem a um gr´afico com um aspecto escarpado, n˜ao suave.

Assim, como o nosso objetivo ´e eliminar apenas as componentes de alta freq¨uˆencia do erro, e n˜ao todo o erro, poucas itera¸c˜oes do m´etodo iterativo s˜ao necess´arias nesta malha refinada, onde o custo computacional ´e alto (malhas muito refinadas significa que elas possuem muitos pontos, o que por sua vez implica em matrizes de discretiza¸c˜ao muito grandes). Ocorre que algumas autofun¸c˜oes de freq¨uˆencia baixa em uma malha mais refinada correspondem a autofun¸c˜oes de freq¨uˆencia alta em uma malha mais grosseira (como veremos). Uma vez tendo eliminado as componentes de alta freq¨uˆencia do erro na malha mais refinada, tendo deixado as componentes de baixa freq¨uˆencia praticamente intocadas, transferimos o problema para uma malha mais grosseira, cujos componentes de alta freq¨uˆencia do erro correspondem a alguns dos componentes de baixa freq¨uˆencia do erro na malha mais refinada anterior, que n˜ao puderam ser eliminados com as poucas itera¸c˜oes do m´etodo iterativo permitidas na malha mais refinada. Com poucas itera¸c˜oes do m´etodo iterativo nesta malha mais grosseira, estes erros tamb´em s˜ao rapidamente eliminados, a um custo computacional mais baixo do que se tiv´essemos tentado elimin´a-los ainda na malha mais refinada. Este processo ´e a corre¸c˜ao do erro em uma malha mais grosseira. Ele ´e repetido em malhas cada vez mais grosseiras at´e que todo o erro ´e eliminado, a um custo computacional muito mais baixo do que se tiv´essemos trabalhado sempre na malha mais refinada original.

6.1

A Malha de Multigrid

A discretiza¸c˜ao uniforme do problema de Poisson 

−∆u = f em Ω, u = 0 sobre ∂Ω, onde Ω = (0, 1)2⊂ R2´e o quadrado unit´ario, ser´a denotada por



−∆huh= fh em Ωh,

uh= 0 sobre ∂Ωh,

(6.1) onde uhcomo usual denota a solu¸c˜ao do problema discretizado (aproxima¸c˜ao da solu¸c˜ao exata), fh a discre-

tiza¸c˜ao da fun¸c˜ao f em Ωh, h = 1 n, (6.2) Ωh= {(x, y) ∈ Ω : (x, y) = (ih, jh) , 1 6 i, j 6 n − 1} , ∂Ωh= {(x, y) ∈ ∂Ω : (x, y) = (ih, jh) , i = 0 ou i = n e 0 6 j 6 n; j = 0 ou j = n e 0 6 i 6 n} e − ∆huh= 1 h2   −1 −1 4 −1 −1   (6.3)

ou, em outras palavras, −∆huh=

−uh(xi−1, yj) − uh(xi+1, yj) + 4uh(xi, yj) − uh(xi, yj−1) − uh(xi, yj+1)

h2 ,

com (xi, yj) = (ih, jh), ´e o operador de discretiza¸c˜ao dado pela f´ormula dos cinco pontos. Denotaremos

usualmente a solu¸c˜ao aproximada uh na itera¸c˜ao k (ou seja, uma aproxima¸c˜ao da solu¸c˜ao discretizada, de

acordo com o m´etodo iterativo utilizado) por

de modo que o erro do m´etodo iterativo na itera¸c˜ao m ´e dado por

emh (xi, yj) = uh(xi, yj) − umh (xi, yj) . (6.5)

Em geral, tomaremos n par, ou mesmo n = 2p para algum p. Assim, uma malha Ω

h ´e mais refinada que

uma malha Ω2h (esta ´e mais grosseira que a primeira). Temos uma seq¨uˆencia de malhas progressivamente

mais grosseiras:

Ωh⊂ Ω2h⊂ Ω4h⊂ . . . ⊂ Ω2ph= Ω1,

onde Ω1 possui apenas uma c´elula.

Documentos relacionados