Metodo QR

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Da controllare Il metodo QR è il metodo più utilizzato per il calcolo degli autovalori e degli autovettori di una matrice diagonalizzabile. Il metodo è molto complesso sia nella descrizione che nell'implementazione, ma il principio su cui si basa, ovvero la fattorizzazione QR, è molto semplice.

Algoritmo di base

Nel metodo QR viene generata una successione {Ak}k=1,2,... di matrici nel modo seguente: posto A1=A, si calcola una fattorizzazione QR di Ak.

Ak=QkRk

dove Qk è unitaria ovvero vale che QkHQk=QkQkH=I, ed Rk è triangolare superiore. Si definisce Ak+1 come segue:

Ak+1=RkQk=QkHQkRkQk=QkHAkQk

pertanto le matrici della successione {Ak}k=1,2,... sono tutte simili tra loro. Sotto opportune ipotesi la successione converge ad una matrice triangolare superiore che sulla diagonale principale ha gli autovalori della matrice A. Nel caso in cui A è hermitiana, la successione converge ad una matrice diagonale.

Risultati di convergenza

Vale il seguente teorema, detto teorema di convergenza.

Sia An×n una matrice diagonalizzabile tale che i suoi autovalori λi,i=1,2,...,n abbiano tutti modulo distinto, cioè |λ1|>|λ2|>...>|λn|>0. Indichiamo con X la matrice degli autovettori di A tale che la sua inversa X1 ammetta una fattorizzazione LU. Sia inoltre D=X1AX=diag(λi) una matrice diagonale, sulla cui diagonale principale vi sono gli autovalori di A. Allora esistono delle matrici di fase Sk tali che:

limkSkHRkSk1=limkSk1HAkSk1=T , dove T è una matrice tridiagonale superiore che ha sulla diagonale principale gli autovalori di A,

e limkSk1HQkSk=I.


Questo teorema garantisce che gli elementi della successione {Ak}k=1,2,... tendano agli autovalori di A.

Nel caso in cui la matrice X1 non fosse fattorizzabile in forma LU, il metodo QR risulterebbe comunque convergente, ma gli autovalori non sarebbero stampati in ordine decrescente, cosa che invece accade se questa ipotesi è verificata.

Con opportune modifiche è possibile dimostrare la convergenza del metodo anche nei casi in cui gli autovalori λi,i=1,2,...,n non risultino distinti.

Costo computazionale e stabilità

Il metodo QR applicato ad una matrice di ordine n ha un costo computazionale di n3 operazioni moltiplicative. Per abbassare il costo computazionale è possibile trasformare la matrice A in forma di Hessenberg superiore. In questo caso si ha un costo di 2n2 operazioni moltiplicative. Nel caso di una matrice in forma tridiagonale questo si riduce ulteriormente e risulta lineare in n.

Condizioni di arresto

Il metodo QR è un metodo di tipo iterativo, pertanto è opportuno fissare delle condizioni di arresto per tale metodo.

Fissata una tolleranza ε, si procede applicando il metodo QR ad una matrice A in forma di Hessenberg superiore fino a quando per un indice p, con 1pn, non risulti soddisfatta la seguente espressione:

|(ap+1,p(k))|<ε(|(ap,p(k))|+|(ap+1,p+1(k))|)

ovvero fino a quando (ap+1,p)(k) diventa sufficientemente piccolo.

Quando questa condizione è verificata

Ak=(Bk DkEk Ck)

dove Bkp×p, Ck(np)×(np) ed Ek ha un elemento di modulo molto piccolo e tutti gli altri nulli. Si procede operando separatamente con le matrici Bk e Ck.

Tecnica di shift

La velocità di convergenza del metodo dipende dal rapporto |λiλj| per i>j e quindi, per l'ipotesi |λ1|>|λ2|>...>|λn|, dipende dal numero

max1in1|λi+1λi|

Se tale rapporto è vicino a 1 la convergenza risulta lenta. Per accelerare la convergenza si utilizza una tecnica di shift. Sia μ un valore che approssima un autovalore λ meglio degli altri. Si può applicare il metodo QR alla matrice AμI come segue

AkμI=QkRk

Ak+1=RkQk+μI

e risulta QkAk+1=AkQk.

Tenendo presente che gli autovalori di AμI sono λiμ è possibile scegliere μ in modo da accelerare la velocità di convergenza. In genere si applica il metodo QR senza shift per i primi p passi e si sceglie μ=an,n(p) per le successive iterazioni con shift. Dal momento che μ può essere modificato ad ogni iterazione risulta conveniente scegliere μk=an,n(k), k=1,2,...

Template:Portale