# polyeig

## Purpose

Solve polynomial eigenvalue problem.

## Synopsis

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

## Description

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

where `p` is an integer from 1 to 10. The input matrices `A0`, `A1`,...`Ap` are size `p+1`-by-`p+1` matrices, all of order `n`. The output matrix `X`, of size `n`-by-`n`*`p`, contains the eigenvectors in its columns. The output vector `e`, of length `n`*`p`, contains the eigenvalues.

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`).

`polyeig` uses the QZ factorization method 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, as well as the EISPACK Guide.

## See Also

    eig, qz

(c) Copyright 1994 by The MathWorks, Inc.