Polynomial eigenvalue problem
the eigenvalues for the polynomial eigenvalue problem of
e = polyeig(
[ also returns
X, of size
whose columns are the eigenvectors.
s, of length
containing condition numbers for the eigenvalues. At least one of
be nonsingular. Large condition numbers imply that the problem is
close to a problem with repeated eigenvalues.
Quadratic Eigenvalue Problem with Mass, Damping, and Stiffness Matrices
Solve a quadratic eigenvalue problem involving a mass matrix
M, damping matrix
C, and stiffness matrix
K. This quadratic eigenvalue problem arises from the equation of motion:
This equation applies to a broad range of oscillating systems, including a dynamic mass-spring system or RLC electronic network. The fundamental solution is , so both and
x must solve the quadratic eigenvalue problem (QEP),
Create coefficient matrices
K to represent a mass-spring system with four-degrees-of-freedom. The coefficient matrices are all symmetric and positive semidefinite, and
M is a diagonal matrix.
M = diag([3 1 3 1])
M = 4×4 3 0 0 0 0 1 0 0 0 0 3 0 0 0 0 1
C = [0.4 0 -0.3 0; 0 0 0 0; -0.3 0 0.5 -0.2; 0 0 -0.2 0.2]
C = 4×4 0.4000 0 -0.3000 0 0 0 0 0 -0.3000 0 0.5000 -0.2000 0 0 -0.2000 0.2000
K = [-7 2 4 0; 2 -4 2 0; 4 2 -9 3; 0 0 3 -3]
K = 4×4 -7 2 4 0 2 -4 2 0 4 2 -9 3 0 0 3 -3
Solve the QEP for the eigenvalues, eigenvectors, and condition numbers using
[X,e,s] = polyeig(K,C,M)
X = 4×8 0.1828 0.3421 0.3989 -0.0621 0.3890 -0.4143 0.4575 -0.4563 0.3530 -0.9296 0.3330 0.8571 -0.6366 -0.2717 0.4981 -0.4985 -0.5360 -0.0456 -0.1724 -0.3509 -0.3423 0.1666 0.5106 -0.5107 0.7448 0.1295 -0.8368 0.3720 0.5712 0.8525 0.5309 -0.5315
e = 8×1 -2.4498 -2.1536 -1.6248 2.2279 2.0364 1.4752 0.3353 -0.3466
s = 8×1 0.5813 0.8609 1.2232 0.7855 0.7012 1.2922 10.1097 10.0519
Check that the first eigenvalue,
e(1), and first eigenvector,
X(:,1), satisfy the QEP equation. The result is close to, but not exactly, zero.
lambda = e(1); x = X(:,1); (M*lambda^2 + C*lambda + K)*x
ans = 4×1 10-14 × -0.2665 0.2442 0.1776 -0.0222
A0,A1,...,Ap — Square coefficient matrices (as separate arguments)
Square coefficient matrices, specified as separate arguments.
The matrices must all have the same order,
Complex Number Support: Yes
e — Eigenvalues
Eigenvalues, returned as a vector.
X — Eigenvectors
Eigenvectors, returned in the columns of a matrix. The first
X(:,1), the second is
and so on.
s — Condition numbers
Condition numbers, returned as a vector. The condition numbers
s correspond to similarly located eigenvalues
e. Large condition numbers indicate that the
problem is close to having repeated eigenvalues.
Polynomial Eigenvalue Problem
The polynomial eigenvalue problem is a variant of the standard eigenvalue problem, Ax = λx, but instead involves polynomials rather than linear terms.
As with the standard eigenvalue problem, the solution involves finding the eigenvalues and eigenvectors that satisfy the equation,
where the polynomial degree,
p, is a nonnegative
A0,A1,...Ap are square coefficient
matrices of order
The most common form is the quadratic polynomial eigenvalue problem, which is
One major difference between the quadratic eigenvalue problem
and the standard (or generalized) eigenvalue problem is that there
can be up to
2n eigenvalues with up to
and left eigenvectors. In cases where there are more than
the eigenvectors do not form a linearly independent set. See  and  for more detailed information
about the quadratic eigenvalue problem.
polyeighandles the following simplified cases:
p = 0, or
polyeig(A), is the standard eigenvalue problem,
p = 1, or
polyeig(A,B), is the generalized eigenvalue problem,
n = 0, or
polyeig(a0,a1,...,ap), is the standard polynomial problem,
roots([ap ... a1 a0]), where
polyeig function uses the QZ factorization
to find intermediate results in the computation of generalized eigenvalues.
the intermediate results to determine if the eigenvalues are well-determined.
See the descriptions of
qz for more information.
The computed solutions might not exist or be unique, and can
also be computationally inaccurate. If both
singular matrices, then the problem might be ill-posed. If only one
Ap is singular, then
some of the eigenvalues might be
A0,A1,...,Ap to have
1 might increase the accuracy of
In general, however, this improved accuracy is not achievable. (See
Tisseur  for
 Dedieu, Jean-Pierre, and Francoise Tisseur. “Perturbation theory for homogeneous polynomial eigenvalue problems.” Linear Algebra Appl. Vol. 358, 2003, pp. 71–94.
 Tisseur, Francoise, and Karl Meerbergen. “The quadratic eigenvalue problem.” SIAM Rev. Vol. 43, Number 2, 2001, pp. 235–286.
 Francoise Tisseur. “Backward error and condition of polynomial eigenvalue problems.” Linear Algebra Appl. Vol. 309, 2000, pp. 339–361.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The basis of the eigenvectors can be different in the generated code than in MATLAB®. In general, in the eigenvalues output, the eigenvalues for real inputs are not sorted so that complex conjugate pairs are adjacent.
Differences in eigenvectors and ordering of eigenvalues can lead to differences in the condition numbers output.
Code generation does not support sparse matrix inputs for this function.
Run code in the background using MATLAB®
backgroundPool or accelerate code with Parallel Computing Toolbox™
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
Introduced before R2006a