Metodo QR

Voce da controllare
Questa voce o sezione sull'argomento matematica è ritenuta da controllare.
Motivo: Descrizione poco contestualizzata

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 { A k } k = 1 , 2 , . . . {\displaystyle \{A_{k}\}_{k=1,2,...}} di matrici nel modo seguente: posto A 1 = A {\displaystyle A_{1}=A} , si calcola una fattorizzazione QR di A k {\displaystyle A_{k}} .

A k = Q k R k {\displaystyle A_{k}=Q_{k}R_{k}}

dove Q k {\displaystyle Q_{k}} è unitaria ovvero vale che Q k H Q k = Q k Q k H = I {\displaystyle Q_{k}^{H}Q_{k}=Q_{k}Q_{k}^{H}=I} , ed R k {\displaystyle R_{k}} è triangolare superiore. Si definisce A k + 1 {\displaystyle A_{k+1}} come segue:

A k + 1 = R k Q k = Q k H Q k R k Q k = Q k H A k Q k {\displaystyle A_{k+1}=R_{k}Q_{k}=Q_{k}^{H}Q_{k}R_{k}Q_{k}=Q_{k}^{H}A_{k}Q_{k}}

pertanto le matrici della successione { A k } k = 1 , 2 , . . . {\displaystyle \{A_{k}\}_{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 {\displaystyle A} . Nel caso in cui A {\displaystyle A} è hermitiana, la successione converge ad una matrice diagonale.

Risultati di convergenza

Vale il seguente teorema, detto teorema di convergenza.

Sia A C n × n {\displaystyle A\in \mathbb {C} ^{n\times n}} una matrice diagonalizzabile tale che i suoi autovalori λ i , i = 1 , 2 , . . . , n {\displaystyle \lambda _{i},i=1,2,...,n} abbiano tutti modulo distinto, cioè | λ 1 | > | λ 2 | > . . . > | λ n | > 0 {\displaystyle |\lambda _{1}|>|\lambda _{2}|>...>|\lambda _{n}|>0} . Indichiamo con X {\displaystyle X} la matrice degli autovettori di A {\displaystyle A} tale che la sua inversa X 1 {\displaystyle X^{-1}} ammetta una fattorizzazione LU. Sia inoltre D = X 1 A X = d i a g ( λ i ) {\displaystyle D=X^{-1}AX=diag(\lambda _{i})} una matrice diagonale, sulla cui diagonale principale vi sono gli autovalori di A {\displaystyle A} . Allora esistono delle matrici di fase S k {\displaystyle S_{k}} tali che:

lim k S k H R k S k 1 = lim k S k 1 H A k S k 1 = T {\displaystyle \lim _{k\rightarrow \infty }{S_{k}^{H}R_{k}S_{k}^{-1}}=\lim _{k\rightarrow \infty }{S_{k-1}^{H}A_{k}S_{k-1}}=T} , dove T {\displaystyle T} è una matrice tridiagonale superiore che ha sulla diagonale principale gli autovalori di A {\displaystyle A} ,

e lim k S k 1 H Q k S k = I {\displaystyle \lim _{k\rightarrow \infty }{S_{k-1}^{H}Q_{k}S_{k}}=I} .


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

Nel caso in cui la matrice X 1 {\displaystyle X^{-1}} 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 {\displaystyle \lambda _{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 n 3 {\displaystyle n^{3}} operazioni moltiplicative. Per abbassare il costo computazionale è possibile trasformare la matrice A {\displaystyle A} in forma di Hessenberg superiore. In questo caso si ha un costo di 2 n 2 {\displaystyle 2n^{2}} 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 ε {\displaystyle \varepsilon } , si procede applicando il metodo QR ad una matrice A {\displaystyle A} in forma di Hessenberg superiore fino a quando per un indice p {\displaystyle p} , con 1 p n {\displaystyle 1\leq p\leq n} , non risulti soddisfatta la seguente espressione:

| ( a p + 1 , p ( k ) ) | < ε ( | ( a p , p ( k ) ) | + | ( a p + 1 , p + 1 ( k ) ) | ) {\displaystyle |(a_{p+1,p}^{(k)})|<\varepsilon (|(a_{p,p}^{(k)})|+|(a_{p+1,p+1}^{(k)})|)}

ovvero fino a quando ( a p + 1 , p ) ( k ) {\displaystyle (a_{p+1,p})^{(k)}} diventa sufficientemente piccolo.

Quando questa condizione è verificata

A k = ( B k   D k E k   C k ) {\displaystyle A_{k}={\begin{pmatrix}B_{k}\ D_{k}\\E_{k}\ C_{k}\end{pmatrix}}}

dove B k C p × p {\displaystyle B_{k}\in \mathbb {C} ^{p\times p}} , C k C ( n p ) × ( n p ) {\displaystyle C_{k}\in \mathbb {C} ^{(n-p)\times (n-p)}} ed E k {\displaystyle E_{k}} ha un elemento di modulo molto piccolo e tutti gli altri nulli. Si procede operando separatamente con le matrici B k {\displaystyle B_{k}} e C k {\displaystyle C_{k}} .

Tecnica di shift

La velocità di convergenza del metodo dipende dal rapporto | λ i λ j | {\displaystyle \left\vert {\frac {\lambda _{i}}{\lambda _{j}}}\right\vert } per i > j {\displaystyle i>j} e quindi, per l'ipotesi | λ 1 | > | λ 2 | > . . . > | λ n | {\displaystyle |\lambda _{1}|>|\lambda _{2}|>...>|\lambda _{n}|} , dipende dal numero

max 1 i n 1 | λ i + 1 λ i | {\displaystyle \max _{1\leq i\leq n-1}\left\vert {\frac {\lambda _{i+1}}{\lambda _{i}}}\right\vert }

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

A k μ I = Q k R k {\displaystyle A_{k}-\mu I=Q_{k}R_{k}}

A k + 1 = R k Q k + μ I {\displaystyle A_{k+1}=R_{k}Q_{k}+\mu I}

e risulta Q k A k + 1 = A k Q k {\displaystyle Q_{k}A_{k+1}=A_{k}Q_{k}} .

Tenendo presente che gli autovalori di A μ I {\displaystyle A-\mu I} sono λ i μ {\displaystyle \lambda _{i}-\mu } è possibile scegliere μ {\displaystyle \mu } 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 μ = a n , n ( p ) {\displaystyle \mu =a_{n,n}^{(p)}} per le successive iterazioni con shift. Dal momento che μ {\displaystyle \mu } può essere modificato ad ogni iterazione risulta conveniente scegliere μ k = a n , n ( k ) ,   k = 1 , 2 , . . . {\displaystyle \mu _{k}=a_{n,n}^{(k)},\ k=1,2,...}

  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica