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.

4.4. ALGORITMUL QR 273<br />

elementelor definitorii ale permutărilor elementare). Transformările efectuate de<br />

algoritmul QR aplicat blocului à 22 definite Ã22 ← S 22 = Q H 22Ã22Q 22 vor acţiona<br />

şi asupra blocurilor Ã12 şi à 23 , i.e. vom efectua Ã12 ← Ã12Q 22 şi, respectiv,<br />

à 23 ← Q H 22Ã23.<br />

Algoritmul de reducere la forma (4.162), în care este utilizată instrucţiunea<br />

break având semnificaţia precizată mai sus, este următorul.<br />

Algoritmul 4.11 (Π – Evidenţierea, prin permutări, a <strong>valorilor</strong><br />

<strong>proprii</strong> izolate) (Dată matricea A ∈ IC n×n , algoritmul calculează o matrice<br />

de permutare P astfel încât matricea à = PT AP să aibă structura<br />

(4.162) având blocurile Ã11 = Ã(1 : k−1,1 : k−1) şi à 33 =<br />

= Ã(l+1:n,l+1:n) superior triunghiulare iar blocul à 22 = Ã(k : l,k : l)<br />

nu are nici o linie şi nici o coloană cu toate elementele extradiagonale<br />

nule. Matricea à suprascrie matricea A, iar permutările elementare<br />

sunt memorate prin elementele vectorului p ∈ IN n , p(i) ≠ i având<br />

drept semnificaţie faptul că linia (şi coloana) i a fost permutată cu<br />

linia (respectiv, coloana) p(i). Ordinea de aplicare a permutărilor este<br />

p(n),p(n−1),...,p(l+1),p(1),p(2),...,p(k −1).)<br />

1. p = [0 0 ... 0]<br />

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

1. Pentru i = l : −1 : 1<br />

1. Dacă A(i,j) = 0, j = 1 : l, j ≠ i, atunci<br />

1. A(i, :) ↔ A(l, :)<br />

2. A(1 : l,i) ↔ A(1 : l,l)<br />

3. p(l) = i<br />

4. break i<br />

altfel dacă i = 1 atunci<br />

1. break l<br />

3. Pentru k = 1 : l<br />

1. Pentru j = k : l<br />

1. Dacă A(i,j) = 0, i = k : l, i ≠ j, atunci<br />

1. A(j,k : n) ↔ A(k,k : n)<br />

2. A(1 : l,j) ↔ A(1 : l,k)<br />

3. p(k) = j<br />

4. break j<br />

altfel dacă j = l atunci<br />

1. break k<br />

Comentarii. Vom utiliza în continuare următoarea <strong>si</strong>ntaxă pentru apelarea algoritmului<br />

de permutare de mai sus:<br />

[A,p,k,l] = Π(A),<br />

unde semnificaţia parametrilor este evidentă.

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

Saved successfully!

Ooh no, something went wrong!