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.

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

recomandate în [X].<br />

La terminarea cu succes a fazei iterative, triangularizarea blocurilor diagonale<br />

2×2 cu valori <strong>proprii</strong> reale se poate face aplicând procedura standard de deflaţie.<br />

Dacă G ∈ IR 2×2 are valorile <strong>proprii</strong> reale, i.e.<br />

∆ = (g 11 −g 22 ) 2 +4g 12 g 21 ≥ 0, (4.157)<br />

atunci<br />

x 1 =<br />

[ ]<br />

λ1 −g 22<br />

g 21<br />

este un vector propriu asociat valorii <strong>proprii</strong> λ 1 ∈ λ(G) dată de<br />

(4.158)<br />

λ 1 = g 11 +g 22 +sgn(g 11 +g 22 ) √ ∆<br />

. (4.159)<br />

2<br />

Atunci rotaţia P ∈ IR 2×2 , care a<strong>si</strong>gură satisfacerea condiţiei (P T x 1 )(2) = 0, are<br />

prima coloană coliniară cu x 1 şi, conform lemei 4.3, realizează triangularizarea<br />

urmărită<br />

[ ]<br />

˜G = P T λ1 ˜g<br />

GP = 12<br />

. (4.160)<br />

0 λ 2<br />

Dacă blocul diagonal ce trebuie triangularizat, pe care îl notăm generic cu G, se<br />

află în poziţia definită de liniile şi coloanele k şi k + 1, atunci rezultatul dorit se<br />

obţine aplicând matricei date o transformare ortogonală de asemănare definită de<br />

matricea diag(I k−1 ,P,I n−k−1 ).<br />

Învedereaunei scrierimaiconciseaalgoritmuluiQRcudeplasareimplicită pentru<br />

matrice reale, prezentăm aici un algoritm preliminar care procesează perechea<br />

bloc-diagonală 2×2 aflată în poziţia (k,k +1).<br />

Algoritmul 4.9 (TRID2 – Triangularizarea unui bloc diagonal<br />

2 × 2) (Dată o matrice S ∈ IR n×n în formă cva<strong>si</strong>superior triunghiulară<br />

şi întregul k ∈ 1 : n−1 algoritmul testează dacă submatricea<br />

S(k : k+1,k : k+1) are valorile <strong>proprii</strong> reale şi, în caz afirmativ, calculează<br />

triangularizarea ortogonală a blocului diagonal vizat, rezultatul<br />

suprascriindmatriceaS. Deasemenea, algoritmulreturneazăelementele<br />

definitorii c şi s ale rotaţiei reale calculate. În caz contrar matricea<br />

S rămâne nemodificată şi, pentru identificarea acestei <strong>si</strong>tuaţii, se returnează<br />

c = 1, s = 0.)<br />

1. c = 1, s = 0<br />

2. β = s k,k +s k+1,k+1 , γ = 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. λ = (β +sgn(β) √ ∆)/2<br />

[ ]<br />

λ−sk+1,k+1<br />

2. x =<br />

s k+1,k<br />

3. [x,c,s] = Gr(x)<br />

4. S(1 : k+1,k:k+1) = Grd(S(1 : k+1,k:k+1),c,s)

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

Saved successfully!

Ooh no, something went wrong!