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.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 489<br />

7. Se calculează rotaţia Q 12 astfel încât (Q H 12 y)(2) = 0<br />

8. S ← diag(I k−1 ,Q H 12 ,I n−k−1)S<br />

9. T ← diag(I k−1 ,Q H 12,I n−k−1 )T<br />

10. Q ← Qdiag(I k−1 ,Q 12 ,I n−k−1 )<br />

iar algoritmul corespunzător, bazat pe utilizarea procedurilor devenite familiare<br />

pentru cititor, este<br />

Algoritmul 6.10 (PG11c – Permutarea a două valori <strong>proprii</strong> generalizate<br />

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

Schur generalizată, matricele unitare Q,Z∈IC n×n şi întregul k∈1:n−1,<br />

algoritmul suprascrie perechea de matrice (S,T) cu perechea (S ′ ,T ′ ) =<br />

= (˜Q H S ˜Z, ˜Q H T ˜Z) care realizează permutarea <strong>valorilor</strong> <strong>proprii</strong> generalizate<br />

definite de perechile (s kk ,t kk ), (s k+1,k+1 ,t k+1,k+1 ) şi actualizează<br />

matricele de transformare Q şi Z.)<br />

1. Dacă s kk t k+1,k+1 ≠ s k+1,k+1 t kk atunci<br />

[ ]<br />

sk+1,k+1 t<br />

1. y = k,k+1 −s k,k+1 t k+1,k+1<br />

s kk t k+1,k+1 −s k+1,k+1 t kk<br />

2. [y,c,s] = Gc(y)<br />

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

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

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

6. Dacă |t k+1,k+1 | ≥ |s k+1,k+1 | atunci<br />

1. y = S(k : k +1)<br />

altfel<br />

1. y = T(k : k +1,k)<br />

7. [y,c,s] = Gc(y)<br />

8. S(k : k +1,k +1 : n) = Gcs(c,s,S(k : k +1,k +1 : n))<br />

9. s k+1,k = 0 % zeroul calculat este setat efectiv<br />

10. T(k : k +1,k : n) = Gcs(c,s,T(k : k +1,k : n))<br />

11. t k+1,k = 0 % zeroul calculat este setat efectiv<br />

12. Q(:,k : k +1) = Gcd(Q(:,k : k +1,c,s))<br />

Comentarii. Sintaxa de apel a algoritmului de mai sus va fi<br />

[S,T,Q,Z] = PG11c(S,T,Q,Z,k).<br />

Complexitatea unei permutări a două valori <strong>proprii</strong> generalizate vecine este 24n<br />

fiind independentă de k.<br />

✸<br />

Din momentul în care dispunem de procedura de permutare a două valori <strong>proprii</strong><br />

învecinate, algoritmulpropriu-zisde ordonarea formei Schur generalizate(complexe)<br />

se reduce, în esenţă, la un algoritm de sortare al unei mulţimi ordonate bazat<br />

pe interschimbarea elementelor adiacente. Procedând ca în cazul formei Schur ordinare,<br />

prezentăm o variantă care dispune valorile <strong>proprii</strong> ale unei forme Schur

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

Saved successfully!

Ooh no, something went wrong!