For some special problems, efficiency or insight can be gained from working with symbolic representations of the eigenvalues, perhaps using the characteristic polynomial as an aid to symbolic manipulation. This helps particularly when the matrices depend on parameters, and the influence of the parameter needs to be studied.

The following example arose from a USENET discussion started by Cleve Moler, and is now part of the example files for the Symbolic Toolbox by which Matlab can call Maple.

Consider for example the `gallery(3)' matrix from Matlab:

The eigenvalues of this matrix are particularly sensitive to
perturbation. In particular, if we choose the matrix **E** as

(notice that **E** is roughly the same size as **A**) and form the
perturbed matrix **A+tE** where **t** is a scalar, we get

If we form the characteristic polynomial of this (symbolic) matrix (this is reasonable because the degree is only three), we get

This polynomial will have multiple roots when its discriminant
with respect to **x** is zero (for a polynomial of degree three
this is a precise characterization --- see [6] for
more details). We find the discriminant in Maple via the
`discrim`

command:

> d := discrim(p,x); 2 3 4 d := 4 - 5910096 t + 1403772863224 t - 477857003880091920 t + 242563185060 tBy using the

`realroot`

command we can easily show that this
discriminant has two real roots, one of them (call it )
between and
.
We thus see that this very small perturbation changes the eigenvalues
of **A** (which are **1**, **2**, and **3**) into a set with a multiple root.
To verify this symbolically, we can find a symbolic expression for
and substitute it for **t**, and try to factor the characteristic
polynomial (this will be easy if there is a multiple root). The
following Maple session shows how to do this. Note that the formula
for in terms of radicals that is available since the discriminant
is a degree four polynomial in **t** is * not* used. However, it
is difficult to work with nested radicals.
Instead, we use the RootOf notation. This notation is discussed
further in the next section.

> alias(t0= RootOf(d,t)); I, t0 > Normalizer := simplify; Normalizer := simplifyis a symbolic way of representing

`simplify`

, to deal
effectively with the `RootOf`

construct.
> pt0 := subs(t=t0,p); 3 2 2 pt0 := x - 6 x + 11 x - t0 x + 492512 t0 x - 6 - 1221271 t0Now

`pt0`

ought to have a multiple root.
> pf := factor(pt0); pf := 1/3617330840862075776271364437466707007583905327874048 ( 96703623305979008 x + 19716665846146478987085 t0 - 283005565738990253 2 3 - 21733243079681277776111127375 t0 + 11031929259781122453495 t0 ) ( 193407246611958016 x - 297216174096883795 - 19716762549769784966093 t0 2 3 + 21733243079681277776111127375 t0 - 11031929259781122453495 t0 )^2Ah, it does. We can thus express the eigenvalues of

> lambda := [solve(pf,x)]; lambda := [ 11031929259781122453495 3 1792424167831498089735 283005565738990253 - ----------------------- t0 - ---------------------- t0 + ------------------ 96703623305979008 8791238482361728 96703623305979008 21733243079681277776111127375 2 + ----------------------------- t0 , 96703623305979008 297216174096883795 1792432959069980451463 ------------------ + ---------------------- t0 193407246611958016 17582476964723456 21733243079681277776111127375 2 11031929259781122453495 3 - ----------------------------- t0 + ----------------------- t0 , 193407246611958016 193407246611958016 297216174096883795 1792432959069980451463 ------------------ + ---------------------- t0 193407246611958016 17582476964723456 21733243079681277776111127375 2 11031929259781122453495 3 - ----------------------------- t0 + ----------------------- t0 ] 193407246611958016 193407246611958016This ought to have only two distinct roots, and (which is the multiple root).

Now we have symbolic expressions for the eigenvalues in terms of the (computable) critical value of the parameter . We can thus evaluate those eigenvalues to as many places as we wish. It is an easy exercise to compute symbolic expressions for the corresponding eigenvectors, in terms of .

** Exercises**

- Compute the eigenvectors for the above example, and show that the Jordan Canonical Form is nontrivial.
- Plot the paths of the eigenvalues of
**A + tE**in the complex plane as functions of**t**. This plot is a*bifurcation diagram*since it shows how the characteristics of the matrix change (bifurcate) as**t**passes through the critical parameter . - The matrix
**E**from the example was chosen as where**x**and**y**were right and left eigenvectors of the matrix**A**corresponding to the smallest eigenvalue, . Use Maple to verify this by finding the right and left eigenvectors of**A**. Form two other perturbation matrices and from similar outer products of the eigenvectors of the eigenvalues and . Find the minimum norm of such that the perturbed matrix has a*triple*eigenvalue. [Ans: ]

Wed Jan 31 11:33:59 EST 1996