jordan

Jordan normal form (Jordan canonical form)

Description

J = jordan(A) computes the Jordan normal form of the matrix A. Because the Jordan form of a numeric matrix is sensitive to numerical errors, prefer converting numeric input to exact symbolic form.

example

[V,J] = jordan(A) computes the Jordan form J and the similarity transform V. The matrix V contains the generalized eigenvectors of A as columns, such that V\A*V = J.

Examples

collapse all

Compute the Jordan form and the similarity transform for a matrix. Because the Jordan form of a numeric matrix is sensitive to numerical errors, first convert the matrix to symbolic form by using sym.

A = [ 1 -3 -2;
     -1  1 -1;
      2  4  5];
A = sym(A);
[V,J] = jordan(A)
V =
[ -1, 1, -1]
[ -1, 0,  0]
[  2, 0,  1]

J =
[ 2, 1, 0]
[ 0, 2, 0]
[ 0, 0, 3]

Verify that V satisfies the condition V\A*V = J by using isAlways.

cond = J == V\A*V;
isAlways(cond)
ans =
  3×3 logical array
   1   1   1
   1   1   1
   1   1   1

Introduced before R2006a