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.

436 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />

Algoritmul DVSG furnizează vectorii c şi s ai elementelor diagonale ale matricelor<br />

diagonale C şi S, precum şi matricele de transformare. Evident, rangul matricei A<br />

este dat de numărul componentelor ”nenule” ale vectorului c, iar rangul matricei B<br />

de cel al componentelor ”nenule” ale vectorului s. Neglijarea elementelor <strong>vectorilor</strong><br />

c şi s inferioare lui tol‖A‖, respectiv lui tol‖B‖, unde tol este o toleranţă fixată, şi<br />

determinarea rangului (numeric al) celor două matrice vor fi realizate cu algoritmul<br />

Rang DVSG care poate fi scris fără dificultate de cititor (exerciţiul 5.23) şi care<br />

va fi apelat folo<strong>si</strong>nd <strong>si</strong>ntaxa<br />

Rezultă următorul algoritm.<br />

[r A ,r B ] = Rang DVSG(s,c,tol).<br />

Algoritmul 5.10 (CMMP RPI – Soluţia problemei CMMP cu restricţii<br />

pătratice tip inegalitate) (Se con<strong>si</strong>deră date matricea A ∈ IC m×n ,<br />

cu m > n, şi vectorul b ∈ IC m , care definesc problema CMMP, precum<br />

şi matricea B ∈ IC p×n , cu p ≥ n, vectorul d ∈ IC p şi scalarul γ > 0 care<br />

definesc restricţiile (5.162). De asemenea, pentru evaluarea rangului<br />

este utilizată toleranţa tol. Algoritmul calculează soluţia x = x ∗ ∈ IC n<br />

a problemei CMMP cu restricţii (5.155), (5.162) şi reziduul r = r ∗ , de<br />

normă euclidiană minimă, aferent.)<br />

1. [c,s,U,V,W ] = DVSG(A,B)<br />

2. [r A ,r B ] = Rang DVSG(s,c,tol)<br />

3. b ← U H b<br />

4. d ← V H d<br />

5. ρ = ∑ n−r B<br />

i=1<br />

|d i | 2 + ∑ p<br />

i=n+1 |d i| 2<br />

6. Dacă ρ > γ 2 atunci<br />

1. Tipăreşte ’Problema unu are soluţie.’<br />

2. Return<br />

altfel<br />

1. Dacă ρ = γ 2 atunci<br />

1. y ∗ i = b i<br />

c i<br />

2. y ∗ i = d i<br />

altfel<br />

s i<br />

pentru i = 1 : n−r B<br />

pentru i = n−r B +1 : n<br />

1. ν = ρ+ ∑ r A<br />

i=n−rB<br />

|s i<br />

b i<br />

c i<br />

−d i | 2<br />

2. Dacă ν ≤ γ 2 atunci<br />

1. y ∗ i = b i<br />

c i<br />

2. y ∗ i = d i<br />

altfel<br />

s i<br />

pentru i = 1 : r A<br />

pentru i = r A +1 : n

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

Saved successfully!

Ooh no, something went wrong!