
<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>(&lt;matrix&gt;) 
<P>
<P>
&lt;matrix&gt; :- 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>