Matrix similarity transformations introduce small imaginary eigenvalue components

조회 수: 15 (최근 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