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 t
By 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 := simplify
is a symbolic way of representing any root of
the discriminant.
Later, we will use a routine that needs to normalize
with the routine 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 t0
Now 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 )^2
Ah, it does. We can thus express the eigenvalues
of A exactly in terms of
, then.
> 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 193407246611958016
This 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
.
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:
]