MATLAB Function Reference |

**Syntax**

**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**

polyder | polyfit |