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.

300 CAPITOLUL 4. VALORI ŞI VECTORI PROPRII<br />

Comentarii. Sintaxa de apel a algoritmului 4.20 este<br />

X = SYLVc(A,B,C).<br />

Complexitateaalgoritmuluieste O(n 3 ). Evident, efortulde calculcel maiimportant<br />

se consumă în execuţia instrucţiunilor 1 şi 2 de aducere la forma Schur a matricelor<br />

A, B şi de acumulare a transformărilor (dar nici efortul pentru rezolvarea ecuaţiei<br />

Sylvester triunghiulare şi efectuarea produselor matriceale nu poate fi neglijat).<br />

Dacă numim, ad-hoc, metoda prezentată mai sus varianta Schur-Schur, din motive<br />

de a<strong>si</strong>gurare a unei eficienţe maxime, se impune analiza alternativelor în care se<br />

renunţă la aducerea la forma Schur a ambelor matrice A şi B. Astfel, în aşa numita<br />

variantă Hessenberg-Schur numai matricea B este adusă la forma Schur apărând<br />

următoarele diferenţe în raport cu algoritmul 4.20 de mai sus:<br />

– în instrucţiunea 1 matricea A este adusă, printr-un algoritm de calcul direct<br />

(neiterativ) – algoritmul HQc – la forma superior Hessenberg; în acest fel se evită<br />

faza iterativă a algoritmului QR1;<br />

– în compensaţie, la instrucţiunea 3, în loc de rezolvarea unei ecuaţii Sylvester<br />

triunghiulare se rezolvă o ecuaţie Sylvester Hessenberg-triunghiulară, ceea ce presupune<br />

rezolvarea a n <strong>si</strong>steme de tip Hessenberg, incluzând eliminare gaus<strong>si</strong>ană cu<br />

eventuală pivotare.<br />

Evaluările existente apreciază că varianta Hessenberg-Schur este cu 30 până la<br />

80 procente mai eficientă. Scrierea explicită a algoritmului Hessenberg-Schur este<br />

propusă cititorului ca exerciţiu.<br />

Evident, matricele S şi T pot suprascrie matricele A şi, respectiv, B după cum<br />

matricea Y a rezultatelor intermediare şi soluţia X pot suprascrie matricea C dar<br />

s-a preferat scrierea de mai sus pentru claritatea prezentării algoritmului. ✸<br />

În cazul uzual, în care datele de intrare, i.e. matricele A, B şi C, sunt reale<br />

soluţia X este reală şi toate calculele se pot efectua într-o aritmetică reală. Pentru<br />

aceasta, în locul formei Schur complexe se utilizează reducerea la forma Schur reală.<br />

Ne propunem mai întâi să rezolvăm ecuaţia Sylvester<br />

SY −YT = C, (4.215)<br />

în care matricele S ∈ IR m×m şi T ∈ IR n×n au structuri cva<strong>si</strong>-superior triunghiulare<br />

(i.e. cu blocurile diagonale de ordin cel mult 2)<br />

⎡ ⎤ ⎡ ⎤<br />

S 11 S 12 ··· S 1p T 11 T 12 ··· T 1q<br />

0 S 22 ··· S 2p<br />

S = ⎢ . .<br />

⎣<br />

.<br />

. . ..<br />

. ⎥<br />

. ⎦ , T = 0 T 22 ··· T 2q<br />

⎢ . .<br />

⎣<br />

.<br />

. . ..<br />

. ⎥<br />

. ⎦ , (4.216)<br />

0 0 ··· S pp 0 0 ··· T qq<br />

iar C ∈ IR m×n . Algoritmul corespunzător acestei <strong>si</strong>tuaţii structurale este cunoscut<br />

sub denumirea de algoritmul Bartels-Stewart [4].<br />

Procedura urmăreşte cu fidelitate ideile din algoritmul 4.19, cu <strong>si</strong>ngura deosebire<br />

că în locul unor scalari apar blocuri i × j cu i,j ∈ {1,2}. Partiţionăm<br />

matricea necunoscutelor Y = [Y ij ] i=1:p,j=1:q şi matricea termenilor liberi C =<br />

= [C ij ] i=1:p,j=1:q conform cu partiţiile (4.216) ale matricelor S şi T.

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

Saved successfully!

Ooh no, something went wrong!