09.05.2013 Views

Autovalores do Laplaciano - Departamento de Matemática - UFMG

Autovalores do Laplaciano - Departamento de Matemática - UFMG

Autovalores do Laplaciano - Departamento de Matemática - UFMG

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Rodney Josué Biezuner 148<br />

8.3.2 Implementação Eficiente <strong>do</strong> Algoritmo QR<br />

O algoritmo QR da forma como introduzi<strong>do</strong> na seção anterior é altamente ineficiente. Cada <strong>de</strong>composição<br />

QR custa O n 3 operações <strong>de</strong> ponto flutuante e a multiplicação <strong>de</strong> matrizes que lhe segue também custa<br />

O n 3 operações <strong>de</strong> ponto flutuante. Além disso, a velocida<strong>de</strong> <strong>de</strong> convergência também é muito lenta.<br />

O primeiro problema é resolvi<strong>do</strong> quan<strong>do</strong> se reduz a matriz A à sua forma <strong>de</strong> Hessenberg. Uma <strong>de</strong>composição<br />

QR <strong>de</strong> uma matriz na forma <strong>de</strong> Hessenberg é apenas O n 2 operações <strong>de</strong> ponto flutuante para uma<br />

matriz geral e O (n) operações <strong>de</strong> ponto flutuante para uma matriz hermitiana.<br />

Definição. Dizemos que uma matriz A = (aij) é uma matriz <strong>de</strong> Hessenberg superior se aij = 0 sempre<br />

que i > j + 1.<br />

Em outras palavras, uma matriz <strong>de</strong> Hessenberg superior tem a forma<br />

⎡<br />

∗<br />

⎢ ∗<br />

⎢ 0<br />

⎣ 0<br />

∗<br />

∗<br />

∗<br />

0<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

∗<br />

⎤<br />

⎥<br />

⎦<br />

0 0 0 ∗ ∗<br />

.<br />

Observe que uma matriz hermitiana <strong>de</strong> Hessenberg é uma matriz tridiagonal. Toda matriz complexa é<br />

semelhante a uma matriz na forma <strong>de</strong> Hessenberg superior através <strong>de</strong> uma matriz unitária, isto é, dada<br />

A ∈ Mn (C), existe uma matriz unitária Q tal que<br />

B = Q ∗ AQ<br />

é <strong>de</strong> Hessenberg superior. O custo para isso é <strong>de</strong> 10<br />

3 n3 operações <strong>de</strong> ponto flutuante. Detalhes po<strong>de</strong>m ser<br />

vistos em [Watkins]. Se Ak−1 é uma matriz <strong>de</strong> Hessenberg superior, então a matriz Ak obtida através <strong>do</strong><br />

méto<strong>do</strong> QR também é <strong>de</strong> Hessenberg superior. De fato, da <strong>de</strong>composição QR <strong>de</strong> Ak−1, Ak−1 = QkRk,<br />

obtemos Qk = Ak−1R −1<br />

k . Como a inversa <strong>de</strong> uma matriz triangular superior é uma matriz triangular<br />

superior, segue que R −1<br />

k é triangular superior. O produto <strong>de</strong> uma matriz triangular superior e <strong>de</strong> uma<br />

matriz <strong>de</strong> Hessenberg superior, em qualquer or<strong>de</strong>m, sempre é uma matriz <strong>de</strong> Hessenberg superior. Segue<br />

que Qk é <strong>de</strong> Hessenberg superior e daí que Ak = RkQk é <strong>de</strong> Hessenberg superior. Assim, se começarmos<br />

com uma matriz <strong>de</strong> Hessenberg superior, em cada passo QR estaremos trabalhan<strong>do</strong> com uma matriz <strong>de</strong><br />

Hessenberg superior e o custo computacional cai <strong>de</strong> O n3 para O n2 (ou até mesmo O (n) se a matriz for<br />

hermitiana), uma redução significativa.<br />

A velocida<strong>de</strong> <strong>de</strong> convergência <strong>do</strong> algoritmo QR po<strong>de</strong> ser acelerada pela estratégia <strong>de</strong> <strong>de</strong>slocamento. Com<br />

efeito, como a taxa <strong>de</strong> convergência <strong>do</strong> méto<strong>do</strong> <strong>de</strong>pen<strong>de</strong> da razão |λm+1| / |λm|, ela po<strong>de</strong> ser melhorada<br />

quan<strong>do</strong> esta razão é <strong>de</strong>crescida. Isso po<strong>de</strong> ser feito através <strong>de</strong> <strong>de</strong>slocamento; |λm+1 − σ| / |λm − σ| po<strong>de</strong><br />

ser torna<strong>do</strong> arbitrariamente próximo a zero escolhen<strong>do</strong> um <strong>de</strong>slocamento arbitrariamente próximo a λm+1.<br />

A escolha <strong>do</strong> <strong>de</strong>slocamento po<strong>de</strong> ser feita através <strong>do</strong> próprio méto<strong>do</strong> QR: <strong>de</strong>pois <strong>de</strong> algumas iterações, os<br />

elementos na diagonal principal <strong>de</strong> Ak são aproximações <strong>do</strong>s autovalores <strong>de</strong> A.<br />

O méto<strong>do</strong> po<strong>de</strong> ter sua velocida<strong>de</strong> <strong>de</strong> convergência ainda mais acelerada através <strong>do</strong> uso <strong>de</strong> uma técnica<br />

chamada <strong>de</strong>flação. Suponha que obtivemos uma boa aproximação σ para o autovalor <strong>de</strong> menor módulo λn<br />

(como este autovalor tem o menor módulo, ele <strong>de</strong>ve ser o melhor aproxima<strong>do</strong> pelas iterações QR iniciais usadas<br />

para encontrar boas aproximações para os autovalores). Aplican<strong>do</strong> o algoritmo QR à matriz C = A − σI,<br />

obteremos uma convergência muito rápida, <strong>de</strong> mo<strong>do</strong> que após poucas iterações a matriz Ck +σI (adicionan<strong>do</strong><br />

o <strong>de</strong>slocamento <strong>de</strong> volta) terá aproximadamente a forma<br />

⎡<br />

⎤<br />

∗<br />

⎢ Ak<br />

Ck + σI = ⎢<br />

. . . ⎥<br />

⎣<br />

∗ ⎦<br />

0 0 0 λn<br />

.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!