MathGroup Archive 2009

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

Search the Archive

Re: Eigensystem sometimes returns non-orthonormal

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

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 (
> ), but
> that post is corrupted!  (Surely Wolfram isn't resorting to censorship?)

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

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