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.

6.3. ALGORITMUL QZ 465<br />

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

Q(:,l−1:l) = Gcd(Q(:,l−1:l),c,s)<br />

6. [H(l,k:k+1),c,s] = Gcm(H(l,k:k+1))<br />

7. H(1:l−1,k:k+1) = Gcd(H(1:l−1,k:k+1),c,s)<br />

8. Dacă l = 2 atunci<br />

H(3,k:k+1) = Gcd(H(3,k:k+1),c,s)<br />

9. T(1:l−1,k:k+1) = Gcd(T(1:l−1,k:k+1),c,s)<br />

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

Z(:,k:k+1) = Gcd(Z(:,k:k+1),c,s)<br />

2. Dacă j > 1 atunci<br />

1. % Ultima rotaţie din secvenţa curentă:<br />

1. (H(j,j−1:j),c,s) = Gcm(H(j,j−1:j))<br />

2. H(1:j−1,j−1:j) = Gcd(H(1:j−1,j−1:j),c,s)<br />

3. T(1:j−1,j−1:j) = Gcd(T(1:j−1,j−1:j),c,s)<br />

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

Z(:,j−1:j) = Gcd(Z(:,j−1:j),c,s)<br />

3. j ← j −1<br />

4. i ← j<br />

altfel<br />

1. i ← i−1<br />

Comentarii. Sintaxa cu care algoritmul de mai sus va fi apelat este<br />

[H,T,Q,Z] = DZc(H,T,Q,Z,opt).<br />

Complexitatea algoritmului este cel mult O(n 3 ), numărul efectiv de operaţii fiind<br />

deci<strong>si</strong>v influenţat de numărul şi dispunerea zerourilor diagonale ale matricei T.<br />

Utilizând exclu<strong>si</strong>v transformări unitare (ortogonale), algoritmul DZc este numeric<br />

stabil.<br />

În cazul real se utilizează exact aceleaşi secvenţe de rotaţii, de data aceasta<br />

reale, ceea ce are ca efect obţinerea ca rezultat a unei perechi transformate reale,<br />

iar efortul de calcul este sen<strong>si</strong>bil diminuat. Pentru a distinge cazul real vom utiliza<br />

<strong>si</strong>ntaxa<br />

[H,T,Q,Z] = DZr(H,T,Q,Z,opt).<br />

Formal, varianta reală a algoritmului se obţine înlocuind în numele procedurilor<br />

utilizate <strong>si</strong>gla c cu <strong>si</strong>gla r.<br />

✸<br />

6.3.3 Faza iterativă a algoritmului QZ<br />

Etapa iterativă a algoritmului QZ construieşte un şir de perechi de matrice unitar<br />

(ortogonal)echivalenteconvergentcătreformaSchur(reală)generalizată. În esenţă,<br />

încazul încarematriceaB estene<strong>si</strong>ngulară,iteraţiile QZreprezintăoimplementare<br />

specifică a iteraţiilor QR pentru matricea C = AB −1 . Concret, perechea curentă<br />

(A k ,B k ) a şirului QZ este astfel calculată încât matricea C k = A k B −1<br />

k<br />

sa fie matricea<br />

curentă a şirului QR pentru matricea C. Aşa cum s-a mai precizat, eficienţa

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

Saved successfully!

Ooh no, something went wrong!