Processing math: 100%
Skip to main content

Section B.5 Triangular block form

Subsection B.5.1 Matrix and eigenvalues

Here we will use Sage to carry out the calculations in Section 30.2.

First let's load our matrix into Sage.

This is a 7×7 matrix.

Eigenvalues.

Determine the eigenvalues.

So we have an eigenvalue λ1=−1 of algebraic multiplicity m1=3, and another eigenvalue λ2=3 of algebraic multiplicity m1=4.

Subsection B.5.2 Analysis of λ1

For λ1=−1, the eigensubspaces are null spaces of powers of (−1)I−A, so let's form that matrix.

Compute a basis of the eigenspace.

Only one parameter is required (for x7), so dimE−1(A)=1 and we can span this space with the vector p1=(0,0,0,0,0,0,1).

Notice that Ap1=−p1, as expected.

Since the algebraic multiplicity of this eigenvalue is m1=3, we need to continue with generalized eigenvectors until we hit dimension 3.

Extend to a basis for the second generalized eigensubspace.

Continue on to the generalized eigensubspace of degree 2. To do this, we analyze the null space of C2=((−1)I−A)2.

We need two parameters (for x6 and x7), so dimE2−1(A)=2, and can be spanned by the vectors

(1,0,0,0,0,1,0),(0,0,0,0,0,0,1).

That second vector is already our basis vector from E1−1(A), so take p2=(1,0,0,0,0,1,0).

Notice that ((−1)I−A)p2 is a multiple of p1, so ((−1)I−A)p2 is an eigenvector, as desired.

We still don't have dimension equal to algebraic multiplicity, so continue.

Extend to a basis for the third generalized eigensubspace.

Now we move on to analyzing the null space of C3 (where C=(−1)I−A).

Now we need three parameters, so finally dimE3−1(A)=m1=3. Assigning parameters to x5,x6,x7 leads to basis vectors

(1,−1,0,−1,1,0,0),(1,0,0,0,0,1,0),(0,0,0,0,0,0,1).

Again, the last two are actually already our basis for E2−1(A), so set p3=(1,−1,0,−1,1,0,0).

Notice that Cp3=−2p1−p2, so that Cp3 lies in E2−1(A), as desired.

Subsection B.5.3 Analysis of λ2

For λ2=3, the eigensubspaces are null spaces of powers of 3I−A, so let's form that matrix.

Compute a basis of the eigenspace.

Three parameters are required, so dimE3(A)=3 and we are already almost up to our target multiplicity of m2=4. Assign parameters to x5,x6,x7, leading to basis vectors

q1=(0,0,1,1,1,0,0),q2=(0,1,0,0,0,1,0),q3=(1,0,0,0,0,0,1).

Notice that Aqj=3q3, as expected.

Since the algebraic multiplicity of this eigenvalue is m2=4, we need to continue with generalized eigenvectors until we hit dimension 4.

Extend to a basis for the second generalized eigensubspace.

Continue on to the generalized eigensubspace of degree 2. This should be our last step for this eigenvalue, as our dimension must increase past the eigenspace dimension (which was 3), but can't increase past the algebraic multiplicity (which is m2=4). The second generalized eigensubspace E23(A) is the null space of C2=(3I−A)2.

Now we need four parameters, as expected. Assigning parameters to x4,x5,x6,x7 leads to basis vectors

(0,0,0,1,0,0,0),(0,0,1,0,1,0,0),(0,1,0,0,0,1,0),(1,0,0,0,0,0,1).

The last two vectors are already in our basis for E3(A). The first two vectors can be combined to give our other basis vector for E3(A), so that indicates that either one would be independent from our current basis for E3(A). Let's choose the simplest one of the two.

Notice that

(3I−A)q4=q1+q3,

so (3I−A)q4 is an eigenvector, as desired.

Since we are now at dimE23(A)=m2=4, our analysis of this eigenvalue is complete.

Subsection B.5.4 The transition matrix and the triangular block form matrix

We now have a basis for each of the generalized eigenspaces G−1(A) and G3(A), with each of these bases built up one step at a time by extending a basis for one generalized eigensubspace Ekλj(A) to a basis for the next generalized eigensubspace Ek+1λj(A). Now let's create our transition matrix P.

And now compute the form matrix directly.

It worked! Notice the that there is a m1×m1 (that is, 3×3) scalar-triangular block with the eigenvalue λ1=−1 repeated down the diagonal, and a m2×m2 (that is, 4×4) scalar-triangular block with the eigenvalue λ2=3 repeated down the diagonal. We can extract these blocks using Python-ic list comprehension.

We can also use the idea in Subsection 26.4.2 to compute P−1AP by row reduction: we augment P with the result of AP, and then reducing the P part on the left to identity simultaneously applies P−1 to the AP part on the right.

[PAP]row→reduce[IP−1(AP)]

As expected, there's our triangular-block form matrix on the right. We can use Python-ic list comprehension to extract it, if we like.

And again, we can extract the blocks.