12.01.2015 Views

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

470 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />

HTQZ, dată de schema de calcul de mai sus, conduc la obţinerea perechii succesor<br />

{<br />

H ← H ′ = Q H n−1,n···QH 23 PH HZ 12 Z 23···Z n−1,n ,<br />

(6.54)<br />

T ← T ′ = Q H n−1,n···Q H 23P H TZ 12 Z 23···Z n−1,n ,<br />

din şirul QZ. Perechea (H ′ ,T ′ ) suprascrie perechea (H,T), i.e. toate calculele aferente<br />

unui pas <strong>si</strong>mplu QZ cu deplasare implicită se desfăşoară pe loc, în tablourile<br />

H şi T.<br />

Din motive de organizare judicioasă a algoritmului QZ şi, mai ales, a algoritmului<br />

de ordonare a formei Schur generalizate (vezi secţiunea 6.4) vom scrie o<br />

procedură distinctă pentru calculul vectorului de deplasare implicită.<br />

Algoritmul 6.3 (VD1 – <strong>Calculul</strong> vectorului de deplasare implicită<br />

pentru un pas <strong>si</strong>mplu QZ) (Date o pereche (H,T) ∈ IC n×n × IC n×n în<br />

formă Hessenberg generalizată cu T ne<strong>si</strong>ngulară, algoritmul calculează<br />

vectorul w ∈ IC 2 de deplasare implicită pentru un pas <strong>si</strong>mplu QZ.)<br />

1. µ = h n,n<br />

− h n,n−1t n−1,n<br />

t n,n t n−1,n−1 t n,n<br />

⎡ ⎤<br />

h 11<br />

−µ<br />

2. w = ⎢ t 11 ⎥<br />

⎣ h 21<br />

⎦<br />

t 11<br />

Comentarii. Sintaxa de apel a acestui algoritm va fi<br />

iar complexitatea sa este, evident, O(1).<br />

w = VD1(H,T),<br />

Cu aceste precizări putem prezenta algoritmul de implementare al unui pas<br />

<strong>si</strong>mplu QZ cu deplasare implicită. Sunt utilizate proceduri cuprinse în tabelul 4.3<br />

şi procedura Gcm, de calcul al unei rotaţii modificate, introdusă în acest capitol.<br />

Algoritmul 6.4 (IT QZ1 - Un pas <strong>si</strong>mplu QZ cu deplasare implicită)<br />

(Date o pereche (H,T) ∈ IC n×n × IC n×n în formă Hessenberg<br />

generalizată ireductibilă, matricele unitare Q,Z ∈ IC n×n şi vectorul de<br />

deplasare implicită w ∈ IC 2 , algoritmul suprascrie perechea (H,T) cu<br />

perecheasuccesor(H ′ ,T ′ ) = (Q H k HZ k,Q H k TZ k) dinşirul QZ.Opţional,<br />

se actualizează matricele unitare de transformare Q şi Z. Opţiunea se<br />

exprimă cu ajutorul variabilei logice opt de tipul şir de caractere care<br />

poate lua valorile ′ da ′ sau ′ nu ′ . Dacă opt = ′ nu ′ , algoritmul returnează<br />

matricele Q şi Z nemodificate.)<br />

1. [w,c,s] = Gc(w)<br />

2. H(1:2,:) = Gcs(c,s,H(1:2,:))<br />

3. T(1:2,:) = Gcs(c,s,T(1:2,:))<br />

4. Dacă opt = ′ da ′ atunci<br />

1. Q(:,1:2) = Gcd(Q(:,1:2),c,s)<br />

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

Saved successfully!

Ooh no, something went wrong!