Products & Services Solutions Academia Support User Community Company

Learn more about MATLAB   

Eigenvalues

Eigenvalue Decomposition

An eigenvalue and eigenvector of a square matrix A are, respectively, a scalar λ and a nonzero vector v that satisfy

A times upsilon = lambda times upsilon

With the eigenvalues on the diagonal of a diagonal matrix Λ and the corresponding eigenvectors forming the columns of a matrix V, you have

A times V equals V times lambda

If V is nonsingular, this becomes the eigenvalue decomposition

A = V times lambda times inverse of V

A good example is provided by the coefficient matrix of the ordinary differential equation in the previous section:

A =
     0    -6    -1
     6     2   -16
    -5    20   -10

The statement

lambda = eig(A)

produces a column vector containing the eigenvalues. For this matrix, the eigenvalues are complex:

lambda =
     -3.0710         
     -2.4645+17.6008i
     -2.4645-17.6008i

The real part of each of the eigenvalues is negative, so eλt approaches zero as t increases. The nonzero imaginary part of two of the eigenvalues, ±ω, contributes the oscillatory component, sin(ωt), to the solution of the differential equation.

With two output arguments, eig computes the eigenvectors and stores the eigenvalues in a diagonal matrix:

[V,D] = eig(A)

V =
  -0.8326         0.2003 - 0.1394i   0.2003 + 0.1394i
  -0.3553        -0.2110 - 0.6447i  -0.2110 + 0.6447i
  -0.4248        -0.6930            -0.6930          

D =
  -3.0710                 0                 0         
        0           -2.4645+17.6008i        0         
        0                 0           -2.4645-17.6008i

The first eigenvector is real and the other two vectors are complex conjugates of each other. All three vectors are normalized to have Euclidean length, norm(v,2), equal to one.

The matrix V*D*inv(V), which can be written more succinctly as V*D/V, is within roundoff error of A. And, inv(V)*A*V, or V\A*V, is within roundoff error of D.

Multiple Eigenvalues

Some matrices do not have an eigenvector decomposition. These matrices are not diagonalizable. For example:

A = [ 6    12    19
     -9   -20   -33
      4     9    15 ]

For this matrix

[V,D] = eig(A)

produces

V =

   -0.4741   -0.4082   -0.4082
    0.8127    0.8165    0.8165
   -0.3386   -0.4082   -0.4082

D =

   -1.0000         0         0
         0    1.0000         0
         0         0    1.0000

There is a double eigenvalue at λ = 1. The second and third columns of V are the same. For this matrix, a full set of linearly independent eigenvectors does not exist.

Schur Decomposition

The MATLAB advanced matrix computations do not require eigenvalue decompositions. They are based, instead, on the Schur decomposition

A = U times S times U to the T power

where U is an orthogonal matrix and S is a block upper triangular matrix with 1-by-1 and 2-by-2 blocks on the diagonal. The eigenvalues are revealed by the diagonal elements and blocks of S, while the columns of U provide a basis with much better numerical properties than a set of eigenvectors. The Schur decomposition of this defective example is

[U,S] = schur(A)

U =
   -0.4741    0.6648    0.5774
    0.8127    0.0782    0.5774
   -0.3386   -0.7430    0.5774

S =
   -1.0000   20.7846   -44.6948
         0    1.0000    -0.6096
         0         0     1.0000

The double eigenvalue is contained in the lower 2-by-2 block of S.

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS