You are on page 1of 5

Algorithm for Finding a Jordan Basis

Jimmy Broomfield

This paper provides an algorithm that computes a Jordan basis of an n×n matrix.
There are alternative ways of creating a Jordan basis that don’t always produce a
Jordan basis, and we will see a second method at the end of this paper that falls into
this category.
Let us begin by describing the first algorithm that we propose to study in this
paper. Given an n × n matrix A, the following will steps will lead to a Jordan basis
for A.

1. Find the distinct eigenvalues, λ1 , . . . , λk , and denote their algebraic multiplici-


ties by a1 , . . . , ak .

2. Find the geometric multiplicities of each distinct eigenvalue, λi , and denote


them by gi .

3. For each distinct eigenvalue, λ, with algebraic multiplicity a and geometric


multiplicity g, we define the following subspaces of Rn .

Vλ1 = Vλ = ker A − λI)


Vλ2 = ker (A − λI)2 )
..
.
Vλr = ker (A − λI)r )

Where r is the smallest integer such that dimVλr = a.

4. Find a basis for each Vλm and define the following numbers

d1 = dimVλ1
d2 = dimVλ2 − dimVλ1
..
.
dr = dimVλr − dimVλr−1
Finding a Jordan Basis 2

5. Make the following diagram

... Vλ2

d1

... Vλ2
r

d2
..
.

...
Vλr

dr

and fill these boxes using the subsequent steps.

6. Start at the bottom most row and choose dr linearly independent, non-zero
vectors in Vλr that aren’t elements of Vλr−1 . Call these vectors

v1 , . . . , vdr .

For each of these vectors, make a Jordan chain of index r by successively apply-
ing A − λI. That is, if v1 goes in the bottom left box, then in the first column
we would have the following vectors:

(A − λI)r−1 v1
(A − λI)r−2 v1
..
.
(A − λI)v1
v1

and the other columns corresponding to v2 , . . . , vdr would likewise be filled out.

7. Once you complete a row, move on to the next row and complete the same
procedure until all boxes are filled.

8. Repeat this process for each eigenvalue.

9. Your complete list of all generalized eigenvectors is a Jordan basis.

This algorithm can have many steps depending on the matrix, but it will assuredly
produce a Jordan basis. The following example illustrates these steps.

2
Finding a Jordan Basis 3

Example 1. Let  
0 −2 0
B = 2 4 0 
2 2 2
To begin, we find that the characteristic polynomial of the above matrix is:

PB (λ) = (2 − λ)3

This means that there is only one distinct eigenvalue, and it has algebraic multiplicity
equal to three. Next we have to determine the geometric multiplicity of this eigenvalue.
In doing so, we find that a basis for ker(B − 2I) is given by:
    
 −1 0 
 1  , 0
0 1
 

This shows that the geometric multiplicity of λ = 2 is two, and it means that λ = 2
has one defect. Next we determine the Vλi ’s. By our work above, we already have
a basis for V21 , so next we need to find V22 . In this case, our work is easy because
(B − 2I)2 = 0. Therefore
V22 = ker(0) = R3
Since the algebraic multiplicity of λ = 2 is three, and the dimension of V22 is three,
we will stop with V22 .
With the information that we now have, we see that the di ’s are given by:

d1 = dimV21 = 2
d2 = dimV22 − dimV21 = 3 − 2 = 1

Drawing the box diagram that was described in the algorithm, we get the following:

This means that we should start by finding a vector v1 in R3 that doesn’t belong to
ker(B − 2I). An easy choice for this is the vector
 
1
v1 = 1

1

Applying (B − 2λ) to v1 , we get


 
−4
v2 =  4 
4

3
Finding a Jordan Basis 4

This gives us a Jordan chain of index two. To obtain a final vector for our Jordan
basis, we need to pick a vector in Vλ1 that is linearly independent to {v1 , v2 }. An easy
choice is  
0
v3 = 0

1
Therefore, our full Jordan basis is
     
1 −4 0
1 ,  4  , 0
1 4 1

The next topic that we will cover is a second algorithm that is much quicker. This
can only be implemented when the dimension of a λ-eigenspace is one.

1. Find the distinct eigenvalues, λ1 , . . . , λk , and denote their algebraic multiplici-


ties by a1 , . . . , ak .

2. Find the geometric multiplicities of each distinct eigenvalue, λi , and denote


them by gi .

3. For the defective eigenvalues with dim(Vλ1 ) = 1, find a Jordan chain of length
ai by setting v1 to be a corresponding eigenvector. Next take vi+1 to be the
solution to the following linear system:

(A − λI)x = vi , for 1 ≤ i ≤ ai

4. For all of the eigenvalues that don’t fall into this category, follow the algorithm
outlined above.

To illustrate the benefits of this algorithm, let’s work an example.

Example 2. Let  
1 1 1
A = 0 1 1
0 0 1
To begin, we find the characteristic polynomial of the above matrix to be

PA (λ) = (1 − λ)3 )

This means that there is only one distinct eigenvalue, and it has algebraic multiplicity
three. Next we will determine its geometric multiplicity by finding a basis for ker(A −
I). A simple computation finds that this space is spanned by the vector e1 = (1, 0, 0)T .
Since dimV11 = 1, we can use our algorithm. To find our second vector in the Jordan
chain, we solve the following system:

4
Finding a Jordan Basis 5

   
0 1 1 1
0 0 1 x = 0
0 0 0 0
The general solution to this system is:
   
1 0
x = s 0 + 1
  
0 0
Splitting off the part involving v1 , we set
 
0
v2 = 1
0

To find our Third vector in the Jordan chain, we solve the following system:
   
0 1 1 0
0 0 1 x = 1
0 0 0 0
The general solution to this system is:
   
1 0
x = s 0 + −1
  
0 1
Splitting off the part involving v1 , we set
 
0
v3 = −1
1

Therefore our Jordan basis is


      
 1 0 0 
0 , 1 , −1
0 0 1
 

You might also like