Macaulay2 » Documentation
Packages » QuaternaryQuartics :: quartic
next | previous | forward | backward | up | index | toc

quartic -- a quartic given by power sums of linear forms

Synopsis

Description

One useful way to generate quartic polynomials is as a sum of 4th powers of linear forms. This function creates an linear form from each column of the matrix $M$, and then sums their 4th powers.

i1 : S = ZZ/101[a..d]

o1 = S

o1 : PolynomialRing
i2 : M = transpose matrix(S, {{1,0,0,0}, {0,1,0,0}})

o2 = | 1 0 |
     | 0 1 |
     | 0 0 |
     | 0 0 |

             4      2
o2 : Matrix S  <-- S
i3 : quartic M

      4    4
o3 = a  + b

o3 : S
i4 : H = bettiStrataExamples S

o4 = HashTable{"[000]" => {| 1 0 0 0 1 22  2   -37 -18 32  |, 10 general points}                                   }
                           | 0 1 0 0 1 -47 29  -13 39  -9  |
                           | 0 0 1 0 1 -23 -47 -10 27  -32 |
                           | 0 0 0 1 1 -7  15  30  -22 -20 |
               "[100]" => {| 1 0 0 0 1 39  48 -38 46  |, 9 general points}
                           | 0 1 0 0 1 43  36 33  -28 |
                           | 0 0 1 0 1 -17 35 40  1   |
                           | 0 0 0 1 1 -11 11 11  -3  |
               "[200]" => {| 1 0 0 0 1 16  -48 -16 |, 8 general points}
                           | 0 1 0 0 1 22  -47 7   |
                           | 0 0 1 0 1 45  47  15  |
                           | 0 0 0 1 1 -34 19  -23 |
               "[210]" => {| 1 0 0 0 1 1 0 1 |, 8 points with 6 in a plane, or five in a plane and three in a line}
                           | 0 1 0 0 1 0 1 1 |
                           | 0 0 1 0 0 1 1 1 |
                           | 0 0 0 1 0 0 0 1 |
               "[300a]" => {| 1 1  1  1  1  1  1  1  |, 8 points which forms a CI}
                            | 2 2  2  2  -2 -2 -2 -2 |
                            | 3 3  -3 -3 3  3  -3 -3 |
                            | 1 -1 1  -1 1  -1 1  -1 |
               "[300b]" => {| 1 0 0 0 1 19  -8  |, 7 general points}
                            | 0 1 0 0 1 19  -22 |
                            | 0 0 1 0 1 -10 -29 |
                            | 0 0 0 1 1 -29 -24 |
               "[300c]" => {| 1 0 1 -38 34  -18 -28 |, 7 points, 3 on a line}
                            | 0 1 1 -16 19  -13 -47 |
                            | 0 0 0 39  -47 -43 38  |
                            | 0 0 0 21  -39 -15 2   |
               "[310]" => {| 1 0 0 0 1 1 1 |, 7 points with 5 on a plane}
                           | 0 1 0 0 1 1 0 |
                           | 0 0 1 0 1 1 0 |
                           | 0 0 0 1 0 1 1 |
               "[320]" => {| 1 0 0 0 1 1 1 |, 7 points on a twisted cubic curve}
                           | 0 1 0 0 1 0 0 |
                           | 0 0 1 0 0 1 0 |
                           | 0 0 0 1 0 0 1 |
               "[331]" => {| 1 0 0 0 24  -15 33  |, 7 points with 6 on a plane}
                           | 0 1 0 0 -30 39  -49 |
                           | 0 0 1 0 -48 0   -33 |
                           | 0 0 0 1 0   0   0   |
               "[420]" => {| 1 0 0 0 1 24  |, 6 general points}
                           | 0 1 0 0 1 -36 |
                           | 0 0 1 0 1 -30 |
                           | 0 0 0 1 1 -29 |
               "[430]" => {| 1 0 0 0 1 1 |, 6 points, 3 on a line}
                           | 0 1 0 0 1 0 |
                           | 0 0 1 0 0 1 |
                           | 0 0 0 1 0 1 |
               "[441a]" => {| 1 0 0 0 1 1 |, 6 points, 5 on a plane}
                            | 0 1 0 0 1 0 |
                            | 0 0 1 0 0 1 |
                            | 0 0 0 1 0 0 |
               "[441b]" => {| 1 0 0 0 1 0 |, 6 points, 3 each on 2 skew lines}
                            | 0 1 0 0 1 0 |
                            | 0 0 1 0 0 1 |
                            | 0 0 0 1 0 1 |
               "[550]" => {| 1 0 0 0 1 |, 5 general points}
                           | 0 1 0 0 1 |
                           | 0 0 1 0 1 |
                           | 0 0 0 1 1 |
               "[551]" => {| 1 0 0 0 1 |, 5 points, 4 on a plane}
                           | 0 1 0 0 1 |
                           | 0 0 1 0 1 |
                           | 0 0 0 1 0 |
               "[562]" => {| 1 0 0 0 1 |, 5 points, 3 on a line}
                           | 0 1 0 0 1 |
                           | 0 0 1 0 0 |
                           | 0 0 0 1 0 |
               "[683]" => {| 1 0 0 0 |, 4 general points}
                           | 0 1 0 0 |
                           | 0 0 1 0 |
                           | 0 0 0 1 |

o4 : HashTable
i5 : keys H

o5 = {[310], [420], [200], [210], [331], [320], [683], [100], [562], [551],
     ------------------------------------------------------------------------
     [430], [550], [000], [441b], [441a], [300c], [300b], [300a]}

o5 : List
i6 : M = first H#"[420]"

o6 = | 1 0 0 0 1 24  |
     | 0 1 0 0 1 -36 |
     | 0 0 1 0 1 -30 |
     | 0 0 0 1 1 -29 |

             4      6
o6 : Matrix S  <-- S
i7 : F = quartic M

         4      3       2 2        3      4      3       2           2   
o7 = - 7a  - 43a b + 36a b  - 26a*b  - 12b  + 49a c - 39a b*c + 38a*b c -
     ------------------------------------------------------------------------
       3       2 2      2 2        3       3      4     3      2           2 
     9b c + 10a c  + 15b c  - 33a*c  + 9b*c  - 18c  - 3a d - 7a b*d - 10a*b d
     ------------------------------------------------------------------------
          3       2                     2           2         2      3   
     + 15b d + 13a c*d + 21a*b*c*d - 11b c*d + 36a*c d - 24b*c d - 6c d +
     ------------------------------------------------------------------------
        2 2          2      2 2          2          2      2 2        3  
     25a d  - 45a*b*d  - 27b d  + 15a*c*d  - 43b*c*d  + 42c d  + 42a*d  +
     ------------------------------------------------------------------------
          3       3      4
     48b*d  + 7c*d  - 20d

o7 : S

This is a convenience function. This is basically short hand for the following (which computes the linear forms corresponding to each column of $M$, and then sums their 4th powers.

i8 : lins := flatten entries((vars S) * M)

o8 = {a, b, c, d, a + b + c + d, 24a - 36b - 30c - 29d}

o8 : List
i9 : F1 = sum for g in lins list g^4

         4      3       2 2        3      4      3       2           2   
o9 = - 7a  - 43a b + 36a b  - 26a*b  - 12b  + 49a c - 39a b*c + 38a*b c -
     ------------------------------------------------------------------------
       3       2 2      2 2        3       3      4     3      2           2 
     9b c + 10a c  + 15b c  - 33a*c  + 9b*c  - 18c  - 3a d - 7a b*d - 10a*b d
     ------------------------------------------------------------------------
          3       2                     2           2         2      3   
     + 15b d + 13a c*d + 21a*b*c*d - 11b c*d + 36a*c d - 24b*c d - 6c d +
     ------------------------------------------------------------------------
        2 2          2      2 2          2          2      2 2        3  
     25a d  - 45a*b*d  - 27b d  + 15a*c*d  - 43b*c*d  + 42c d  + 42a*d  +
     ------------------------------------------------------------------------
          3       3      4
     48b*d  + 7c*d  - 20d

o9 : S
i10 : F1 == F

o10 = true
i11 : I = inverseSystem F

                                                                          
o11 = ideal (a*d + 9b*d - 10c*d, b*c - 43b*d + 42c*d, a*c + 37b*d - 38c*d,
      -----------------------------------------------------------------------
                          3      3        2        2      3   3      3  
      a*b + 3b*d - 4c*d, b  + 11c  - 21b*d  - 31c*d  - 21d , a  - 10c  -
      -----------------------------------------------------------------------
           2        2      3
      33b*d  - 21c*d  + 22d )

o11 : Ideal of S
i12 : (degree I, codim I, regularity(S^1/I))

o12 = (16, 4, 4)

o12 : Sequence
i13 : minimalBetti I

             0 1  2 3 4
o13 = total: 1 6 10 6 1
          0: 1 .  . . .
          1: . 4  2 . .
          2: . 2  6 2 .
          3: . .  2 4 .
          4: . .  . . 1

o13 : BettiTally

See also

Ways to use quartic :

For the programmer

The object quartic is a method function.