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 243<br />

prezentări clare a procedurilor care utilizează algoritmul HQc. De exemplu, apelul<br />

[A,U ] = HQc(A,I n , ′ da ′ ) calculează, pe loc, reducerea la forma Hessenberg şi<br />

creează matricea de transformare din (4.104).<br />

În cazul real reflectorii utilizaţi vor fi reali şi, în consecinţă, matricea Hessenberg<br />

rezultată va fi reală. Întrucât această particularizare se obţine pur şi <strong>si</strong>mplu<br />

înlocuind identificatorii procedurilor ”complexe” cu cei ai procedurilor ”reale” corespunzătoare,<br />

ne mărginim să precizăm <strong>si</strong>ntaxa de apel cu care această variantă va<br />

fi folo<strong>si</strong>tă în continuare:<br />

[H,V ] = HQr(A,Q,opt).<br />

Complexitatea algoritmului este O(n 3 ), execuţia sa implicând N op ≈ 10n 3 /3<br />

operaţii cu numere complexe în format virgulă mobilă. Acumularea matricei de<br />

transformare nece<strong>si</strong>tă N ′ op ≈ 4n3 /3 operaţii suplimentare. Algoritmul HQ este numeric<br />

stabil, i.e. matricea superior Hessenberg calculată într-o aritmetică în virgulă<br />

mobilă este o matrice exact unitar (ortogonal) asemenea cu o matrice uşor perturbată<br />

A+E, unde matricea de perturbaţie E satisface condiţia ‖E‖ ≤ p(n)ε M ‖A‖,<br />

cu p(n) o funcţie cu creştere ”modestă” de dimen<strong>si</strong>unea n a problemei. ✸<br />

Observaţia 4.4 Pentru obţinerea formei Hessenberg se pot utiliza şi transformări<br />

deasemănareneunitare(neortogonale). Într-adevăr,folo<strong>si</strong>ndtransformărigaus<strong>si</strong>ene<br />

elementare stabilizate M k P k , k = 2 : n − 1, unde M k este o matrice inferior triunghiulară<br />

elementară, iar P k este o matrice de permutare elementară (v. cap.2),<br />

determinate corespunzător pentru anularea elementelor k +1 : n din coloana k −1<br />

a matricei curente, matricea<br />

H = M n−1 P n−1 ...M 2 P 2 AP 2 M −1<br />

2 ...P n−1 M −1<br />

n−1<br />

va fi superior Hessenberg. O implementare îngrijită a secvenţei de transformări de<br />

mai sus conduce la un efort de calcul redus la jumătate faţa de cel necesar pentru<br />

execuţia algoritmului HQ. Detaliile algoritmului fac obiectul exerciţiului 4.50.<br />

Anumite reţineri existente în utilizarea acestei soluţii sunt datorate unor po<strong>si</strong>bile<br />

instabilităţi numerice (a căror existenţă este dovedită teoretic, dar care apar foarte<br />

rar în practică) precum şi unor dificultăţi în analiza erorilor, dificultăţi induse de<br />

faptul că transformările neunitare (neortogonale) nu conservă condiţionarea <strong>valorilor</strong><br />

<strong>proprii</strong>.<br />

✸<br />

4.4.2 Faza iterativă a algoritmului QR<br />

Etapa iterativă a algoritmului QR utilizează, într-o manieră implicită, metodele<br />

puterii şi puterii inverse pentru reducerea unei matrice la forma Schur (reală). Deşi<br />

implementările profe<strong>si</strong>onale ale algoritmului QR utilizează, în exclu<strong>si</strong>vitate, din<br />

motive de eficienţă calculatorie (în cazul matricelor reale), varianta cu deplasare<br />

implicită cu pas dublu, din raţiuni pedagogice vom prezenta şi variantele cu deplasare<br />

explicită.

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

Saved successfully!

Ooh no, something went wrong!