complex eigenvalues
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have a square symmetric matrix (5,5) with complex entries,the output eigenvalues when I use eig(T) are all complex .I want to determine the smallest negative eigenvalue.I don't know how ,any one can help.
2 Commenti
Risposta accettata
Walter Roberson
il 5 Dic 2011
"smallest" is not defined for complex numbers. "negative" is not defined for complex numbers either.
You can compare real parts, or you can compare imaginary parts, or you can compare magnitudes.
[vals, idx] = min(real(E));
E(idx)
or
[vals, idx] = min(imag(E));
E(idx)
or
[vals, idx] = min(abs(E));
E(idx)
8 Commenti
Walter Roberson
il 6 Dic 2011
hypot has been in versions since sometime in 2008 or before; I have not traced it further.
When I read Loren's blog about hypot, I see in the comments that abs() is also implemented robustly, so there would be no advantage to using hypot() over using abs(), so you might as well not bother.
http://blogs.mathworks.com/loren/2008/02/07/why-hypot/
If you are looking for the eigenvalue with the smallest magnitude (such as min(abs(E)) would find), then you could instead use
gamma = eigs(T,1,'sm');
which will find just the one eigenvalue. Smallest magnitude could be positive or negative for the real or imaginary components, though -- the eigenvalue closest to 0. There is unfortunately no way with eigs to pick out just the complex eigenvalue with the real component or imaginary component closest to negative infinity: you will have to use one of the above min() forms for that.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Linear Algebra in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!