Macaulay2 » Documentation
Packages » QuillenSuslin :: completeMatrix
next | previous | forward | backward | up | index | toc

completeMatrix -- completes a unimodular matrix over a polynomial ring or Laurent polynomial ring to a square invertible matrix

Description

Given a unimodular m \times \ n matrix over a polynomial ring with coefficients in QQ, ZZ, or ZZ/p with p a prime integer, this method returns the inverse of the matrix returned by qsAlgorithm. The first m rows or columns (depending on whether m < n or m > n) of this matrix are equal to U and the determinant of the matrix is a unit in the polynomial ring.
i1 : R = ZZ/101[x,y]

o1 = R

o1 : PolynomialRing
i2 : U = matrix{{x^2*y+1,x+y-2,2*x*y}}

o2 = | x2y+1 x+y-2 2xy |

             1      3
o2 : Matrix R  <-- R
i3 : isUnimodular U

o3 = true
i4 : M = completeMatrix U

o4 = {0} | x2y+1 x+y-2 2xy |
     {0} | 50x   0     -1  |
     {1} | 0     1     0   |

             3      3
o4 : Matrix R  <-- R
i5 : det M

o5 = 1

o5 : R

The method can also be used over a Laurent polynomial ring with coefficients in QQ or ZZ/p for p a prime integer. The following example demonstrates how to construct a Laurent polynomial ring and also how to use the method on a unimodular matrix over the ring.
i6 : R = QQ[x,Inverses => true,MonomialOrder => Lex]

o6 = R

o6 : PolynomialRing
i7 : U = matrix{{3*x^-1-2-2*x+2*x^2, 3*x^-1-2*x,2*x},{6*x^-1+25-23*x-16*x^2+20*x^3, 6*x^-1+29-4*x-20*x^2,2+4*x+20*x^2}}

o7 = | 2x2-2x-2+3x-1         -2x+3x-1         2x        |
     | 20x3-16x2-23x+25+6x-1 -20x2-4x+29+6x-1 20x2+4x+2 |

             2      3
o7 : Matrix R  <-- R
i8 : M = completeMatrix U

o8 = | 2x2-2x-2+3x-1                     -2x+3x-1                    
     | 20x3-16x2-23x+25+6x-1             -20x2-4x+29+6x-1            
     | 2/9x4-4/9x3-2/9x2+7/9x-1/9-1/3x-1 -2/9x3+2/9x2+5/9x-1/3-1/3x-1
     ------------------------------------------------------------------------
     2x                   |
     20x2+4x+2            |
     2/9x3-2/9x2-2/9x+1/3 |

             3      3
o8 : Matrix R  <-- R
i9 : det M

       1
o9 = - -
       3

o9 : R

See also

Ways to use completeMatrix:

  • completeMatrix(Matrix)

For the programmer

The object completeMatrix is a method function with options.


The source of this document is in QuillenSuslin.m2:2073:0.