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.

4.9. METODE ALTERNATIVE 341<br />

1. Dacă |a ij | > µ atunci<br />

1. µ = |a ij |<br />

2. p ← j<br />

3. q ← i<br />

3. [A,c,s] = IT J(A,q,p)<br />

4. Dacă opt = ′ da ′ atunci<br />

1. Pentru i = 1 : n<br />

1. ρ = cq ip −sq iq<br />

2. q iq ← sq ip +cq iq<br />

3. q ip ← ρ.<br />

Comentarii. Sintaxa de apel a algoritmului J cla<strong>si</strong>c va fi<br />

[A,Q] = J cla<strong>si</strong>c(A,Q,tol,opt),<br />

iar complexitatea sa, pentru n relativ mari poate fi apreciată statistic la O(n 3 ) şi<br />

la O(n 4 ) pentru n relativ reduse.<br />

✸<br />

Metoda Jacobi ciclică<br />

Dezavantajul principal al metodei Jacobi cla<strong>si</strong>ce constă în nece<strong>si</strong>tatea căutării, la<br />

fiecare iteraţie, a elementului extradiagonal de modul maxim, o operaţie de complexitate<br />

O(n 2 ) comparaţii, în timp ce complexitatea de calcul a unei iteraţii este<br />

de numai O(n). De aceea, pentru a se a<strong>si</strong>gura o eficienţă sporită, metoda Jacobi ciclică<br />

evită efectuarea comparaţiilor prin anularea elementelor extradiagonale într-o<br />

ordine predeterminată. Având în vedere că elementele anulate pot deveni nenule<br />

într-o fază ulterioară a aceleiaşi iteraţii sau într-o iteraţie ulterioară, anulările se<br />

reiau, ciclic, până la satisfacerea criteriului de oprire a iteraţiilor.<br />

Presupunând că operăm exclu<strong>si</strong>v în triunghiul inferior al matricei A şi efectuăm<br />

anulările pe linii, în ordinea naturală, i.e. în cadrul unui ciclu, în ordinea (2,1),<br />

(3,1), (3,2), ...(n,1),...(n,n−1), obţinem următorul algoritm.<br />

Algoritmul 4.31 (J ciclic – Diagonalizare iterativă a unei matrice<br />

<strong>si</strong>metrice prin metoda Jacobi ciclică) (Date matricea <strong>si</strong>metrică A ∈<br />

∈ IR n×n , prin triunghiul său inferior, matricea ortogonală Q ∈ IR n×n şi<br />

toleranţa tol < 1, algoritmul calculează valorile <strong>proprii</strong> ale matricei A<br />

prin diagonalizarea iterativă cu rotaţii Jacobi care anulează elementele<br />

extradiagonale ciclic, pe linii. Acumularea transformărilor se realizează<br />

opţional, pe baza opţiunii exprimate prin intermediul unei variabile logice<br />

opt, care poate lua valorile ’da’ sau ’nu’. Dacă opt = ′ nu ′ , matricea<br />

Q rămâne nemodificată.)<br />

1. σ = ∑ n<br />

i=2<br />

∑ i−1<br />

j=1 a2 ij<br />

2. ν A = √ 2σ+ ∑ n<br />

i=1 a2 ii , ν E = √ 2σ<br />

3. C^at timp ν E > tol ∗ν A<br />

1. Pentru q = 2 : n

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

Saved successfully!

Ooh no, something went wrong!