eig return complex values

17 visualizaciones (últimos 30 días)
Michael cohen
Michael cohen el 22 de En. de 2022
Comentada: Matt J el 23 de En. de 2022
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 comentarios
Michael cohen
Michael cohen el 22 de En. de 2022
Editada: Michael cohen el 22 de En. de 2022
Thank you, but in fact it is the matrix_invC.A.mat that I try to diagonalize :)
Matt J
Matt J el 22 de En. de 2022
Editada: Matt J el 22 de En. de 2022
That matrix is not symmetric, so there is no reason to think it will have real eigenvalues.

Iniciar sesión para comentar.

Respuesta aceptada

Torsten
Torsten el 22 de En. de 2022
Editada: Torsten el 22 de En. de 2022
Use
E = eig(A,C)
instead of
E = eig(inv(C)*A)
or
E = eig(C\A)
  4 comentarios
Torsten
Torsten el 22 de En. de 2022
Editada: Torsten el 22 de En. de 2022
Although negligible, eig(A,C) produces no imaginary parts.
E = eig(A,C) solves for the lambda-values that satisfy
A*x = lambda*C*x (*)
for a vector x~=0.
If C is invertible, these are the eigenvalues of inv(C)*A (as you can see by multiplying (*) with
inv(C) ).
Michael cohen
Michael cohen el 23 de En. de 2022
Wouah, thank you very much. It’s very clear and allow us to solve our problem 🙏

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 22 de En. de 2022
Editada: Matt J el 22 de En. de 2022
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))
I = 3.3264e-18
So just discard the imaginary values,
E=real(E);
  2 comentarios
Michael cohen
Michael cohen el 23 de En. de 2022
Thank you very much @Matt J for all those explanations !
Matt J
Matt J el 23 de En. de 2022
You 're welcome but please Accept-click one of the answers.

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by