MathGroup Archive 2009

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

Search the Archive

Eigensystem[hermitianMatrix] sometimes returns non-orthonormal

  • To: mathgroup at
  • Subject: [mg96805] Eigensystem[hermitianMatrix] sometimes returns non-orthonormal
  • From: Yen Lee Loh <yloh at>
  • Date: Wed, 25 Feb 2009 04:04:51 -0500 (EST)

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 ( ), but
that post is corrupted!  (Surely Wolfram isn't resorting to censorship?)  I
was hoping that in Mathematica 7 I would be able to write something like

    Eigensystem[H, Method->"LAPACK-ZHEEVR"]


    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., ).
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

  • Prev by Date: Re: no message from Minimize[] on a weird function(x^x) !?!
  • Next by Date: Re: Coolest Mathematica trick you'll see this month guaranteed
  • Previous by thread: Re: Series of Percentage Changes
  • Next by thread: Re: Eigensystem[hermitianMatrix] sometimes returns