Skip to main content
`Ctrl`+`K`

# DSPEP

Dense Polynomial Eigenvalue Problem.

## Notes

The problem is expressed as \(P(\lambda)x = 0\), where \(P(\cdot)\) is a polynomial matrix of degree \(d\). The eigenvalues \(\lambda\) are the arguments returned by `DSSolve()`.

The degree of the polynomial, \(d\), can be set with `DSPEPSetDegree()`, with the first \(d+1\) extra matrices of the `DS` storing the polynomial coefficient. By default, the polynomial is expressed in the monomial basis, but a different basis can be used by setting the corresponding coefficients via `DSPEPSetCoefficients()`.

The problem is solved via linearization, by building a pencil \((A,B)\) of size \(d\cdot n\) and solving the corresponding `GNHEP`.

## Used DS matrices

- `DS_MAT_E0` to `DS_MAT_E9` - coefficients of the matrix polynomial

- `DS_MAT_X` - right eigenvectors

- `DS_MAT_Y` - left eigenvectors

- `DS_MAT_A` - (workspace) first matrix of the linearization

- `DS_MAT_B` - (workspace) second matrix of the linearization

- `DS_MAT_W` - (workspace) right eigenvectors of the linearization

- `DS_MAT_U` - (workspace) left eigenvectors of the linearization

## Implemented methods

- 0 - QZ iteration on the linearization (`_ggev`)

## See Also

DS: Direct Solver (or Dense System), `DSCreate()`, `DSSetType()`, `DSType`, `DSPEPSetDegree()`, `DSPEPSetCoefficients()`

## Level

beginner

## Location

src/sys/classes/ds/impls/pep/dspep.c

Index of all DS routines Table of Contents for all manual pages Index of all manual pages