next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
InvariantRing :: reynoldsOperator

reynoldsOperator -- the Reynolds operator for averaging a polynomial over a finite group

Synopsis

Description

i1 : R=QQ[x,y,z];
i2 : A=matrix{{0,1,0},{-1,0,0},{0,0,-1}}; G={A,A^2,A^3,A^4}

              3        3
o2 : Matrix ZZ  <--- ZZ

o3 = {| 0  1 0  |, | -1 0  0 |, | 0 -1 0  |, | 1 0 0 |}
      | -1 0 0  |  | 0  -1 0 |  | 1 0  0  |  | 0 1 0 |
      | 0  0 -1 |  | 0  0  1 |  | 0 0  -1 |  | 0 0 1 |

o3 : List
i4 : f=x^2+y+z

      2
o4 = x  + y + z

o4 : R
i5 : reynoldsOperator(f,G)

     1 2   1 2
o5 = -x  + -y
     2     2

o5 : R

WARNING: During the execution of reynoldsOperator the method substitute is used on the matrices in the List G with the coefficientRing of f. This means, for example, that one can let G be a List of integer matrices and it will act on a polynomial ring defined over the rational numbers when reynoldsOperator is called, but in general care should be taken to ensure the entries of the matrices are preserved under the use of substitute. In the following example, notice how what should be an invariant polynomial is changed through an application of reynoldsOperator.

i6 : R=QQ[x,y,z];
i7 : K=toField(QQ[i]/(i^2+1));
i8 : A=matrix{{i,0,0},{0,i,0},{0,0,i}}; G={A,A^2,A^3,A^4}

             3       3
o8 : Matrix K  <--- K

o9 = {| i 0 0 |, | -1 0  0  |, | -i 0  0  |, | 1 0 0 |}
      | 0 i 0 |  | 0  -1 0  |  | 0  -i 0  |  | 0 1 0 |
      | 0 0 i |  | 0  0  -1 |  | 0  0  -i |  | 0 0 1 |

o9 : List
i10 : f=x^4+y^4+z^4

       4    4    4
o10 = x  + y  + z

o10 : R
i11 : reynoldsOperator(f,G)

      1 4   1 4   1 4
o11 = -x  + -y  + -z
      2     2     2

o11 : R

This function is provided by the package InvariantRing.

Ways to use reynoldsOperator :