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

MathGroup Archive 2009

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

Search the Archive

Re: Eigensystem sometimes returns non-orthonormal

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96864] Re: [mg96805] Eigensystem sometimes returns non-orthonormal
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Thu, 26 Feb 2009 07:57:13 -0500 (EST)
  • References: <200902250904.EAA15732@smc.vnet.net>

Yen Lee Loh wrote:
> Dear Mathematica users,
> 
> In Mathematica 7.0.0 (for Linux), calling Eigenvectors[H] or Eigensystem[H]
> for a numerical Hermitian matrix H sometimes returns eigenvectors that are
> not orthonormal.
> This happens when some eigenvalues are degenerate.  (I can supply example
> code that illustrates the problem, if necessary.)
> 
> This is not really a bug -- the documentation for Eigensystem[] doesn't make
> any guarantees of orthonormality -- but nevertheless it is an annoying part
> of Mathematica's design.
> This issue has been raised 11 years ago (
> http://forums.wolfram.com/mathgroup/archive/1998/Mar/msg00418.html ), but
> that post is corrupted!  (Surely Wolfram isn't resorting to censorship?)

A non-corrupted version is located at the URL below.

http://forums.wolfram.com/mathgroup/archive/1998/Mar/msg00425.html

Note that the behavior in that report was of a more serious nature than 
that which you describe (eigenvectors sometimes had complex values).


> I
> was hoping that in Mathematica 7 I would be able to write something like
> 
>     Eigensystem[H, Method->"LAPACK-ZHEEVR"]
> 
> or
> 
>     Eigensystem[H, OrthonormalizeEigenvectors->True]
> 
> but no such options seem to exist.  One workaround is to apply
> Orthogonalize[] to the matrix of eigenvectors, but the documentation for
> Orthogonalize[] doesn't guarantee that the orthonormalization will only
> occur within the "degenerate subspace".  So one has to resort to complicated
> fixes (e.g., http://arxiv.org/pdf/hep-ph/9607313 ).
> Does anyone have a simpler solution?  (For example, is there an easy way to
> call LAPACK'S ZHEEVR routine, which guarantees orthornormal eigenvectors,
> from Mathematica?)
> 
> Thanks a lot.
> Yen Lee Loh

If you apply QRDecomposition to the eigenvectors, then I believe the Q 
part will provide what you are looking for.


Daniel Lichtblau
Wolfram Research




  • Prev by Date: Experimental Mathematica debugger
  • Next by Date: Re: Difference Fit vs. Correlation
  • Previous by thread: Re: Eigensystem[hermitianMatrix] sometimes returns
  • Next by thread: Re: Eigensystem sometimes returns non-orthonormal