Main Content

polyeig

Polynomial eigenvalue problem

Description

e = polyeig(A0,A1,...,Ap) returns the eigenvalues for the polynomial eigenvalue problem of degree p.

example

[X,e] = polyeig(A0,A1,...,Ap) also returns matrix X, of size n-by-n*p, whose columns are the eigenvectors.

example

[X,e,s] = polyeig(A0,A1,...,Ap) additionally returns vector s, of length p*n, containing condition numbers for the eigenvalues. At least one of A0 and Ap must be nonsingular. Large condition numbers imply that the problem is close to a problem with repeated eigenvalues.

example

Examples

collapse all

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:

Md2ydt2+Cdydt+Ky=f(t)

This equation applies to a broad range of oscillating systems, including a dynamic mass-spring system or RLC electronic network. The fundamental solution is y(t)=xeλt, so both λ and x must solve the quadratic eigenvalue problem (QEP),

(Mλ2+Cλ+K)x=0

Create coefficient matrices M, C, and 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 polyeig.

[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-13 ×

   -0.0133
   -0.0466
    0.1465
   -0.0622

Input Arguments

collapse all

Square coefficient matrices, specified as separate arguments. The matrices must all have the same order, n.

Data Types: single | double
Complex Number Support: Yes

Output Arguments

collapse all

Eigenvalues, returned as a vector.

Eigenvectors, returned in the columns of a matrix. The first eigenvector is X(:,1), the second is X(:,2), and so on.

Condition numbers, returned as a vector. The condition numbers in s correspond to similarly located eigenvalues in e. Large condition numbers indicate that the problem is close to having repeated eigenvalues.

More About

collapse all

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,

(A0+λA1++λPAp)x=0,

where the polynomial degree, p, is a nonnegative integer, and A0,A1,...Ap are square coefficient matrices of order n.

The most common form is the quadratic polynomial eigenvalue problem, which is

(A2λ2+A1λ+A0)x=0.

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 2n right and left eigenvectors. In cases where there are more than n eigenvectors, the eigenvectors do not form a linearly independent set. See [1] and [2] for more detailed information about the quadratic eigenvalue problem.

Tips

  • polyeig handles the following simplified 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 = 0, or polyeig(a0,a1,...,ap), is the standard polynomial problem, roots([ap ... a1 a0]), where a0,a1,...,ap are scalars.

Algorithms

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

The computed solutions might not exist or be unique, and can also be computationally inaccurate. If both A0 and Ap are singular matrices, then the problem might be ill-posed. If only one of A0 and Ap is singular, then some of the eigenvalues might be 0 or Inf.

Scaling A0,A1,...,Ap to have norm(Ai) roughly equal to 1 might increase the accuracy of polyeig. In general, however, this improved accuracy is not achievable. (See Tisseur [3] for details).

References

[1] Dedieu, Jean-Pierre, and Francoise Tisseur. “Perturbation theory for homogeneous polynomial eigenvalue problems.” Linear Algebra Appl. Vol. 358, 2003, pp. 71–94.

[2] Tisseur, Francoise, and Karl Meerbergen. “The quadratic eigenvalue problem.” SIAM Rev. Vol. 43, Number 2, 2001, pp. 235–286.

[3] Francoise Tisseur. “Backward error and condition of polynomial eigenvalue problems.” Linear Algebra Appl. Vol. 309, 2000, pp. 339–361.

Extended Capabilities

Version History

Introduced before R2006a