Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2007

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

Search the Archive

Re: different eigenvectors

  • To: mathgroup at smc.vnet.net
  • Subject: [mg83910] Re: different eigenvectors
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Tue, 4 Dec 2007 04:24:53 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fj0rjv$per$1@smc.vnet.net>

vicky Al Aisa wrote:

> I am using Eigenvectors function to calculate eigenvectors in
> mathematica 5.2.
> while comparing the results with the eigenvectors (of same matrix)
> computed in another system, i found that both the results are bit different
> with some values having opposite sign and coloumns rearranged.

Note sure what the question, but something tells me that you are unclear 
about eigenvectors non-uniqueness.

Second, for a given eigenvalue you can find infinitely many 
eigenvectors. Indeed, any non-zero scalar multiple of an eigenvector is 
also an eigenvector (for the corresponding eigenvalue of course).

Second, for a given matrix, different CAS may produce the eigenvalues in 
different order, so the corresponding eigenvectors may be in different 
order from one system to another.

Third, for a given matrix, different CAS may compute the eigenvectors in 
different ways. One may look for orthonormal (perpendicular and unitary) 
eigenvectors, while another system may satisfy with just orthogonal 
(perpendicular) eigenvectors.

So, if you want to check the results from one CAS against the results 
from another CAS, first, you must check that the eigenvalues returned by 
both systems are the same (whatever their order) and that the 
corresponding eigenvectors returned by both system are scalar multiple.

Here is an example with a 2 by 2 reflection matrix that illustrates the 
usage of the *Eigensystem* function, which returns the eigenvalues 
followed by the eigenvectors.

In[1]:= m = {{0, 1}, {1, 0}}

Out[1]= {{0, 1}, {1, 0}}

In[2]:= Eigensystem@m

Out[2]= {{-1, 1}, {{-1, 1}, {1, 1}}}

In[3]:= Thread@%

Out[3]= {{-1, {-1, 1}}, {1, {1, 1}}}

In[4]:= (m.Last@# == First@#*Last@#) & /@ %

Out[4]= {True, True}

In[5]:= m.{1, -1} == (-1)*{1, -1}

Out[5]= True

In[6]:= m.(c*{1, -1}) == (-1)*(c*{1, -1})

Out[6]= True

In[7]:= {-1, 1}.{1, 1}

Out[7]= 0

In[8]:= Normalize /@ {{-1, 1}, {1, 1}}

Out[8]= {{-(1/Sqrt[2]), 1/Sqrt[2]}, {1/Sqrt[2], 1/Sqrt[2]}}

Regards,
-- 
Jean-Marc


  • Prev by Date: Notebook programming: SlideShow: emulating bullet at-a-time visibility
  • Next by Date: Re: plotting vectors
  • Previous by thread: Re: different eigenvectors
  • Next by thread: Re: Re: different eigenvectors