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.

408 CAPITOLUL 5. DESCOMPUNEREA VALORILOR SINGULARE<br />

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

1. U(:,j) ↔ U(:,j +1)<br />

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

1. V(:,j) ↔ V(:,j +1)<br />

4. ord = ′ nu ′<br />

3. i ← i+1.<br />

Comentarii. Variabila logică ord reprezintă starea procesului de ordonare şi este<br />

familiară celor care utilizează curent algoritmul de sortare menţionat. Sintaxa de<br />

apel a algoritmului va fi<br />

[f,U,V ] = DVS ORD(f,U,V,opt 1 ,opt 2 ).<br />

Evident, nuseefectueazăoperaţii aritmetice. Numărulmaximpo<strong>si</strong>bil decomparaţii<br />

este 1 2n(n−1). De<strong>si</strong>gur, se pot folo<strong>si</strong> algoritmi de sortare mai sofisticaţi dar câştigul<br />

nu este semnificativ pentru matrice de dimen<strong>si</strong>uni curente. ✸<br />

Avându-se în vedere faptul că matricele de permutare sunt ortogonale, matricea<br />

finală<br />

⎡ ⎤<br />

ˆσ 1 0 ··· 0<br />

0 ˆσ 2 ··· 0<br />

ˆΣ def<br />

.<br />

= diag(P T ,I m−n )JP =<br />

. . .. .<br />

0 0 ··· ˆσ n<br />

(5.102)<br />

⎢ . . . . ⎥<br />

⎣ . . . . ⎦<br />

0 0 ··· 0<br />

împreună, cu matricele unitare Û = Udiag(P,I m−n), ˆV = VP definesc DVS calculată<br />

a matricei iniţiale.<br />

Cu toate precizările de mai sus şi utilizând algoritmii auxiliari introduşi, putem<br />

prezenta algoritmul DVS în integralitatea lui.<br />

Algoritmul 5.5 (DVSc – Descompunerea <strong>valorilor</strong> <strong>si</strong>ngulare)<br />

(Date matricea A ∈ IC m×n cu m ≥ n şi nivelul de toleranţă tol, algoritmul<br />

calculează valorile <strong>si</strong>ngulare ale matricei A care sunt elementele<br />

vectorului f ∈ IR n şi opţional matricele de transformare U ∈ IC m×m<br />

şi/sau V ∈ IC n×n , care definesc DVS a matricei A. Opţiunea se exprimă<br />

cu ajutorul variabilelor logice opt 1 şi opt 2 care pot lua valorile ’da’ sau<br />

’nu’. Dacănu se doreşteacumularea,atunci pentru matricearespectivă<br />

se returnează matricea unitate de dimen<strong>si</strong>une corespunzătoare.)<br />

1. % Cazul matricelor coloană<br />

Dacă n = 1 atunci<br />

1. [A,u,β] = Hc(A)<br />

2. f = |A(1,1)|<br />

3. U = I m , V = 1<br />

4. Dacă opt 1 = ′ da ′ şi β ≠ 0 atunci<br />

U = I m − u·uH<br />

β

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

Saved successfully!

Ooh no, something went wrong!