Sei sulla pagina 1di 4

Algoritmo QR senza shift (parte 2)

Domenica Maisano
Antonio Maletta

0.1 Equivalenza tra il metodo delle iterazioni simul-


tanee e l’algoritmo QR

L’algoritmo QR é equivalente al metodo delle iterazioni simultanee applicato ad un


(0)
insieme di n = m vettori iniziali, cioé scegliendo Q̂ = I.
(k)
Questo significa che le matrici Q̂ sono quadrate e possiamo quindi considerare la
fattorizzazione QR completa.
(k) (k)
Rimpiazzeremo quindi R̂ con R(k) e Q̂ con Q(k) , in modo da poter distinguere le
matrici del metodo delle iterazioni simultanee da quelle della fattorizzazione QR.

Indichiamo ora le tre formule che definiscono le iterazioni simultanee seguite da una
quarta formula che definisce una matrice A(k) di dimensione m × m:

Q(0) = I,

Z = AQ(k−1) ,

Z = Q(k) R(k) ,

A(k) = (Q(k) )T AQ(k) .

Scriviamo ora le tre formule che definiscono l’algoritmo QR, seguite da una quarta
formula che definisce una matrice Q(k) di dimensione m × m:

A(0) = A,

1
A(k−1) = Q(k) R(k) ,

A(k) = R(k) Q(k) ,

Q(k) = Q(1) Q(2) ...Q(k) , Q(0) = I.

Infine, per entrambi gli algoritmi, definiamo la matrice:

R(k) = R(k) R(k−1) ...R(1) , R(0) = I.

Siamo ora pronti per mostrare l’equivalenza fra i due algoritmi considerati.

Teorema 0.1.1. I due algoritmi descritti generano le stesse sequenze di matrici R(k) , Q(k) , A(k) ,
che sono quelle provenienti dalla fattorizzazione QR di Ak :

Ak = Q(k) R(k) , (1)

e dalla relazione:
A(k) = (Q(k) )T AQ(k) . (2)

Dimostrazione. Procediamo per induzione su k.


Il caso k = 0 é banale e costituirá la nostra base d’induzione.
Consideriamo il passo induttivo k ≥ 1 per le iterazioni simultanee. La formula (2) vale
per la definizione dell’algoritmo stesso. Per la formula (1) si ha che:

Ak = AAk−1 = AQ(k−1) R(k−1) = Q(k) R(k) R(k−1) = Q(k) R(k) ,

dove la seconda uguaglianza segue dall’ipotesi induttiva su (1), la terza segue dalla
definizione del metodo e la quarta dalla definizione di R(k) . Consideriamo ora il passo
induttivo k ≥ 1 per l’algoritmo QR. Per la formula (1) si ha che:

Ak = AAk−1 = AQ(k−1) R(k−1) = Q(k−1) A(k−1) R(k−1) = Q(k−1) Q(k) R(k) R(k−1) = Q(k) R(k) ,

dove la seconda uguaglianza segue dall’ipotesi induttiva su (1), la seconda dall’ipotesi


induttiva su (2), la terza dalla definizione del metodo e la quarta dalle definizioni di
Q(k) ed R(k) . Infine per la formula (2) si ha che:

A(k) = R(k) Q(k) = (Q(k) )T A(k−1) Q(k) = (Q(k) )T (Q(k−1) )T AQ(k−1) Q(k) = (Q(k) )T AQ(k) ,

dove le prime due uguaglianze seguono dalla definizione del metodo, la terza dall’ipotesi
induttiva su (2) e la quarta dalla definizione di Q(k) .

2
0.2 Convergenza dell’algoritmo QR

0.2.1 Quozienti di Rayleigh generalizzati

Conosciamo la definizione del quoziente di Rayleigh classico a partire da una matrice


A ∈ Rm×m simmetrica e da un vettore x ∈ Rm :
xT Ax
r(A; x) = .
xT x
Il quoziente di Rayleigh generalizzato si puó definire considerando due matrici reali e
simmetriche A e B ed un vettore non nullo x:
xT Ax
r(A, B; x) = T ,
x Bx
oppure considerando due vettori non nulli x e y ed una matrice reale e simmetrica A:

xT Ay
r(A; x, y) = √︁ .
(xT x)(y T y)

Se x = y quest’ultima relazione si riconduce al quoziente di Rayleigh classico.

Osservazione 0.2.1. Se la matrice B, oltre ad essere reale e simmetrica, é anche


definita positiva, allora si ha:

r(A, B; x) = r(d, C T x),

dove C é la matrice triangolare inferiore ad elementi diagonali positivi che compare


nella fattorizzazione di Cholesky B = CC T della matrice B, mentre D := C −1 A(C T )−1 .
Infatti:

(C T x)T D(C T x) (xT C)(C −1 A(C T )−1 )(C T x) xT Ax


r(D; C T x) = = = = r(A, B; x).
(C T c)T (C T x) xT Bx xT Bx

0.2.2 Convergenza

La relazione (1) spiega il motivo per cui l’algoritmo QR individua gli autovettori della
matrice A: costruisce basi ortonormali per Ak che, dal metodo delle iterazioni simul-
tanee, sappiamo convergere agli autovettori di A.
La relazione (2) spiega il motivo per cui l’algoritmo QR individua gli autovalori del-
la matrice A. Infatti da tale relazione segue che gli elementi diagonali di A(k) sono
i quozienti di Rayleigh classici delle colonne di Q(k) rispetto alla matrice A e, come

3
tali colonne convergono agli autovettori di A, i quozienti di Rayleigh convergono ai
corrispondenti autovalori.
Inoltre, i coefficienti fuori dalla diagonale principale sono i coefficienti di Rayleigh ge-
neralizzati e coinvolgono approssimazioni degli autovettori della matrice A; dal fatto
che tali approssimazioni devono diventare ortogonali per via della convergenza ai vari
autovettori, essi dovranno tendere a 0.
Vale dunque il seguente
Teorema 0.2.2. Supponiamo di applicare l’algoritmo QR ad una matrice A reale e
simmetrica i cui autovalori sono tali che

|λ1 | > |λ2 | > ... > |λm |,

e la cui corrispondente matrice degli autovettori Q ha tutte le sottomatrici principali


non singolari.
|λk+1 |
Allora, per k → +∞, A(k) converge linearmente con costante maxk |λk |
alla matrice
⎡ ⎤
λ1
λ2
⎢ ⎥
⎢ ⎥
⎢ ⎥
Λ=⎢ ⎢ . ⎥.

.
⎢ ⎥
⎣ ⎦
λm

0.3 Implementazione dell’algoritmo QR senza shift

Diamo infine un’implementazione dell’algoritmo QR.


La fattorizzazione QR viene eseguita utilizzando il metodo di Gram-Schmidt modifi-
cato (che sappiamo essere stabile).
La variabile nmax indicherá il numero di iterazioni desiderate dall’utilizzatore, mentre
i parametri in output T, Q ed R sono le matrici A(k) , Q(k) ed R(k) dopo nmax iterazioni
del metodo QR.

f unction [T, Q, R] = QRsenzashif t(A, nmax )


T = A;
f or i = 1 : nmax
[Q, R] = mgsqr(T );
T = R ∗ K;
end