[X,e] = polyeig(A0,A1,...Ap)
[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])
.
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.
eig
,qz
(c) Copyright 1994 by The MathWorks, Inc.