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