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.
482 CAPITOLUL 6. VALORI ŞI VECTORI PROPRII GENERALIZAŢI<br />
transformarea ortogonală de echivalenţă ce aduce perechea ( ˜H, ˜T) la forma Schur<br />
generalizată se pot construi procedând ca în demonstraţia propoziţiei 6.2. Concret,<br />
(vezi exerciţiul 6.9), ˜Z este reflectorul care a<strong>si</strong>gură (˜Zv)(2) = 0, iar apoi ˜Q este<br />
reflectorul care a<strong>si</strong>gură (˜Q T (˜T ˜Z(:,1))(2) = 0.<br />
Dacă blocul diagonal ce trebuie triangularizat se află pe liniile şi coloanele k şi<br />
k+1, atunci rezultatul dorit se obţine aplicând perechii (H,T), de ordinul n, transformarea<br />
ortogonală de echivalenţă definită de matricele Q = diag(I k−1 , ˜Q,I n−k−1 )<br />
şi diag(I k−1 , ˜Z,I n−k−1 ).<br />
În vedereaunei scrierimai concise a algoritmuluiQZ prezentămaici un algoritm<br />
preliminar care procesează perechea bloc-diagonală 2×2 aflată în poziţia (k,k+1).<br />
Algoritmul 6.8 (TRID2g -Triangularizarea unei perechi de blocuri<br />
diagonale 2×2) (Date o pereche (S,T) ∈ IR n×n ×IR n×n , cu S în formă<br />
cva<strong>si</strong>-superior triunghiulară şi T superior triunghiulară ne<strong>si</strong>ngulară şi<br />
întregul k ∈ 1:n−1, algoritmul testează dacă perechea de blocuri diagonale<br />
(S(k: k+1,k: k+1),T(k: k+1,k: k+1)) are valorile <strong>proprii</strong> generalizate<br />
reale şi, în caz afirmativ, calculează triangularizarea ortogonală<br />
a perechii bloc-diagonale vizate, rezultatul suprascriind perechea (S,T).<br />
De asemenea, algoritmul returnează elementele definitorii (u Q ,β Q ) şi<br />
(u Z ,β Z ) ale celor doi reflectori calculaţi. În caz contrar perechea (S,T)<br />
rămâne nemodificată şi, pentru identificarea acestei <strong>si</strong>tuaţii, se returnează<br />
β Z = 0.)<br />
1. β Z = 0<br />
2. α = t k,k t k+1,k+1 , β = s k,k t k+1,k+1 + s k+1,k+1 t k,k − s k+1,k t k,k+1 ,<br />
γ = s k,k s k+1,k+1 −s k,k+1 s k+1,k , ∆ = β 2 −4αγ<br />
3. Dacă ∆ ≥ 0 atunci<br />
1. λ 1 = (β +sgn(β) √ ∆)/2α<br />
[ ]<br />
λ1 t k+1,k+1 −s k+1,k+1<br />
2. v =<br />
s k+1,k<br />
3. [v,u Z ,β Z ] = Hr(v)<br />
4. S(1 : k+1,k:k+1) = Hrd(S(1 : k+1,k:k+1),u Z ,β Z )<br />
5. T(1 : k+1,k:k+1) = Hrd(T(1 : k+1,k:k+1),u Z ,β Z )<br />
6. [T(k:k+1,k),u Q ,β Q ] = Hr(T(k:k+1,k))<br />
7. S(k:k+1,k:n) = Hrs(u Q ,β Q ,S(k: k+1,k:n))<br />
8. S(k+1,k) = 0 % zeroul calculat se setează la un zero efectiv<br />
9. T(k:k+1,k+1:n) = Hrs(u Q ,β Q ,T(k: k+1,k+1:n))<br />
Comentarii. Sintaxa de apel a acestui algoritm va fi<br />
iar complexitatea sa este O(n).<br />
[S,T,u Q ,β Q ,u Z ,β Z ] = TRID2g(S,T,k),<br />
Cu acesteprecizărişi ţinând seamade aspectelecomune cu cazulcomplexputem<br />
scrie algoritmul QZ standard cu pas dublu, cu deplasare implicită, pentru calculul<br />
formei Schur reale generalizate.<br />
✸