12.01.2015 Views

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

396 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />

4. Dacă se doreşte calculul matricei V, atunci<br />

3. V ← I n<br />

4. Pentru k = n−2 : −1 : 1<br />

1. V ← V k+1 V<br />

Utilizând procedurile din tabelul 4.3 (vezi cap. 4), algoritmul corespunzător<br />

schemei de calcul de mai sus se scrie astfel.<br />

Algoritmul 5.1 (JQc – Reducerea la forma bidiagonală) (Dată matricea<br />

A ∈ IC m×n , cu m ≥ n, algoritmul calculează reflectorii hermitici<br />

U k , k = 1 : p, p = min(m−1,n), şiV k , k = 2 : n−1, astfel încâtmatricea<br />

J = U H p ...UH 1 AV 2...V n−1 = U H AV este bidiagonală. Matricea J este<br />

obţinută prin vectorii f ∈ IC n şi g ∈ IC n−1 ai elementelor sale diagonale,<br />

respectiv supradiagonale. Opţional, se acumulează matricele unitare de<br />

transformare U şi/sau V. Opţiunea se exprimă cu ajutorul variabilelor<br />

logiceopt 1 şiopt 2 carepotluavalorile’da’sau’nu’. Dacănusedoreşte<br />

acumularea, atunci pentru matricea respectivă se returnează matricea<br />

unitate de dimen<strong>si</strong>une corespunzătoare.)<br />

1. p = min(m−1,n)<br />

2. Pentru k = 1 : p<br />

1. [c,A(k : m,k),β k ] = Hc(A(k : m,k))<br />

2. f k = c 1<br />

3. Dacă k < n atunci<br />

1. A(k : m,k +1 : n) =<br />

= Hcs(A(k : m,k),β k ,A(k : m,k +1 : n))<br />

4. Dacă k < n−1 atunci<br />

1. [c,v,γ k+1 ] = Hc((A(k,k +1 : n)) T )<br />

2. A(k,k +1 : n) = v T<br />

3. g k = c 1<br />

4. A(k +1 : m,k +1 : n) =<br />

= Hcd(A(k : m,k +1 : n),v,γ k+1 )<br />

5. g n−1 = A(n−1,n)<br />

3. Dacă m = n atunci<br />

1. f n = A(n,n)<br />

4. U = I m , V = I n<br />

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

1. Pentru k = p : −1 : 1<br />

1. U(k : m,k : m) = Hcs(A(k : m,k),β k ,U(k : m,k : m))<br />

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

1. Pentru k = n−2 : −1 : 1<br />

1. V(k +1 : n,k +1 : n) =<br />

= Hcs((A(k,k+1 : n)) T ,γ k+1 ,V(k +1 : n,k +1 : n))

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

Saved successfully!

Ooh no, something went wrong!