Matrix similarity transformations introduce small imaginary eigenvalue components
Show older comments
So I'm having an issue with numerical precision. To boil my problem down...
Let A = eye(3) + 1e-6*rand(3) (1)
and let eig(A) return all real eigenvalues (empirically, this happens about 80% the time when I run (1)). I then apply a unitary similarity transformation, B = QAQ*. Now, eig(B) has a small imaginary component, which is a problem for my application.
Is it preferable to symmetrize A prior to the similarity transformation, or to symmetrize B after the similarity transformation...?
I'm not familiar with any theorems that relate the real part of a matrix's eigenvalues to the eigenvalues of its symmetrized form.
Any thoughts?
Thanks!
2 Comments
David Goodmanson
on 2 Oct 2018
Edited: David Goodmanson
on 2 Oct 2018
Hi Anish, if the unitary matrix Q is known, can you just skip the eigenvalue calculation on B? The eigenvalues of A and B are identical, and if
[V_A lambda] = eig(A)
then the similar eigenvector matrix for B is
V_B = Q*V_A
(in comparing results, eig(A) and eig(B) may have eigenvalues in different order and their eigenvector matrix columns in the same different order, but that is a bookkeeping detail).
Anish Potnis
on 2 Oct 2018
Edited: Anish Potnis
on 2 Oct 2018
Accepted Answer
More Answers (0)
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!