next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Kronecker :: rationalNormalForm

rationalNormalForm -- rational normal form of a matrix

Synopsis

Description

This function produces a matrix B in rational normal form, and invertible matrices P and Q such that P*Q = I and B = P*A*Q.
i1 : R = ZZ/101[x]

o1 = R

o1 : PolynomialRing
i2 : M = R^4

      4
o2 = R

o2 : R-module, free
i3 : A = random(M,M)

o3 = | 49  -40 -29 -45 |
     | 37  -1  19  -10 |
     | -16 7   -41 25  |
     | 27  14  32  -39 |

             4       4
o3 : Matrix R  <--- R
i4 : factor det(x*id_M - A)

       4      3      2
o4 = (x  + 32x  - 44x  + 17x + 50)

o4 : Expression of class Product
i5 : (B,P,Q) = rationalNormalForm A

o5 = (| -32 1 0 0 |, | 0 -46 32  -19 |, | 4   -32 49  1 |)
      | 44  0 1 0 |  | 0 47  48  -21 |  | -33 -10 37  0 |
      | -17 0 0 1 |  | 0 -1  -24 -39 |  | -50 -2  -16 0 |
      | -50 0 0 0 |  | 1 20  -42 2   |  | -15 -27 27  0 |

o5 : Sequence
i6 : B - P*A*Q == 0

o6 = true
i7 : P*Q - id_M == 0

o7 = true

Ways to use rationalNormalForm :