24.10.2014 Views

Proceduri numerice de analiz˘a sistemic˘a

Proceduri numerice de analiz˘a sistemic˘a

Proceduri numerice de analiz˘a sistemic˘a

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

6 LABORATOR 6. PROCEDURI NUMERICE DE ANALIZĂ SISTEMICĂ<br />

(<strong>de</strong>flaţie) <strong>de</strong> tip (6.14), în care r = k − 1. În acest sens, mai <strong>de</strong>parte vom spune că structura<br />

(6.17), în general reductibilă, constituie forma superior Hessenberg (completă) a perechii (A, b).<br />

În consecinţă avem următorul rezultat important.<br />

Propoziţia 6.1 O pereche (A, b) este controlabilă dacă şi numai dacă există o matrice ortogonală<br />

U astfel încât perechea (Ã, ˜b) are forma (6.17) şi este satisfăcută condiţia (6.18).<br />

În rezumat, sunt posibile două cazuri:<br />

1. Perechea (A, b) este controlabilă, <strong>de</strong>ci r <strong>de</strong>f<br />

= rangR = n.<br />

În acest caz perechea (A, b) este ortogonal asemenea cu o pereche (Ã, ˜b) în forma superior<br />

Hessenberg controlabilă (6.17), (6.18).<br />

2. Perechea (A, b) nu este controlabilă, <strong>de</strong>ci r <strong>de</strong>f<br />

= rangR < n.<br />

În acest caz perechea (A, b) este ortogonal asemenea cu o pereche (Ã, ˜b) în forma bloc superior<br />

triunghiulară (6.14), în care perechea (A R , b R ) este controlabilă <strong>de</strong> ordin r, <strong>de</strong>ci are structura<br />

(6.15), (6.16). (În particular, (6.14) poate coinci<strong>de</strong> cu forma superior Hessenberg completă<br />

(6.17), în care r este cel mai mic întreg ≥ 1 astfel încât h r+1 = 0).<br />

Aducerea unei perechi (A, b) cu o singură intrare la forma superior Hessenberg completă<br />

(6.17) se face printr-o procedură directă, a cărei schemă <strong>de</strong> calcul este următoarea.<br />

1. Se <strong>de</strong>termină un reflector U 1 ∈ R n×n astfel încât ultimele n−1 componente ale vectorului<br />

b ← U 1 b să fie nule.<br />

2. A ← U 1 AU 1 .<br />

3. [A, U] = hess(A, U 1 ) un<strong>de</strong> funcţia MATLAB hess aduce matricea A la forma superior<br />

Hessenberg A ← Ã = ŨA U ˜T<br />

, prin transformări ortogonale <strong>de</strong> asemănare (vezi algoritmul<br />

HQ din cursul <strong>de</strong> Calcul Numeric).<br />

Pentru a transforma schema <strong>de</strong> calcul <strong>de</strong> mai sus într-un algoritm implementabil vom introduce<br />

trei funcţii <strong>de</strong> calcul cu reflectori, a căror justificare se poate găsi în cursul <strong>de</strong> Calcul<br />

Numeric.<br />

1. Procedura H0 <strong>de</strong> calcul a elementelor <strong>de</strong>finitorii ale reflectorului U 1 , <strong>de</strong>finit prin U 1 =<br />

I n − u1uT 1<br />

β 1<br />

, astfel încât (U 1 b)(2 : n) = 0 şi calculul b ← U 1 b.<br />

Procedura U = H0(b)<br />

1. σ = sgn(b 1 )( ∑ n<br />

i=1 b2 i )1/2<br />

2. u 11 = b 1 + σ; u i1 = b i , i = 2 : n<br />

3. β 1 = σu 11<br />

4. b 1 ← h 1 = −σ; b i = 0, i = 2 : n<br />

2. Procedura H1 <strong>de</strong> premultiplicare a unei matrice cu un reflector U 1 .<br />

Procedura A = H1(U, A)<br />

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

1. τ = ( ∑ n<br />

i=1 u i1a ij )/β 1<br />

2. a ij ← a ij − τu i1 , i = 1 : n.<br />

3. Procedura H2 <strong>de</strong> postmultiplicare a unei matrice cu un reflector U 1 .

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

Saved successfully!

Ooh no, something went wrong!