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.4. ALGORITMUL QR 257<br />

Hessenberg a matricei B. Varianta adaptată a algoritmului HQc dată de schema<br />

de calcul de mai sus calculează matricea superior Hessenberg<br />

H ← H ′ = P H n−1,n···PH 34 PH 23 BP 23P 34···P n−1,n =<br />

= P H n−1,n···PH 23 PH 12 HP 12P 23···P n−1,n = Q H k HQ k, (4.143)<br />

i.e. matricea succesor a lui H din şirul QR cu paşi <strong>si</strong>mpli.<br />

Din raţiuni de organizare judicioasă a algoritmului QR şi, mai ales, a algoritmului<br />

de ordonare a formei Schur (vezi secţiunea 4.6), vom introduce un algoritm<br />

distinct de calcul al vectorului de deplasare implicită asociat unui pas <strong>si</strong>mplu QR.<br />

Algoritmul 4.4 (VD1 – <strong>Calculul</strong> vectorului de deplasare implicită<br />

pentru un pas <strong>si</strong>mplu QR) (Dată o matrice superior Hessenberg ireductibilă<br />

H ∈ IC n×n , algoritmul calculează vectorul w ∈ IC 2 de deplasare<br />

implicită pentru un pas <strong>si</strong>mplu QR.)<br />

1. µ = h nn<br />

[ ]<br />

h11 −µ<br />

2. w =<br />

h 21<br />

Comentarii. Sintaxa de apel a acestui algoritm va fi<br />

w = VD1(H),<br />

iar execuţia sa implică efectuarea unei <strong>si</strong>ngure operaţii cu numere complexe.<br />

Cu aceste precizări putem prezenta algoritmul de implementare a unui pas <strong>si</strong>mplu<br />

QR cu deplasare implicită. Sunt utilizate proceduri prezentate în tabelul 4.3.<br />

Algoritmul 4.5 (IT QR1 – Un pas <strong>si</strong>mplu QR cu deplasare implicită)<br />

(Date o matrice superior Hessenberg ireductibilă H ∈ IC n×n şi<br />

vectorul de deplasare implicită w ∈ IC 2 , algoritmul suprascrie matricea<br />

H cu matriceasuccesorH ← H ′ = Q k HQ H k din şirul QR.De asemenea,<br />

algoritmul furnizează vectorii c ∈ IR n−1 şi s ∈ IC n−1 ale căror elemente<br />

(c i ,s i ) definesc rotaţiile P i,i+1 utilizate.)<br />

1. % <strong>Calculul</strong> şi aplicarea rotaţiei P 12<br />

1. [w,c 1 ,s 1 ] = Gc(w)<br />

2. H(1 : 2,:) = Gcs(c 1 ,s 1 ,H(1 : 2,:))<br />

3. H(1 : min(3,n),1 : 2) = Gcd(H(1 : min(3,n),1 : 2),c 1 ,s 1 )<br />

2. % Refacerea structurii Hessenberg<br />

Pentru i = 2 : n−1<br />

1. [H(i : i+1, i−1),c i ,s i ] = Gc(H(i : i+1,i−1))<br />

2. H(i : i+1, i : n) = Gcs(c i ,s i ,H(i : i+1, i : n))<br />

3. H(1 : min(i+2,n), i : i+1) =<br />

= Gcd(H(1 : min(i+2,n), i : i+1),c i ,s i ).<br />

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

Saved successfully!

Ooh no, something went wrong!