This section is concerned with the solution of the generalized eigenvalue problems , , and , where A and B are real symmetric or complex Hermitian and B is positive definite. Each of these problems can be reduced to a standard symmetric eigenvalue problem, using a Cholesky factorization of B as either B=LL^{T} or B=U^{T}U (LL^{H} or U^{H}U in the Hermitian case). In the case , if A and B are banded then this may also be exploited to get a faster algorithm.
With B = LL^{T}, we have
Table 2.13 summarizes how each of the three types of problem may be reduced to standard form , and how the eigenvectors z of the original problem may be recovered from the eigenvectors y of the reduced problem. The table applies to real problems; for complex problems, transposed matrices must be replaced by conjugate-transposes.
Type of | Factorization | Reduction | Recovery of | |
problem | of B | eigenvectors | ||
1. | B = LL^{T} | C = L^{-1} A L^{-T} | z = L^{-T} y | |
B = U^{T}U | C = U^{-T} A U^{-1} | z = U^{-1} y | ||
2. | B = LL^{T} | C = L^{T} A L | z = L^{-T} y | |
B = U^{T}U | C = U A U^{T} | z = U^{-1} y | ||
3. | B = LL^{T} | C = L^{T} A L | z = L y | |
B = U^{T}U | C = U A U^{T} | z = U^{T} y |
Given A and a Cholesky factorization of B, the routines xyyGST overwrite A with the matrix C of the corresponding standard problem (see Table 2.14). This may then be solved using the routines described in subsection 2.4.4. No special routines are needed to recover the eigenvectors z of the generalized problem from the eigenvectors y of the standard problem, because these computations are simple applications of Level 2 or Level 3 BLAS.
If the problem is
and the matrices A and B are banded, the matrix
C as defined above is, in general, full. We can reduce the
problem to a banded standard problem by modifying the definition of C
thus:
A further refinement is possible when A and B
are banded, which halves the amount of work required to form C
(see Wilkinson [104]). Instead
of the standard Cholesky factorization of B as U^{T}
U or L L^{T}, we use a ``split Cholesky''
factorization B = S^{T} S (S^{H} S
if B is complex), where: