An eigenvalue and eigenvector of a square matrix A are, respectively, a scalar λ and a nonzero vector υ that satisfy
Aυ = λυ.
With the eigenvalues on the diagonal of a diagonal matrix Λ and the corresponding eigenvectors forming the columns of a matrix V, you have
AV = VΛ.
If V is nonsingular, this becomes the eigenvalue decomposition
A = VΛV^{–1}.
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 round-off error
of A
. And, inv(V)*A*V
, or V\A*V
,
is within round-off error of D
.
Some matrices do not have an eigenvector decomposition. These matrices are not diagonalizable. For example:
A = [ 1 -2 1 0 1 4 0 0 3 ]
For this matrix
[V,D] = eig(A)
produces
V = 1.0000 1.0000 -0.5571 0 0.0000 0.7428 0 0 0.3714 D = 1 0 0 0 1 0 0 0 3
There is a double eigenvalue at λ =
1. The first and second columns of V
are the same.
For this matrix, a full set of linearly independent eigenvectors does
not exist.
The MATLAB^{®} advanced matrix computations do not require eigenvalue decompositions. They are based, instead, on the Schur decomposition
A = USU′.
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
.
Note:
If |
LAPACK is a library of routines that provides fast, robust algorithms for numerical linear algebra and matrix computations. Since the year 2000, linear algebra functions and matrix operations in MATLAB are built on LAPACK, and they continue to benefit from the performance and accuracy of its routines.