Next: Complex Generalized Hermitian-Definite Eigensystems, Previous: Real Nonsymmetric Matrices, Up: Eigensystems [Index]

The real generalized symmetric-definite eigenvalue problem is to find
eigenvalues *\lambda* and eigenvectors *x* such that

A x = \lambda B x

where *A* and *B* are symmetric matrices, and *B* is
positive-definite. This problem reduces to the standard symmetric
eigenvalue problem by applying the Cholesky decomposition to *B*:

A x = \lambda B x A x = \lambda L L^t x ( L^{-1} A L^{-t} ) L^t x = \lambda L^t x

Therefore, the problem becomes *C y = \lambda y* where
*C = L^{-1} A L^{-t}*
is symmetric, and *y = L^t x*. The standard
symmetric eigensolver can be applied to the matrix *C*.
The resulting eigenvectors are backtransformed to find the
vectors of the original problem. The eigenvalues and eigenvectors
of the generalized symmetric-definite eigenproblem are always real.

- Function:
*gsl_eigen_gensymm_workspace ****gsl_eigen_gensymm_alloc***(const size_t*`n`) -
This function allocates a workspace for computing eigenvalues of

`n`-by-`n`real generalized symmetric-definite eigensystems. The size of the workspace is*O(2n)*.

- Function:
*void***gsl_eigen_gensymm_free***(gsl_eigen_gensymm_workspace **`w`) This function frees the memory associated with the workspace

`w`.

- Function:
*int***gsl_eigen_gensymm***(gsl_matrix **`A`, gsl_matrix *`B`, gsl_vector *`eval`, gsl_eigen_gensymm_workspace *`w`) This function computes the eigenvalues of the real generalized symmetric-definite matrix pair (

`A`,`B`), and stores them in`eval`, using the method outlined above. On output,`B`contains its Cholesky decomposition and`A`is destroyed.

- Function:
*gsl_eigen_gensymmv_workspace ****gsl_eigen_gensymmv_alloc***(const size_t*`n`) -
This function allocates a workspace for computing eigenvalues and eigenvectors of

`n`-by-`n`real generalized symmetric-definite eigensystems. The size of the workspace is*O(4n)*.

- Function:
*void***gsl_eigen_gensymmv_free***(gsl_eigen_gensymmv_workspace **`w`) This function frees the memory associated with the workspace

`w`.

- Function:
*int***gsl_eigen_gensymmv***(gsl_matrix **`A`, gsl_matrix *`B`, gsl_vector *`eval`, gsl_matrix *`evec`, gsl_eigen_gensymmv_workspace *`w`) This function computes the eigenvalues and eigenvectors of the real generalized symmetric-definite matrix pair (

`A`,`B`), and stores them in`eval`and`evec`respectively. The computed eigenvectors are normalized to have unit magnitude. On output,`B`contains its Cholesky decomposition and`A`is destroyed.