eig return complex values
이전 댓글 표시
Hello,
I'm trying to find the eigenvalues and eigenvectors of an invertible matrix. The eig function returns me complex values.
But the matrix is invertible: I invert it on Pascal.
How to explain and especially how to solve this problem please?
The matrix I am trying to invert is the inv(C)*A matrix, from the attached files.
Thanks,
Michael
댓글 수: 5
Matt J
2022년 1월 22일
Invertible matrices can have complex eigenvalues. That in itself is not a sign of a problem.
Michael cohen
2022년 1월 22일
A diagonalizable matrix can also be invertible with complex eigenvalues. A simple example is C=1i*eye(N).
In any case, I do not see the complex eigenvalues for the matrix you've provided.
load(websave('t','https://www.mathworks.com/matlabcentral/answers/uploaded_files/869735/matrix_C.mat'))
isreal(eig(C))
Michael cohen
2022년 1월 22일
편집: Michael cohen
2022년 1월 22일
채택된 답변
추가 답변 (1개)
It turns out that B=C\A does have real eigenvalues in this particular case, but floating point errors approximations produce a small imaginary part that can be ignored.
load matrices
E=eig(C\A);
I=norm(imag(E))/norm(real(E))
So just discard the imaginary values,
E=real(E);
댓글 수: 2
Michael cohen
2022년 1월 23일
Matt J
2022년 1월 23일
You 're welcome but please Accept-click one of the answers.
카테고리
도움말 센터 및 File Exchange에서 Linear Algebra에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
