Cartea de referință pe MATLAB

Problema eigenvalue constă în găsirea de soluții non-triviale ale sistemului de ecuații, care pot fi interpretate ca echivalentul algebric al unui sistem de ecuații diferențiale ordinare în formă explicită Cauchy:







unde A este o matrice pătrată de ordin n;
r este un vector de coloană cu dimensiunea 1x n, numit eigenvector;
Este un scalar, numit valoarea proprie.

Funcția d = eig (A) calculează valorile proprii ale matricei A.

Funcția [R, D] = EIG (A) calculează o matrice diagonală de autovalorile D și matricea de vectori proprii dreapta ai R satisfăcând relația A * R = R * D. Acești vectori sunt normalizate, astfel încât norma fiecăreia dintre ele este egal cu unitatea.

Vectorii proprii stângi pot fi găsiți după cum urmează:
[L, D] = eig (A ');

Matricele valorilor proprii D pentru A și A 'conțin aceleași valori proprii, deși ordinea succesiunii lor poate fi diferită. de vectori proprii stânga ai matricei satisface o relație A „* L = L * D. Pentru sistemele de coordonate găsite indiferent de dreapta și de vectori proprii stânga sistem vector stânga trebuie să fie normalizate astfel încât să respecte termenii L * R = ochiul (n, n).

Funcția [R, D] = cdf2rdf (R, D) convertește ieșirile complexe EIG funcționează valabile, autovalorile complexe sunt convertite în mărimea blocului 2 x 2, iar matricea complexă a vectorilor proprii din dreapta a R este transformată într-o reală a cărei coloane corespunzătoare validă valorile proprii se păstrează, iar cele complexe împărțite în două: [Re (ri) Im (ri)].

Considerăm o matrice de ordin 3 cu o singură valoare reală și o pereche de eigenvalues ​​conjugate complexe și efectuăm calcule folosind matrice complexe.

Folosind funcția cdf2rdf, aceleași calcule pot fi implementate folosind numai matrice reale, ceea ce face posibilă economisirea memoriei.

Funcția [R, D] = eig (A, 'nobalance') calculează valorile proprii și vectorii proprii fără a scala mai întâi matricea. De obicei, scalarea îmbunătățește condiționarea matricei, asigurând o mai mare acuratețe a calculelor. Cu toate acestea, atunci când matricea conține elemente foarte mici care se află în cadrul erorilor de rotunjire, scalarea le poate face comparabile cu alte elemente de matrice, ceea ce poate duce la rezultate incorecte.







Luați în considerare o matrice de ordin 4, care conține elemente comparabile cu erorile de rotunjire.

normă (B * RN-RN * DN) = 0,9957e-015

După cum rezultă din acest exemplu, valorile proprii în ambele cazuri au fost calculate corect, dar ratele reziduale diferă foarte semnificativ, ceea ce indică faptul că vectorii proprii în primul caz nu au fost calculați corect.

Problema eigenvalue generalizată constă în găsirea de soluții netriviale ale sistemului de ecuații

unde A și B sunt matrici pătrate de ordinul n;
r este un vector de coloană cu dimensiunea 1 x n, numit eigenvector generalizat;
Este un scalar, numit eigenvalue generalizată.

Computări folosind matrice complexe:

Calcule folosind numai matrici reale:

Dacă B - matrice non-singular, sistemul poate fi considerat echivalent cu un sistem algebric de ecuații diferențiale ordinare sub forma implicită a Cauchy, iar problema poate fi redusă la problema obișnuită a valorilor proprii

În cazul în care B este o matrice degenerată, sistemul de ecuații este un sistem mixt de ecuații diferențiale și algebrice și trebuie folosite metode speciale pentru rezolvarea ei.

Funcția d = eig (A, B) calculează valorile proprii generalizate ale matricei A.

Funcția [R, D] = EIG (A, B) calculează o matrice diagonală D valori proprii generalizate ale matricei R și generalizate dreapta vectori proprii care satisfac relația A * R = B * R * D. Acești vectori sunt normalizate, astfel încât norma fiecărui este egal cu unul.

Pentru matricile reale, funcția eig (A) folosește următoarele module ale pachetului EISPACK [1-2]: echilibru, balbak, orthes, ortran și hqr2. Modulele de balanță și balbak sunt asociate cu operațiunile de scalare și recuperare; modulul orthes transportă matricea spre forma Hessenberg prin transformări ortogonale similare; modulul ortran își amintește toate conversiile; modulul hqr2 calculează valorile proprii și vectorii de matrice în forma superioară Hessenberg folosind algoritmul QR al Francis și Kublanovskaya [3].

Funcția eig (A, B) folosește alte module din pachetul EISPACK [1-2]: qzhes, qzit, qzval și qzvec, pe baza algoritmului QZ.

Pentru matrici complexe, funcția eig (A) folosește algoritmul QZ, rezolvând problema sub formă de eig (A, ochi (A)).

Dacă nu se găsesc valori de sine în 30 iterații, se emite un mesaj
Soluția nu va converge.
Soluția nu se converge.

1. Smith B. T. Boyle J. M. Dongarra J. J. Garbow B. S. Ikebe Y. Klema V. moler C. B. Matrix Eigensystem Rutinele - EISPACK // Ghid. Note de curs în informatică. Berlin, 1976. Vol. 6.

2. Garbo B. S. Boyle J. M. Dongarra J. J. Moler C. B. Rutine Matrice Eigensystem - Extensia Ghidului EISPACK // Note de curs în informatică. Berlin, 1977. Vol. 51.

3. Wilkinson, Reinsch. Un director de algoritmi în limba ALGOL. Algebra liniară: Per. cu engleza. M. Mashinostroenie, 1976. 390 p.

4. Moler C. B. Stewart G. W. Un algoritm pentru probleme matrice generalizate Eigenvalue // SIAM J. Numer. Anal. N 2. Vol. 10.







Articole similare

Trimiteți-le prietenilor: