Jordan Canonical Form - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Math Apps : Algebra and Geometry : Matrices : MathApps/JordanCanonicalForm

Jordan Canonical Form

Main Concept



A Jordan Block is defined to be a square matrix of the form:



for some scalar l.


For example, choosing l = , click to display a   Jordan block below.

Note: For simplicity, lambda can only be chosen to be an integer, otherwise it will not be displayed.  


A Jordan Matrix is a matrix that has Jordan Blocks on its diagonal and the rest of the entries equal to 0:




where the colored regions are the Jordan Blocks of the matrix. Futhermore, note that the λ__n values in each Jordan block need not to be all equal.


Any square matrix M is similar to a Jordan matrix  J, which is called the Jordan Canonical Form of M. For M, There exists an invertible Q such that:

M = Q · J · Q1


As we can observe, J is upper triangular and almost diagonal, from this we know that M and J have the same:




Eigenvalues with the same multiplicities




Rank and nullity


Eigenspace dimension for each eigenvalue


As such, the calculations for these common features are simplified by working with the Jordan Canonical Form of M instead of M.

Procedure: Finding the Jordan Canonical Form

First, enter the matrix you wish to reduce to Jordan Canonical Form below and click the "Set Matrix" button:



M =





Step 1: Eigenvalues and Multiplicities

We will calculate the eigenvalues of the matrix by finding the matrix's characteristic polynomial.
Thus, we solve:  

The characteristic polynomial for the matrix is:  

This gives eigenvalues  with multiplicities of , where the left side of each equation is the eigenvalue and the right side of each equation is the multiplicity of that eigenvalue.

Step 2: Eigenvalues

Here is the explanation of the step that is applied to each specific eigenvalue.

Mathematical Process for Finding the Jordan Canonical Form

Let the eigenvalues of the matrix M be λ1, ..., λ__n with multiplicities m__1, m__2, ..., m__n. The process is the following:


Fix l = λi and compute d1 = Nullity(M - λ).
Note that this is step is basically computing the dimension of the eigenspace of M.  Furthermore, d1 is the number of Jordan blocks that our Jordan matrix will have.


Compute d2 = NullityM  λI2. Here, d2- d1 is the number of Jordan blocks of size at least 2x2 that our Jordan matrix will have.


Compute d3 = NullityM  λI3. Here, d3- d2 is the number of Jordan blocks of size at least 3x3 that our Jordan matrix will have.


Continue doing the same process until d__k = m__i.


Put together logically the quantities of Jordan blocks that were obtained in the previous steps to obtain the number and size of Jordan blocks of the given eigenvalue.


Note: There are many ways to calculate the nullity requested above:



One of the simplest ways to do so is by transforming the matrix into row echelon form and counting the number of rows at the end that have all entries equal to zero.


Another way to do it is by solving the equation M  λIkv = 0 for v, finding a basis for the set of solutions and then counting the number of elements this basis has.


For a computational example using the entered matrix, see the below section.


Some Maple Help for this Step

Choose the eigenvalue l =  that you wish to calculate for in this step. Below, you can walk through the process by calculating it for k and increasing k by one in each iteration. You can start at 1 by pressing the "Reset Step" button and calculate for the next degree by pressing the "Calculate for k + 1" button.


The current degree of M  λIk is k =

The eigenvalue has multiplicity m = .


Write M  λIk in Reduced Row Echelon Form.


Count the number of rows with all entries equal to zero which will give NullityM  λIk. In this case, the dimension is .


Calculate dimM  λIk  dimM  λIk1. In this case, we get  so there is(are)  Jordan block(s) of size at least  by .


Since is   then we  repeat this step for k + 1 .  

Step 3: Repeat


This step is computing Step 2 for each of the eigenvalues. After computing Step 2 for each of the eigenvalues and logically considering all obtained number of Jordan blocks. We now write the Jordan Blocks diagonally in our new matrix by putting the Jordan blocks of each eigenvalue adjacent to one another.


Putting everything together the Jordan matrix of M is .
Furthermore, the transition matrix Q in this case is .

Diagonalizable Matrices

Note that, if the characteristic polynomial of the matrix splits and each eigenvalue has multiplicity 1 then the Jordan Canonical Form of the matrix will be a diagonal matrix.


This is because on the first iteration of step 2 applied to eigenvalue l, we would have that the nullity of the eigenspace is 1 and the multiplicity for the root is 1.

Therefore, no more steps are needed and so the only Jordan block for the eigenvalue will be the 1 x 1 matrix: [l].

More MathApps