21.08.2013 Views

Notes on the Jordan canonical form Introduction - wiki - University of ...

Notes on the Jordan canonical form Introduction - wiki - University of ...

Notes on the Jordan canonical form Introduction - wiki - University of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MAT 240, <strong>University</strong> <strong>of</strong> Tor<strong>on</strong>to, notes by Marco Gualtieri<br />

Introducti<strong>on</strong><br />

<str<strong>on</strong>g>Notes</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>Jordan</strong> can<strong>on</strong>ical <strong>form</strong><br />

Let V be a finite-dimensi<strong>on</strong>al vector space over a field F, and let T : V −→ V be a linear<br />

operator such that<br />

(T − a1) k1 · · · (T − am) km = 0, (1)<br />

for a1, . . . , am distinct numbers in F. The purpose <strong>of</strong> this note is to explain how to find a<br />

is block diag<strong>on</strong>al, where each block looks like<br />

<strong>Jordan</strong> basis, i.e. a basis β for V such that [T] β<br />

β<br />

⎡<br />

a 1<br />

⎢<br />

⎣<br />

a 1<br />

. ..<br />

⎤<br />

⎥<br />

. ..<br />

⎥<br />

a 1⎦<br />

a<br />

The matrix above is called a <strong>Jordan</strong> block with eigenvalue a. Note that a basis (v1, . . . , vl)<br />

giving rise to a <strong>Jordan</strong> block is “cyclic” in a certain sense: from <strong>the</strong> shape <strong>of</strong> <strong>the</strong> matrix, we<br />

see that if we apply T − a to vi, we obtain vi−1. We call vl a “cyclic” vector, since <strong>the</strong> rest <strong>of</strong><br />

<strong>the</strong> basis can be generated from vl, via vi = (T − a) l−ivl. The first thing we must do to simplify our problem is to apply <strong>the</strong> decompositi<strong>on</strong> <strong>the</strong>orem,<br />

which tells us that <strong>the</strong> null space <strong>of</strong> m i=1 (T − ai) ki, which is all <strong>of</strong> V by (1), is a direct<br />

sum <strong>of</strong> <strong>the</strong> generalized1 eigenspaces null(T − ai) ki. In o<strong>the</strong>r words, we have a direct sum<br />

decompositi<strong>on</strong><br />

V = V(a1) ⊕ · · · ⊕ V(am), (3)<br />

where V(ai) = null(T − ai) ki. So, we can focus <strong>on</strong> finding a <strong>Jordan</strong> basis for each <strong>of</strong> <strong>the</strong><br />

V(ai) separately. Then by putting <strong>the</strong> bases toge<strong>the</strong>r we obtain a <strong>Jordan</strong> basis for V. For<br />

this reas<strong>on</strong>, we may assume from now <strong>on</strong> that T is a linear operator <strong>on</strong> a vector space V(a)<br />

and that (T − a) k = 0, and we are trying to find a basis in which T has diag<strong>on</strong>al blocks <strong>of</strong> <strong>the</strong><br />

<strong>form</strong> (2).<br />

1 Recall that v is a generalized eigenvector with eigenvalue a when <strong>the</strong>re exists some i with (T − a) i v = 0.<br />

1<br />

(2)


What’s <strong>the</strong> idea?<br />

To better illustrate <strong>the</strong> kind <strong>of</strong> problem we are trying to solve, here are two linear operators,<br />

each with an 8-dimensi<strong>on</strong>al generalized eigenspace V(a):<br />

⎡<br />

a 1<br />

⎤<br />

⎡<br />

a 1<br />

⎤<br />

⎢<br />

T1 = ⎢<br />

⎣<br />

a 1<br />

a<br />

a 1<br />

a<br />

a 1<br />

a<br />

⎥<br />

⎦<br />

⎢<br />

T2 = ⎢<br />

⎣<br />

a 1<br />

a 1<br />

a<br />

a 1<br />

a<br />

a<br />

⎥<br />

⎦<br />

a<br />

a<br />

So, T1 has <strong>Jordan</strong> blocks <strong>of</strong> size (3, 2, 2, 1), while T2 has blocks <strong>of</strong> size (4, 2, 1, 1). They happen<br />

to have <strong>the</strong> same number <strong>of</strong> blocks, but <strong>the</strong> size <strong>of</strong> <strong>the</strong> blocks is different. In general, we<br />

could have blocks with sizes making up any partiti<strong>on</strong> <strong>of</strong> 8, for example 8 = 3 + 2 + 1 + 1 + 1.<br />

Given T, we would like to figure out how many <strong>Jordan</strong> blocks <strong>the</strong>re are, what <strong>the</strong>ir sizes<br />

are, and how to find <strong>the</strong> actual basis giving this <strong>Jordan</strong> <strong>form</strong>. The idea is simple:<br />

The key is <strong>the</strong> sequence <strong>of</strong> null spaces null(T − a) i , i = 1, . . . , k.<br />

It is c<strong>on</strong>venient to define ti = dim null(T − a) i .<br />

To see how this works, let’s assume that T has a <strong>Jordan</strong> <strong>form</strong>, but we d<strong>on</strong>’t know what it is.<br />

• The dimensi<strong>on</strong> <strong>of</strong> <strong>the</strong> eigenspace null(T − a) tells you exactly how many <strong>Jordan</strong> blocks<br />

<strong>the</strong>re are, since each <strong>Jordan</strong> block has a 1-dimensi<strong>on</strong>al eigenspace. In o<strong>the</strong>r words, t1 is<br />

<strong>the</strong> number <strong>of</strong> <strong>Jordan</strong> blocks.<br />

• If T has <strong>on</strong>ly <strong>Jordan</strong> blocks <strong>of</strong> size 1, <strong>the</strong>n t2 = dim null(T − a) 2 is <strong>the</strong> same as t1. But in<br />

general, t2 will be bigger than t1, because each <strong>Jordan</strong> block <strong>of</strong> size > 1 will c<strong>on</strong>tribute<br />

+1. Therefore t2 − t1 tells us <strong>the</strong> number <strong>of</strong> <strong>Jordan</strong> blocks <strong>of</strong> size > 1, and we can<br />

c<strong>on</strong>clude that <strong>the</strong> number <strong>of</strong> <strong>Jordan</strong> blocks <strong>of</strong> size 1 is t1 − (t2 − t1).<br />

• In general, tk+1 − tk is <strong>the</strong> number <strong>of</strong> <strong>Jordan</strong> blocks <strong>of</strong> size > k, and so <strong>the</strong> number <strong>of</strong><br />

<strong>Jordan</strong> blocks <strong>of</strong> size exactly k is (tk − tk−1) − (tk+1 − tk) = 2tk − tk−1 − tk+1.<br />

We can phrase <strong>the</strong> above discussi<strong>on</strong> in a very clever way 2 as follows:<br />

Propositi<strong>on</strong> 1. Let t = (t0, t1, . . .), where ti = dim null(T − a) i . Then T has si <strong>Jordan</strong> blocks <strong>of</strong><br />

size i, where s = (s0, s1, . . .) is given by<br />

s = −R(L − 1) 2 t,<br />

where R, L are <strong>the</strong> right and left shift operators <strong>on</strong> sequences.<br />

For example, for T1 as above, we have t = (0, 4, 7, 8, 8, . . .). Hence we have s = (0, 1, 2, 1, 0, 0, . . .)<br />

indicating <strong>on</strong>e block <strong>of</strong> size 1, two <strong>of</strong> size 2, and <strong>on</strong>e <strong>of</strong> size 3, as is indeed <strong>the</strong> case. For T2 we<br />

have t = (0, 4, 6, 7, 8, 8, . . .), so that s = (0, 2, 1, 0, 1, 0, 0, . . .), yielding two <strong>Jordan</strong> blocks <strong>of</strong> size<br />

1, <strong>on</strong>e <strong>of</strong> size 2, and <strong>on</strong>e <strong>of</strong> size 4.<br />

2 I learned this from Pr<strong>of</strong>. John Labute, I’d like to know if appears elsewhere.<br />

2


How to find a <strong>Jordan</strong> basis<br />

In this secti<strong>on</strong> we will give an algorithm for finding a <strong>Jordan</strong> basis, i.e. a basis β for V(a)<br />

such that [T] β<br />

β is in <strong>Jordan</strong> <strong>form</strong>. Beware: <strong>the</strong>re are many possible choices <strong>of</strong> <strong>Jordan</strong> basis,<br />

even though <strong>the</strong> <strong>Jordan</strong> <strong>form</strong> will always c<strong>on</strong>sist <strong>of</strong> <strong>the</strong> same number <strong>of</strong> <strong>Jordan</strong> blocks <strong>of</strong><br />

each size. For example, <strong>the</strong> identity operator is in <strong>Jordan</strong> <strong>form</strong> in any basis.<br />

To make our life easier, we would like to introduce <strong>the</strong> following terminology:<br />

Definiti<strong>on</strong> 1. Let U ⊂ V be a linear subspace. Then we say that <strong>the</strong> list <strong>of</strong> vectors (v1, . . . , vl) in V is<br />

“linearly independent mod U” when <br />

i αivi ∈ U implies αi = 0 for all i. We say that (v1, . . . , vl)<br />

is a “basis <strong>of</strong> V mod U” when it is linearly independent mod U and V = U + span(v1, . . . , vl).<br />

It is easy to find a basis <strong>of</strong> V mod U: simply choose a basis (u1, . . . , uk) for U and extend<br />

it to a basis (u1, . . . , uk, v1, . . . , vl) for V. The vectors (v1, . . . , vl) are <strong>the</strong>n a basis <strong>of</strong> V mod U.<br />

We now give <strong>the</strong> algorithm for finding a <strong>Jordan</strong> basis for V(a). The idea is to find a<br />

cyclic vector for each <strong>Jordan</strong> block, which <strong>the</strong>n generates <strong>the</strong> <strong>Jordan</strong> basis for that block. This<br />

algorithm finds <strong>the</strong> cyclic vectors for <strong>the</strong> largest <strong>Jordan</strong> blocks first, and <strong>the</strong>n proceeds to find<br />

<strong>the</strong> cyclic vectors for <strong>the</strong> smaller blocks.<br />

Step 1: Choose a basis (v 1 k<br />

, . . . , vsk<br />

our cyclic vectors for <strong>the</strong> <strong>Jordan</strong> blocks <strong>of</strong> size k. There are sk = tk − tk−1 <strong>of</strong> <strong>the</strong>m.<br />

k ) <strong>of</strong> V(a) = null(T − a)k mod null(T − a) k−1 . These will be<br />

Step 2: If k = 1, stop. Else, apply T − a to <strong>the</strong> cyclic vectors from <strong>the</strong> previous step, obtaining<br />

(T − a)v i k in null(T − a)k−1 . Then <strong>the</strong> key point is that<br />

((T − a)v 1 k , . . . , (T − a)vsk k ) is linearly independent mod null(T − a)k−2 .<br />

Extend to a basis <strong>of</strong> null(T − a) k−1 mod null(T − a) k−2 , by choosing (v1 k−1 , . . . , vsk−1<br />

k−1 ),<br />

which are <strong>the</strong>n cyclic vectors for <strong>the</strong> <strong>Jordan</strong> blocks <strong>of</strong> size k−1. Since we have extended<br />

a list <strong>of</strong> size sk to reach a length tk−1 −tk−2, <strong>the</strong>re are sk−1 = (tk −tk−1)−(tk−1 −tk−2)<br />

<strong>of</strong> <strong>the</strong>se new cyclic vectors.<br />

Step 3: Repeat Step 2, with k replaced by k − 1.<br />

Once <strong>the</strong> algorithm terminates, we may arrange <strong>the</strong> chosen basis as follows:<br />

β = (v 1 1 , . . . , vs1<br />

1 , (T−a)v12 , v12 , . . . , (T−a)vs2 2 , vs2<br />

2 , . . . , (T−a)i−1v 1 i , . . . v1i , . . . , (T−a)i−1v si<br />

i<br />

this would put [T] β<br />

β into <strong>Jordan</strong> <strong>form</strong> with blocks <strong>of</strong> increasing size down <strong>the</strong> diag<strong>on</strong>al.<br />

3<br />

, . . . , vsi<br />

i , . . .)


An example<br />

Find a <strong>Jordan</strong> basis for <strong>the</strong> following operator:<br />

⎡<br />

1<br />

⎢<br />

⎢0<br />

⎢<br />

T = ⎢0<br />

⎢<br />

⎣0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

⎤<br />

1<br />

1<br />

⎥<br />

0 ⎥<br />

1⎦<br />

0 0 0 0 1<br />

Clearly <strong>the</strong> <strong>on</strong>ly eigenvalue is 1. Let ɛ = (e1, . . . , e5) be <strong>the</strong> standard basis. First we calculate<br />

null(T − 1) i :<br />

null(T − 1) = span(e1, e2)<br />

null(T − 1) 2 = span(e1, e2, e3, e4)<br />

null(T − 1) 3 = span(e1, e2, e3, e4, e5).<br />

Since t = (0, 2, 4, 5, 5, . . .), we have s = (0, 0, 1, 1, 0, 0, . . .), so we will have a <strong>Jordan</strong> <strong>form</strong> with<br />

a block <strong>of</strong> size 2 and <strong>on</strong>e <strong>of</strong> size 3. The algorithm proceeds as follows:<br />

Step 1: Pick v 1 3 = e5, it will be a cyclic vector for a <strong>Jordan</strong> block <strong>of</strong> size 3.<br />

Step 2: We must extend (T − 1)e5 = e1 + e2 + e4 to a basis <strong>of</strong> null(T − 1) 2 mod null(T − 1). We<br />

can do this by adding v 1 2 = e3. This will be a cyclic vector for a <strong>Jordan</strong> block <strong>of</strong> size 2,<br />

and we are d<strong>on</strong>e.<br />

The <strong>Jordan</strong> basis is<br />

β = ((T − 1)v 1 2 , v1 2 , (T − 1)2 v 1 3 , (T − 1)v1 3 , v1 3 ) = (e1, e3, e2, e1 + e2 + e4, e5).<br />

Therefore, we have that T = PJP−1 , where P = [I] ɛ β and J = [T]β β is <strong>the</strong> <strong>Jordan</strong> <strong>form</strong>. Explicitly<br />

writing P (its columns are <strong>the</strong> <strong>Jordan</strong> basis in terms <strong>of</strong> <strong>the</strong> standard basis), we have<br />

⎡<br />

1<br />

⎢<br />

⎢0<br />

⎢<br />

P = ⎢0<br />

⎢<br />

⎣0<br />

0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

1<br />

0<br />

1<br />

⎤<br />

0<br />

0<br />

⎥<br />

0 ⎥<br />

0⎦<br />

0 0 0 0 1<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!