normal form of a polynomial modulo an ideal
full reduction of a polynomial
NormalForm(f, G, T, Q, characteristic=p)
Reduce(f, G, T, s, Q, characteristic=p)
a polynomial or a list or set of polynomials
a list of polynomials or a PolynomialIdeal
a MonomialOrder or ShortMonomialOrder
(optional) name - assigned quotients
(optional) name - assigned denominator
The NormalForm command computes the remainder of a multivariate polynomial f divided by a list of multivariate polynomials G. The division takes place with respect to a monomial order T. If G is a Groebner basis with respect to T then the result is a canonical representative for the equivalence class of f modulo G. A list of quotients can be assigned to an optional fourth argument Q.
The Reduce command is similar to NormalForm, except that denominators are cleared and content is removed. The result is a scaled remainder r, denominator s, and quotients Q such that rs=f−∑i=1nQi⁢Gi where r/s is the normal form. Note that NormalForm and Reduce return the same quotients Q (they are not scaled by s).
If the first argument is a list or set then a sparse algorithm based on linear algebra is used to divide all the polynomials simultaneously. This is more efficient than mapping NormalForm or Reduce over the list or set. It is also more efficient when a lot of reduction steps are expected (the polynomials involved have high degree or many terms). The sparse algorithm does not compute quotients. Setting infolevel[F4] to either 4 or 5 will output information about the size of the linear system being solved.
If T is a ShortMonomialOrder then the elements of f and G must be polynomials in the ring implied by T. If T is a MonomialOrder created with the Groebner[MonomialOrder] command, then the elements of f and G must be members of the algebra used to define T. If G is a PolynomialIdeal, a Groebner basis with respect to T is computed automatically and used for the division.
The optional argument characteristic=p can be used to specify the ring characteristic when G is a list of polynomials and T is a ShortMonomialOrder. The default value is zero.
Note that the normalf and reduce commands have been superseded by NormalForm and Reduce. They are now deprecated, and may not be supported in a future Maple release.
F ≔ x2−2⁢x⁢z+5,x⁢y2+y⁢z3,3⁢y2−8⁢z3
F ≔ x2−2⁢x⁢z+5,y⁢z3+x⁢y2,−8⁢z3+3⁢y2
G ≔ Basis⁡F,tdeg⁡x,y,z
G ≔ x2−2⁢x⁢z+5,8⁢z3−3⁢y2,8⁢x⁢y2+3⁢y3,9⁢y4+48⁢y3⁢z+320⁢y2
p ≔ 320⁢x⁢y2+9⁢x⁢y4−96⁢z2⁢y4⁢x+1600⁢y3−18⁢y5⁢x⁢z−592⁢x⁢z⁢y3+45⁢y5+240⁢z⁢y4
p ≔ −18⁢x⁢y5⁢z−96⁢x⁢y4⁢z2+9⁢x⁢y4−592⁢x⁢y3⁢z+45⁢y5+240⁢y4⁢z+320⁢x⁢y2+1600⁢y3
r ≔ p−add⁡Qi⁢Gi,i=1..nops⁡G
r ≔ −18⁢y5⁢x⁢z−96⁢z2⁢y4⁢x+9⁢x⁢y4−592⁢x⁢z⁢y3+45⁢y5+240⁢z⁢y4+320⁢x⁢y2+1600⁢y3−−94⁢y3⁢z−12⁢z2⁢y2+98⁢y2−74⁢z⁢y+40⁢8⁢x⁢y2+3⁢y3−34⁢z⁢y2+378⁢y⁢9⁢y4+48⁢y3⁢z+320⁢y2
q ≔ 3⁢x3⁢y⁢z2−x⁢z2+y3+y⁢z
infolevelF4 ≔ 5:
19 x 19 with 2 rhs
symbolic preproc 0.000 sec
linear solve 0.000 sec
build result 0.000 sec
The next example is a non-commutative (Weyl) algebra where Dn*n = n*Dn + 1
A ≔ diff_algebra⁡Dn,n
A ≔ Ore_algebra
T ≔ MonomialOrder⁡A,tdeg⁡Dn
T ≔ monomial_order
w1 ≔ 7⁢n⁢Dn+1
w1 ≔ 7⁢Dn⁢n+1
w2 ≔ 5⁢Dn−2
w ≔ skew_product⁡skew_product⁡n⁢Dn+5,w1,A,skew_product⁡n3⁢Dn2,w2,A,A+Dn5−1
w ≔ 35⁢n5⁢Dn5+−14⁢n5+425⁢n4⁢Dn4+−170⁢n4+880⁢n3⁢Dn3−352⁢n3⁢Dn2+Dn5−1
r ≔ NormalForm⁡w,w1,w2,T,'Q'
r ≔ 116807⁢−225008⁢n6−16807⁢n5−76560n5
Cox, D.; Little, J.; and O'Shea, D. Ideals, Varieties, and Algorithms. 2nd ed. Springer-Verlag, 1997.
Pearce, R., and Monagan, M. "A Sparse Algorithm for Polynomial Division with Application to F4." In preparation, 2006.
Download Help Document