Eigenwaarden en eigenvectoren beheersen in MATLAB:een praktische gids
Eigenwaarden en eigenvectoren zijn fundamentele concepten in de lineaire algebra en worden veel gebruikt op verschillende gebieden, waaronder natuurkunde, techniek en data-analyse. In MATLAB kunnen deze concepten eenvoudig worden onderzocht en berekend.
Wat is EigenWaarden?
Een eigenwaarde is een scalair, aangeduid als (lambda), geassocieerd met een lineaire transformatie van een vectorruimte. Het vertegenwoordigt de factor waarmee de overeenkomstige eigenvector wordt geschaald tijdens de transformatie.
Wat is EigenVectoren?
Een eigenvector is een vector die niet nul is en die alleen met een scalaire factor verandert wanneer er een lineaire transformatie op wordt toegepast. Met andere woorden, als A een matrix is, is v een eigenvector van A die overeenkomt met de eigenwaarde als −
Gem=v
Hier is A een vierkante matrix, v de eigenvector en de eigenwaarde.
MATLAB-functies
MATLAB biedt ingebouwde functies om eigenwaarden en eigenvectoren te berekenen.
Eig gebruiken
Deze functie berekent de eigenwaarden en eigenvectoren van een matrix.
Syntaxis
e = eig(A) [V,D] = eig(A) [V,D,W] = eig(A) e = eig(A,B) [V,D] = eig(A,B) [V,D,W] = eig(A,B) [___] = eig(A,balanceOption) [___] = eig(A,B,algorithm) [___] = eig(___,outputForm)
Uitleg van de syntaxis
e =eig(A) retourneert een kolomvector met de eigenwaarden van de vierkante matrix A.
[V,D] =eig(A) retourneert een diagonale matrix D met de eigenwaarden van A en een matrix V waarvan de kolommen de overeenkomstige eigenvectoren zijn. Dit betekent dat het vermenigvuldigen van A met V hetzelfde is als het vermenigvuldigen van V met D.
[V,D,W] =eig(A) retourneert ook een volledige matrix W waarvan de kolommen de corresponderende linker eigenvectoren zijn. Dit betekent dat het vermenigvuldigen van de getransponeerde W met A hetzelfde is als het vermenigvuldigen van D met de getransponeerde W.
Het eigenwaardeprobleem gaat over het vinden van oplossingen voor de vergelijking Av =v, waarbij A een vierkante matrix is, v een kolomvector en een scalair is. De waarden die aan deze vergelijking voldoen zijn de eigenwaarden, en de v-waarden die hieraan voldoen zijn de juiste eigenvectoren. De linker eigenvectoren, w, voldoen aan de vergelijking w'A =w'.
e =eig(A,B) retourneert een kolomvector met de gegeneraliseerde eigenwaarden van de vierkante matrices A en B.
[V,D] =eig(A,B) retourneert een diagonale matrix D met de gegeneraliseerde eigenwaarden en een volledige matrix V waarvan de kolommen de overeenkomstige rechter eigenvectoren zijn. Dit betekent dat het vermenigvuldigen van A met V hetzelfde is als het vermenigvuldigen van B, V en D samen.
[V,D,W] =eig(A,B) retourneert ook een volledige matrix W waarvan de kolommen de corresponderende linker eigenvectoren zijn. Dit betekent dat het vermenigvuldigen van de getransponeerde van W met A hetzelfde is als het vermenigvuldigen van D, de getransponeerde van W en B.
Het gegeneraliseerde eigenwaardeprobleem gaat over het vinden van oplossingen voor de vergelijking Av =Bv, waarbij A en B vierkante matrices zijn, v een kolomvector is en een scalair is. De waarden die aan deze vergelijking voldoen zijn de gegeneraliseerde eigenwaarden, en de v-waarden zijn de overeenkomstige juiste eigenvectoren. De linker eigenvectoren, w, voldoen aan de vergelijking w'A =w'B.
[___] =eig(A, balanceOption), waarbij balanceOption "nobalance" is, schakelt de voorlopige balanceringsstap in het algoritme uit. BalanceOption is standaard 'balance', waardoor balanceren wordt ingeschakeld. De eig-functie kan elk van de uitvoerargumenten retourneren die in de voorgaande voorbeelden zijn genoemd.
[___] =eig(A,B,algoritme), waarbij het algoritme "chol" is, gebruikt de Cholesky-factorisatie van B om de gegeneraliseerde eigenwaarden te berekenen. Het standaardalgoritme is afhankelijk van de eigenschappen van A en B, maar is "qz" (QZ-algoritme) wanneer A of B niet symmetrisch zijn.
[___] =eig(___,outputForm) retourneert de eigenwaarden in het formaat dat is opgegeven door outputForm, met behulp van een van de eerder genoemde invoer- of uitvoerargumenten. Stel outputForm in op "vector" om de eigenwaarden in een kolomvector te krijgen, of op "matrix" om ze in een diagonale matrix te krijgen.
Voorbeelden voor Matlab-functie eig()
Hier zijn enkele voorbeelden om te illustreren hoe u het kunt gebruiken −
Voorbeeld 1:eigenwaarden berekenen met e =eig(A)
In MATLAB kun je de eigenwaarden van matrix A vinden met behulp van de eig-functie. Beschouw de volgende code −
% Define the matrix A A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % Compute the eigenvalues e = eig(A)
In het bovenstaande voorbeeld −
- De matrix A is gedefinieerd als een 3x3-matrix met invoer zoals weergegeven.
- De functie eig(A) berekent de eigenwaarden van matrix A.
- Het resultaat van eig(A) wordt opgeslagen in de variabele e, wat een kolomvector is die de eigenwaarden van A bevat.
Wanneer de code wordt berekend, is de uitvoer die we krijgen als volgt −
>> % Define the matrix A A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % Compute the eigenvalues e = eig(A) e = 16.1168 -1.1168 -0.0000
Voorbeeld 2:eigenwaarden en eigenvectoren verkrijgen met [V,D] =eig(A)
In MATLAB kun je de eigenwaarden en eigenvectoren van matrix A vinden met behulp van de eig-functie.
Overweeg de volgende code −
% Define the matrix A
A = [2, -1;
4, 3];
% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);
% Display the eigenvalues
disp('Eigenvalues:');
disp(D);
% Display the eigenvectors
disp('Eigenvectors:');
disp(V);
In bovenstaande code hebben we −
- De matrix A is gedefinieerd als een 2x2 matrix met invoer zoals weergegeven.
- De functie [V, D] =eig(A) berekent zowel de eigenwaarden (D) als de overeenkomstige eigenvectoren (V) van matrix A.
- D is een diagonale matrix die de eigenwaarden van A bevat.
- V is een matrix waarvan de kolommen de corresponderende eigenvectoren zijn.
Wanneer de code wordt uitgevoerd, is de uitvoer die we krijgen als volgt −
>> % Define the matrix A
A = [2, -1;
4, 3];
% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);
% Display the eigenvalues
disp('Eigenvalues:');
disp(D);
% Display the eigenvectors
disp('Eigenvectors:');
disp(V);
Eigenvalues:
2.5000 + 1.9365i 0.0000 + 0.0000i
0.0000 + 0.0000i 2.5000 - 1.9365i
Eigenvectors:
-0.1118 + 0.4330i -0.1118 - 0.4330i
0.8944 + 0.0000i 0.8944 + 0.0000i
MATLAB