Calculul valorilor si vectorilor proprii
Calculul valorilor si vectorilor proprii
Calculul valorilor si vectorilor proprii
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6.4. CALCULUL SUBSPAŢIILOR DE DEFLAŢIE 493<br />
– pentru relaţiile de calcul al <strong>vectorilor</strong> de deplasare implicită (exactă) recomandăm<br />
consultarea algoritmilor Vd1 şi Vd2;<br />
– pentru o prezentare mai clară a algoritmulor, actualizarea blocurilor nediagonale<br />
de pe bloc-liniile şi bloc-coloanele afectate în etapa curentă, conform relaţiei<br />
(6.85), se va face utilizând matricele de transformare locală ˜Q şi ˜Z în formă nefactorizată.<br />
Obţinem următorul algoritm.<br />
Algoritmul 6.12 (PGr – Permutarea a două perechi diagonale adiacente)<br />
(Date o pereche (S,T) ∈ IR n×n × IR n×n în formă Schur reală<br />
generalizată, întregull carereprezintândpoziţiadiagonalăaelementului<br />
11 al primului bloc diagonal şi ordinele i ş j ale celor două blocuri diagonale<br />
adiacente precum ş toleranţa tol pentru neglijarea elementelor subdiagonale,<br />
algoritmul suprascrie perechea (S,T) cu perechea (S ′ ,T ′ ) =<br />
= (˜Q T S ˜Z, ˜Q T T ˜Z), realizând permutarea perechii de blocuri diagonale<br />
(S kk ,T kk ) cu perechea de blocuri diagonale (S k+1,k+1 ,T k+1,k+1 ). De<br />
asemenea, se actualizează matricele de transformare Q şi Z.)<br />
1. % Cazul a două perechi de blocuri 1×1<br />
Dacă i = 1 şi j = 1 atunci<br />
1. [S,T,Q,Z] = PG11r(S,T,Q,Z,l)<br />
2. Return<br />
2. % Cazul perechilor de blocuri 1×1, 2×2<br />
Dacă i = 1 şi j = 2 atunci<br />
1. q = l+2<br />
2. µ = s ql,l<br />
t l,l<br />
3. w = [1 1 1] T<br />
4. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q),I 3 ,I 3 ,w, ′ da ′ )<br />
5. C^at timp |s l+2,l+1 | ≥ tol(|s l+1,l+1 |+|s l+2,l+2 |)<br />
1. w exact = [ s l,l<br />
−µ s l+1,l<br />
0 ] T<br />
t l,l t l,l<br />
2. [S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z] =<br />
= IT QZ2(S(l : q,l : q),T(l : q,l : q), ˜Q, ˜Z,w exact , ′ da ′ )<br />
6. S(l+2,l+1)= 0 % anularea efectivă a elementului neglijabil<br />
7. Dacă l > 1 atunci<br />
1. S(1 : l−1,l : q) = S(1 : l−1,l : q)˜Z<br />
2. T(1 : l−1,l : q) = T(1 : l−1,l : q)˜Z<br />
8. Dacă l < n−2 atunci<br />
1. S(l : q,q +1 : n) = ˜Q T S(l : q,q +1 : n)<br />
2. T(l : q,q +1 : n) = ˜Q T T(l : q,q +1 : n)<br />
9. Q(:,l : q) = Q(:,l : q)˜Q<br />
10. Z(:,l : q) = Z(:,l : q)˜Z