MathGroup Archive 1993

[Date Index] [Thread Index] [Author Index]

Search the Archive

Eigensystem Misbehavior

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Eigensystem Misbehavior
  • From: Mark E. Kotanchek <mek at guinan.psu.edu>
  • Date: Fri, 8 Oct 93 11:44:17 -0400

Hello,

I've happened across some disturbing (and show-stopping) behavior of Mma 2.2  
running on my NeXTstation. The problem is that the eigenvector decomposition does  
not seem to work! The behavior I expect is verified with MATLAB 3.5 running on a  
Powerbook 170 so unless there is something embarrassingly obvious which I've  
missed, it would appear that Mma is embarrassingly wrong....

        Problems with Mathematica's Eigensystem Function

Given a complex-valued Hermitian matrix, we should have orthogonal eigenvectors and  
real-valued eigenvalues. Here we build a Hermitian matrix and compute its  
eigendecomposition.

In[60]:=
   matrix = Table[Random[] + I Random[],{3},{3}]; (* non-Hermitian *) 

   R = matrix.Conjugate[Transpose[matrix]];         (* Hermitian *)
   {lambda,V} = Eigensystem[R];              (* eigendecomposition *) 

   A = DiagonalMatrix[lambda];   (* diagonal matrix of eigenvalues *) 

   

Now, due to R being Hermitian (complex-conjuate symmetric), the eigenvectors should  
be orthogonal. This, is true in Mma as well as in MATLAB:

In[68]:=
   V.Conjugate[Transpose[V]];
   Conjugate[Transpose[V]].V // Chop // MatrixForm
   

Out[69]//MatrixForm=
   1.   0    0
   

   0    1.   0
   

   0    0    1.
   

However, since the eigenvalues are defined as solving R.V = V.A, this should imply  
that A = V'.R.V where the apostrophe denotes the Hermitian transpose. (Since V'.V =  
V.V' = I where I is the identity matrix.) Alas, it would appear that Mathematica   
has managed to decouple the eigenvalues and eigenvectors since the following  
operation does not yield a diagonal matrix

In[76]:=
   Conjugate[Transpose[V]].R.V //Chop // MatrixForm
   

Out[76]//MatrixForm=
   1.85539             2.32337 - 0.144524 I     -0.963508 -0.317202 I
      

   2.32337 + 0.144524 I     3.06844             -1.24019 - 0.626869 I
   

   -0.963508 + 0.317202 I   -1.24019 + 0.626869 I    0.787197

Now R is clearly Hermitian,

In[73]:=
   R // Chop // MatrixForm
   

Out[73]//MatrixForm=
   1.45597               1.46701 - 0.202553 I    1.72782 - 0.074807 I
   

   1.46701 + 0.202553 I    1.72343              2.04424 + 0.0709862 I
   

   1.72782 + 0.074807 I    2.04424 - 0.0709862 I   2.53162
   


I would be surprised at this late stage if Mathematica couldn't handle a simple  
task like eigenvector decompositions properly; however, from these results, I would  
appear I am too optimistic.

Any ideas as to what's wrong? I sure hope its me!

Mark.
---
Mark Kotanchek
Guidance & Control Dept - 363 ASB
Applied Research Lab/Penn State
P.O. Box 30
State College, PA 16804

e-mail:	mek at guinan.psu.edu (NeXTmail)
TEL:	(814)863-0682
FAX:	(814)863-7843






  • Prev by Date: Integrate memory usage in 1.2 vs. 2.x
  • Next by Date: Integration failure
  • Previous by thread: Integrate memory usage in 1.2 vs. 2.x
  • Next by thread: Re: Eigensystem Misbehavior