20.07.2013 Views

Software matematic

Software matematic

Software matematic

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.

3.3. Valori s¸i vectori proprii în MATLAB 97<br />

>> poly(F)<br />

ans =<br />

1.0000 -15.0000 55.0000 -55.0000 15.0000 -1.0000<br />

Astfel, det(F −λI) = −λ 5 det(F −λ −1 I).<br />

Funct¸ia condeig calculează numărul de condit¸ionare pentru valori proprii.<br />

Acesta se defines¸te prin<br />

Γ(A) = inf{cond(X) : X −1 AX = diag(λi)}.<br />

Forma c=condeig(A) returnează un vector al numerelor de condit¸ionare ale valorilor<br />

proprii ale lui A. Forma [V,D,s] = condeig(A) este echivalentă cu:<br />

[V,D] = eig(A), s = condeig(A). Un număr de condit¸ionare mare indică<br />

o valoare proprie sensibilă la perturbat¸ii ale matricei. Exemplul următor afis¸ează în<br />

prima linie valorile proprii ale matricei lui Frank de ordinul 6 s¸i în a doua linie numerele<br />

lor de condit¸ionare:<br />

>> A = gallery(’frank’,6);<br />

>> [V,D,s] = condeig(A);<br />

>> [diag(D)’; s’]<br />

ans =<br />

12.9736 5.3832 1.8355 0.5448 0.0771 0.1858<br />

1.3059 1.3561 2.0412 15.3255 43.5212 56.6954<br />

Dăm în continuare câteva informat¸ii despre modul de lucru al funct¸iei eig. Ea<br />

lucrează în mai multe stadii. Întâi, dacă A este nesimetrică, ea echilibrează matricea,<br />

adică, realizează transformări de similaritateA ← Y −1AY , undeY este o permutare<br />

a unei matrice diagonale aleasă astfel încât să facă liniile s¸i coloanele luiAde norme<br />

aproximativ egale. Motivarea echilibrării este aceea că poate conduce la un calcul mai<br />

precis al vectorilor s¸i valorilor proprii. Totus¸i, uneori echilibrarea nu este necesară<br />

s¸i poate fi inhibată cu eig(A,’nobalance’) (a se vedea doc eig pentru un<br />

exemplu).<br />

După echilibrare, eig reduceAla forma Hessenberg superioară (sau tridiagonală<br />

dacă A este hermitiană). Forma Hessenberg se poate calcula cu H = hess(A) sau<br />

[Q,H] = hess(A). Ultima formă dă s¸i matricea unitară prin care se face transformarea.<br />

Comanda T = schur(A) sau [Q,T] = schur(A) produce descompunerea<br />

Schur a lui A reală sau complexă, după cum A este o matrice reală sau complexă.<br />

Descompunerea Schur complexă a unei matrice reale se poate obt¸ine cu schur(A,<br />

’complex’).<br />

MATLAB poate rezolva s¸i probleme de valori proprii generalizate, adică probleme<br />

de forma: fiind date două matrice pătratice de ordinul n,As¸iB, să se găsească<br />

scalarii λ s¸i vectorii x = 0 astfel încât Ax = λBx. Valorile proprii generalizate se<br />

pot calcula cu e = eig(A,B), iar [V,D] = eig(A,B) returnează o matrice

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

Saved successfully!

Ooh no, something went wrong!