12.01.2015 Views

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

Calculul valorilor si vectorilor proprii

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

BD 1. Pentru k = 1 : q −1<br />

1. Pentru j = k +1 : q<br />

1. Se rezolvă ecuaţia Sylvester T kk X kj −X kj T jj = −T kj<br />

2. T kj = 0<br />

3. Dacă k < q −1 atunci<br />

1. Pentru l = j +1 : q<br />

1. T kl = T kl −X kj T jl<br />

2. Pentru i = 1 : q<br />

1. Q ij = Q ij +Q ik X kj<br />

Algoritmul de implementare al schemei de calcul BD arată astfel.<br />

Algoritmul 4.23 (BDc – Diagonalizarea bloc a unei matrice bloc<br />

superior triunghiulare) (Date matricea bloc superior triunghiulară T ∈<br />

∈ IC n×n , având blocurile diagonale T ii ∈ IC ni×ni , i = 1 : q, astfel încât<br />

λ(T ii )∩λ(T jj ) = ∅, ∀i ≠ j, matricea de transformare iniţială Q ∈ IC n×n<br />

şi vectorul nd = [n 1 n 2 ... n q ] al ordinelor blocurilor diagonale, algoritmul<br />

calculează matricea unitar bloc triunghiulară X ∈ IC m×n astfel<br />

încât T ← X −1 TX este bloc-diagonală T = diag(T 11 ,T 22 ,...,T qq ) şi<br />

acumulează transformărileactualizând matricea Q: Q ← QX. Matricea<br />

X nu se formează explicit.)<br />

1. r 1 = 1<br />

2. s 1 = n 1<br />

3. Pentru k = 1 : q −1<br />

1. r k+1 = r k +n k<br />

2. s k+1 = s k +n k+1<br />

4. Pentru k = 1 : q −1<br />

1. Pentru j = k +1 : q<br />

1. Y = SYLV(T(r k :s k ,r k :s k ),T(r j :s j ,r j :s j ),<br />

−T(r k :s k ,r j :s j ))<br />

2. T(r k :s k ,r j :s j ) = 0<br />

3. Dacă k < q −1 atunci<br />

1. Pentru l = j +1 : q<br />

1. T(r k :s k ,r l :s l ) = T(r k :s k ,r l :s l )−YT(r j :s j ,r l :s l )<br />

4. Q(:,r j :s j ) = Q(:,r j :s j )+Q(:,r k :s k )Y<br />

Comentarii. Sintaxa de apel pentru algoritmul 4.23 este<br />

[T,Q] = BD(T,Q,nd).<br />

Pentru <strong>si</strong>mplificarea scrierii algoritmului s-au introdus vectorii de indici iniţiali (r)<br />

şi finali (s) ai blocurilor, i.e. astfel încât T ij = T(r i : s i ,r j : s j ). Întrucât matricea<br />

X nu se formează explicit (în afara cazului când Q iniţial este I n ) pentru soluţiile<br />

X kj ale ecuaţiilor Sylvester s-a utilizat aceeaşi variabilă matriceală Y.

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

Saved successfully!

Ooh no, something went wrong!