<A NAME=Jordansymbolic>
<TITLE>Jordansymbolic</TITLE></A>
<b><a href=r37_idx.html>INDEX</a></b><p><p>
<B>JORDANSYMBOLIC</B> _ _ _ _ _ _ _ _ _ _ _ _ <B>operator</B><P>
<P>
The operator <em>jordansymbolic</em> computes the Jordan normal form J
of a
<A HREF=r37_0345.html>matrix</A> (A say). It returns {J,L,P,P^-1} where
P*J*P^-1 = A. L = {ll,mm} where mm is a name and ll is a list of
irreducible factors of p(mm).
<P>
<P>
<P> <H3>
syntax: </H3>
<em>jordansymbolic</em>(<matrix>)
<P>
<P>
<matrix> :- a square
<A HREF=r37_0345.html>matrix</A>.
<P>
<P>
<P>
Field Extensions:
<P>
<P>
By default, calculations are performed in the rational numbers. To
extend this field the
<A HREF=r37_0634.html>arnum</A> package can be used. The package must
first be loaded by load_package arnum;. The field can now be extended
by using the defpoly command. For example, defpoly sqrt2**2-2; will
extend the field to include the square root of 2 (now defined by sqrt2).
See
<A HREF=r37_0626.html>frobenius</A> for an example.
<P>
<P>
Modular Arithmetic:
<P>
<P>
<em>jordansymbolic</em>can also be calculated in a modular base. To do this
first type on modular;. Then setmod p; (where p is a prime) will set
the modular base of calculation to p. By further typing on balanced_mod
the answer will appear using a symmetric modular representation. See
<A HREF=r37_0627.html>ratjordan</A> for an example.
<P>
<P>
<P> <H3>
examples: </H3>
<P><PRE><TT>
a := mat((1,y),(2,5*y));
[1 y ]
a := [ ]
[2 5*y]
jordansymbolic(a);
{
[lambda11 0 ]
[ ]
[ 0 lambda12]
,
2
lambda - 5*lambda*y - lambda + 3*y,lambda,
[lambda11 - 5*y lambda12 - 5*y]
[ ]
[ 2 2 ]
,
[ 2*lambda11 - 5*y - 1 5*lambda11*y - lambda11 - y + 1 ]
[---------------------- ---------------------------------]
[ 2 2 ]
[ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ]
[ ]
[ 2*lambda12 - 5*y - 1 5*lambda12*y - lambda12 - y + 1 ]
[---------------------- ---------------------------------]
[ 2 2 ]
[ 25*y - 2*y + 1 2*(25*y - 2*y + 1) ]
}
</TT></PRE><P>