Computation of left eigenvectors of polyeig
0 件のコメント
回答 (2 件)
Hi @Waqar Ahmed,
You did brought up a good question. To address your query regarding,”The polyeig gives eigenvalues and right eigenvector. How can left eigenvectors be calculated from these”
You can derive left eigenvectors from the right eigenvectors obtained via polyeig in MATLAB by solving associated linear equations. I did review the documentation at the link provided below and it has bunch of quite technical information.
https://www.mathworks.com/help/matlab/ref/polyeig.html
% Define matrices A0 and A1 A0 = [0 1; -1 0]; % Example matrix (rotation matrix) A1 = eye(2); % Identity matrix as A1
% Compute eigenvalues and right eigenvectors [X, e] = polyeig(A0, A1);
% Display the results disp('Eigenvalues:'); disp(e); disp('Right Eigenvectors:'); disp(X);
% Calculate left eigenvectors % Initialize a matrix to hold left eigenvectors Y = zeros(size(X));
% Loop through each eigenvalue and corresponding right eigenvector for i = 1:length(e) % Get the current eigenvalue and right eigenvector lambda = e(i); x = X(:, i);
% Check if the eigenvalue is finite if isfinite(lambda) % Construct the polynomial matrix P(lambda) P_lambda = A0 + lambda * A1;
% Solve for the left eigenvector using the equation Y^T * P(lambda) = 0 % This can be done by finding the null space of P_lambda' left_eigenvector = null(P_lambda');
% Normalize the left eigenvector left_eigenvector = left_eigenvector / norm(left_eigenvector);
% Store the left eigenvector Y(:, i) = left_eigenvector; else warning('Eigenvalue %f is not finite. Skipping left eigenvector computation.', lambda); Y(:, i) = NaN; % Assign NaN if the eigenvalue is not finite end end
% Display the left eigenvectors disp('Left Eigenvectors:'); disp(Y);
Please see attached.
Interpretation of output results
The output indicates:
Eigenvalues
( 0.0000 + 1.0000i ) ( 0.0000 - 1.0000i )
These complex eigenvalues suggest that the system exhibits oscillatory behavior, which is typical for rotation matrices.
Right Eigenvectors
( [0.0000 - 1.0000i, 0.0000 + 1.0000i] ) ( [-1.0000 + 0.0000i, -1.0000 + 0.0000i] )
The right eigenvectors correspond to the eigenvalues and indicate the directions in which the transformation defined by ( A_0 ) acts.
The left eigenvectors are displayed, yielding:
Left Eigenvectors
( [-0.4639 - 0.5336i, -0.4639 + 0.5336i] ) ( [-0.5336 + 0.4639i, -0.5336 - 0.4639i] )
These left eigenvectors correspond to the right eigenvectors and provide insight into the dual nature of the eigenvalue problem.
So, you can see that the above provided code successfully computes left eigenvectors from the right eigenvectors and eigenvalues derived from the polyeig function.
There are certain things to understand about interpreting left Eigenvectors. They can be particularly useful in various applications, including systems of differential equations and control theory and can be used to analyze controllability and observability of state-space representations, providing deeper insights into system dynamics.However, you have to be aware of numerical stability, when working with eigenvalues and eigenvectors, numerical stability can be a concern, especially for matrices that are nearly singular or ill-conditioned. It’s advisable to validate the results through consistency checks.
If you have further questions or need additional clarification on specific aspects, feel free to ask!
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!