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.

260 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />

lui S). Toate calculele se efectuează pe loc, în locaţiile de memorie ale<br />

tabloului A. Opţional, se acumulează transformările înmatricea unitară<br />

Q ← Q˜Q. Opţiunea se exprimă cu ajutorul variabilei logice opt de tipul<br />

şir de caractere care poate lua valorile ′ da ′ sau ′ nu ′ . Dacă nu se doreşte<br />

acumularea transformărilor, matricea Q rămâne nemodificată.)<br />

1. Dacă n = 1 atunci return<br />

2. % Reducerea la forma Hessenberg<br />

1. [A,Q] =HQc(A,Q,opt)<br />

3. % Faza iterativă<br />

1. p = 0, q = 0, cont it = 0<br />

2. C^at timp q < n<br />

1. % Anularea elementelor subdiagonale neglijabile<br />

1. Pentru i = p+1 : n−q −1<br />

1. Dacă |Rea i+1,i |+|Ima i+1,i | <<br />

< tol(|Rea ii |+|Ima ii |+|Rea i+1,i+1 |+|Ima i+1,i+1 |)<br />

atunci a i+1,i = 0<br />

2. % Determinarea lui q<br />

1. C^at timp a n−q,n−q−1 = 0<br />

1. q ← q +1<br />

2. % Terminarea normală a algoritmului<br />

Dacă q = n−1 atunci return.<br />

3. cont it = 0<br />

3. % Terminarea prin eşec a algoritmului<br />

1. Dacă cont it > 30 atunci<br />

1. Tipăreşte ’S-au consumat 30 iteraţii QR pentru<br />

evidenţierea unei valori <strong>proprii</strong> fără a se atinge<br />

acest obiectiv. Este po<strong>si</strong>bil ca, pentru aceste date<br />

de intrare, algoritmul QR să nu fie convergent.’<br />

2. Return.<br />

4. % Determinarea lui p<br />

1. p = n−q −1<br />

2. C^at timp a p+1,p ≠ 0<br />

1. p ← p−1<br />

2. Dacă p = 0 atunci break<br />

5. % Iteraţia curentă<br />

1. k = p+1, l = n−q<br />

2. w = VD1(A(k:l,k:l))<br />

3. % <strong>Calculul</strong> deplasării implicite modificate<br />

1. Dacă cont it = 10 sau cont it = 20 atunci<br />

1. µ = |Reh l,l−1 |+i|Imh l,l−1 |<br />

2. Dacă l > k +1 atunci<br />

µ = µ+|Reh l−1,l−2 |+i|Imh l−1,l−2 |<br />

3. w = [h kk −µ h k+1,k ] T

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

Saved successfully!

Ooh no, something went wrong!