Matrix similarity transformations introduce small imaginary eigenvalue components

17 次查看(过去 30 天)
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 个评论
David Goodmanson
David Goodmanson 2018-10-2
编辑:David Goodmanson 2018-10-2
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
Anish Potnis 2018-10-2
编辑:Anish Potnis 2018-10-2
Hey, thanks for the response. I understood that eigenvalues are preserved under similarity transformations, I just sort of boiled my problem down to help me understand conceptually what exactly the issue is with the numerical side of things. I'm doing a bunch of other kinds of transformations in my code, but I wanted to understand a simplified example first.

请先登录,再进行评论。

采纳的回答

Christine Tobler
Christine Tobler 2018-10-2
If you know the matrix A is supposed to be symmetric, I'd say symmetrize A, and then symmetrize B again, because Q*A*Q' will introduce a small numerical error and not be exactly symmetrical.
Although if you can directly transform the eigenvalues as David suggest, that would probably be best. It depends on whether the matrix A is meant to be symmetric, I'd say.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by