Lapack contains a driver routine to solve dense generalized Hermitian positive definite eigenvalue problems of the form $Ax=\lambda Bx$, where $A$ and $B$ are both Hermitian, and $B$ is positive definite. I am wondering if there is a method (either code or a modification of zhegv) when $B$ is indefinite (specifically, $B$ will almost certainly be non-singular). I know that the driver routine first performs a Cholesky decomposition of positive definite $B$, and transforms it into a standard eigenvalue problem, but does this still work when $B$ is indefinite? I would rather use a specialized method instead of the fully general solver because I want the realness of the eigenvalues and orthogonality relations for the eigenvectors to be guaranteed.


1 Answer 1


When $B$ is indefinite, the eigenvalues may be complex, and there is little advantage exploiting the symmetry. Instead, one generally uses the QZ algorithm.

Edit: If you know a priori that all your eigenvalues are real, it is probably because you can establish a priori that some linear combination $C=sA+tB$ is positive definite. In this case, you should consider your problem with either $A$ or $B$ replaced by $C$. It has the same eigenvectors, and the eigenvalues are related by a Moebius transform.

  • $\begingroup$ I see now that the eigenvalues can be complex, but how would I go about enforcing the $B$-orthogonality? I think it's true that for two eigenvectors $v_i$ and $v_j$, $v_i^H B v_j = \pm \delta_{ij}$, and I would like to ensure this is true for the computed eigenvectors. $\endgroup$
    – Victor Liu
    Aug 15, 2012 at 17:20
  • $\begingroup$ One can indeed enforce $B$-orthogonality for eigenvectors to distinct eigenvalues. One way of doing it is to employ complex arithmetic, and a version of the Cholesky factorization for complex symmetric matrices. But this is numerically unstable. Reduction to a real symmetric form is impossible if there are complex eigenvalues. $\endgroup$ Aug 15, 2012 at 18:09
  • $\begingroup$ Reduction to a real nonsymmetric form can be done by simply multiplying on the left with $B^{-1}$. This is stable iff $B$ is well-conditioned. If $B$ is ill-conditioned, I don't know a stable direct method except for QZ. $\endgroup$ Aug 15, 2012 at 18:11
  • $\begingroup$ In my particular case, all the eigenvalues happen to be real. Could you clarify how you would do this orthogonalization? I'm not sure what you mean by reduction to a real symmetric form. I also see that eigenvectors of distinct eigenvalues are $B$ orthogonal, but I would like to orthogonalize those corresponding to degenerate eigenvalues as well. $\endgroup$
    – Victor Liu
    Aug 16, 2012 at 7:19
  • $\begingroup$ The definite case $B=R^TR$ replaces $A$ by $R^{-T}AR^{-1}$ and $B$ by $I$. This can be done in the indefinite case with a complex $R$ but not with a real $R$. But this gives a complex symmetric $A$. $\endgroup$ Aug 16, 2012 at 7:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.