Autovalores do Laplaciano - Departamento de Matemática - UFMG
Autovalores do Laplaciano - Departamento de Matemática - UFMG
Autovalores do Laplaciano - Departamento de Matemática - UFMG
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 />
.