Macaulay2 » Documentation
Packages » Kronecker :: kroneckerNormalForm(Matrix,Matrix)
next | previous | forward | backward | up | index | toc

# kroneckerNormalForm(Matrix,Matrix) -- normal form of a pair of matrices of scalars

- Function: kroneckerNormalForm
- Usage:
    `(A',B',P,Q) = kroneckerNormalForm(A,B)`
- Inputs:
  - A, a matrix
  - B, a matrix
- Optional inputs:
  - ChangeMatrix => ..., default value {true, true}, Kronecker normal form of a matrix of linear forms
- Outputs:
  - A', a matrix
  - B', a matrix
  - P, a matrix
  - Q, a matrix

## Description

This function gives the normal form of a pair of matrices (A,B) over a field of the same dimensions up to multiplication on either side by an invertible matrix. The return values are such that P*A*Q=A' and P*B*Q=B'.

    i1 : R = QQ

    o1 = QQ

    o1 : Ring

    i2 : A = random(R^2, R^5)

    o2 = | 9/2 3/4 7/9  7/10 7   |
         | 9/4 7/4 7/10 7/3  3/7 |

                  2       5
    o2 : Matrix QQ  <-- QQ

    i3 : B = random(R^2, R^5)

    o3 = | 6/7 5/4 3/10 5    10  |
         | 6   2/9 3/7  10/9 3/2 |

                  2       5
    o3 : Matrix QQ  <-- QQ

    i4 : (A',B',P,Q) = kroneckerNormalForm(A,B)

    o4 = (| 0 1 0 0 0 |, | 0 0 1 0 0 |, | 0           -1/25262993 |, |
          | 0 0 0 1 0 |  | 0 0 0 0 1 |  | -1/10826997 0           |  |
                                                                     |
                                                                     |
                                                                     |
         ------------------------------------------------------------------------
         2654657740   -3952676  -8516004  3084480   1169756   |)
         17773707042  -42696528 -17330418 17580240  7728588   |
         -37768385025 56896560  64238265  -46815300 -10943100 |
         -4754499255  7937940   1938195   -2114910  -3641490  |
         1061045706   0         0         0         0         |

    o4 : Sequence

    i5 : P*A*Q - A' == 0

    o5 = true

    i6 : P*B*Q - B' == 0

    o6 = true

## Ways to use this method:

- kroneckerNormalForm(Matrix,Matrix) -- normal form of a pair of matrices of scalars

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Kronecker.m2:1239:0.