Eigensystem[hermitianMatrix] sometimes returns non-orthonormal
- To: mathgroup at smc.vnet.net
- Subject: [mg96805] Eigensystem[hermitianMatrix] sometimes returns non-orthonormal
- From: Yen Lee Loh <yloh at mps.ohio-state.edu>
- 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 ( http://forums.wolfram.com/mathgroup/archive/1998/Mar/msg00418.html ), 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"] 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
- Follow-Ups:
- Re: Re: Eigensystem sometimes returns
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: Eigensystem sometimes returns non-orthonormal
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Eigensystem[hermitianMatrix] sometimes returns
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: Re: Eigensystem sometimes returns