MathGroup Archive 2009

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

Search the Archive

Re: Eigensystem[hermitianMatrix] sometimes returns non-orthonormal

  • To: mathgroup at
  • Subject: [mg96878] Re: Eigensystem[hermitianMatrix] sometimes returns non-orthonormal
  • From: Ray Koopman <koopman at>
  • Date: Thu, 26 Feb 2009 07:59:48 -0500 (EST)
  • References: <go31in$fb0$>

On Feb 25, 1:04 am, Yen Lee Loh <y... at> 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!

An uncorrupted version is at

> (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"]
> 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 wa y to
> call LAPACK'S ZHEEVR routine, which guarantees orthornormal eigenvectors,
> from Mathematica?)
> Thanks a lot.
> Yen Lee Loh

  • Prev by Date: Re: Re: Coolest Mathematica trick you'll see this month
  • Next by Date: Re: Series of Percentage Changes
  • Previous by thread: Re: Re: Eigensystem sometimes returns
  • Next by thread: Re: Eigensystem[hermitianMatrix] sometimes returns non-orthonormal