MATLAB Function Reference
polyeig

Polynomial eigenvalue problem

Syntax

• ```[X,e] = polyeig(A0,A1,...Ap)
e = polyeig(A0,A1,..,Ap)
```

Description

```[X,e] = polyeig(A0,A1,...Ap) ``` solves the polynomial eigenvalue problem of degree `p`

``` ```

where polynomial degree `p` is a non-negative integer, and `A0,A1,...Ap` are input matrices of order `n`. Output matrix `X`, of size `n`-by-`n*p`, contains eigenvectors in its columns. Output vector `e`, of length `n*p`, contains eigenvalues.

If `lambda` is the `j`th eigenvalue in `e`, and `x` is the `j`th column of eigenvectors in `X`, then `(A0 + lambda*A1 + ... + lambda^p*Ap)*x` is approximately `0`.

```e = polyeig(A0,A1,..,Ap) ``` is a vector of length `n*p` whose elements are the eigenvalues of the polynomial eigenvalue problem.

Remarks

Based on the values of `p` and `n`, `polyeig` handles several special cases:

• `p = 0`, or `polyeig(A)` is the standard eigenvalue problem: `eig(A)`.
• `p = 1`, or `polyeig(A,B)` is the generalized eigenvalue problem: `eig(A,-B)`.
• `n = 1`, or `polyeig(a0`,`a1`,...`ap)` for scalars `a0``a1` ..., `ap` is the standard polynomial problem: `roots([ap` `...` `a1` `a0])`.

Algorithm

If both `A0` and `Ap` are singular, the problem is potentially ill posed; solutions might not exist or they might not be unique. In this case, the computed solutions may be inaccurate. `polyeig` attempts to detect this situation and display an appropriate warning message. If either one, but not both, of `A0` and `Ap` is singular, the problem is well posed but some of the eigenvalues may be zero or infinite (`Inf`).

The `polyeig` function uses the QZ factorization to find intermediate results in the computation of generalized eigenvalues. It uses these intermediate results to determine if the eigenvalues are well-determined. See the descriptions of `eig` and `qz` for more on this.

See Also

`eig`, `qz`

 polyder polyfit