<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>Weights -- assigning weights to the variables</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="___Eliminate.html">next</a> | <a href="___G__Lex.html">previous</a> | <a href="___Eliminate.html">forward</a> | <a href="___G__Lex.html">backward</a> | <a href="_monomial_sporderings.html">up</a> | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <div><a href="index.html" title="">Macaulay2Doc</a> > <a href="_rings.html" title="">rings</a> > <a href="_monomial_sporderings.html" title="">monomial orderings</a> > <a href="___Weights.html" title="assigning weights to the variables">Weights</a></div> <hr/> <div><h1>Weights -- assigning weights to the variables</h1> <div class="single"><h2>Description</h2> <div>Given a list L of n integers, the weight order on a polynomial ring in n variables is defined by: x^A > x^B if A_1 L_1 + ... + A_n L_n > B_1 L_1 + ... + B_n L_n.<p/> The leading component of a polynomial under a weight order need not be a monomial. When two monomials have the same weight, by default they are further distinguished with the GRevLex order.<table class="examples"><tr><td><pre>i1 : R = QQ[a..d,MonomialOrder=>{Weights => {-1,2,3,4}},Global=>false];</pre> </td></tr> <tr><td><pre>i2 : f = a^2 + b+ c^2 + b*d 2 2 o2 = c + b*d + b + a o2 : R</pre> </td></tr> <tr><td><pre>i3 : leadTerm f 2 o3 = c o3 : R</pre> </td></tr> </table> However, we can retrieve the entire leading component with the command <tt>leadTerm(1,f)</tt>. The plain <tt>leadTerm f</tt> is in this case the same as <tt>leadTerm(2,f)</tt>: they both use the full specification of the monomial ordering, first by weight and then by the <tt>GRevLex</tt> order. In contrast, <tt>leadTerm(1,f)</tt>only distinguishes monomials by the first, i.e., weight, specification.<table class="examples"><tr><td><pre>i4 : leadTerm(1,ideal(f)) o4 = | c2+bd | 1 1 o4 : Matrix R <--- R</pre> </td></tr> </table> The weight order may be combined with further ordering elements to break ties. In the following example, we use a second weight vector to break ties under first weight vector.<table class="examples"><tr><td><pre>i5 : R = QQ[a..d,MonomialOrder=>{Weights => {1,2,3,4}, Weights => {2,4,2,1}}];</pre> </td></tr> <tr><td><pre>i6 : f = a^6 + b^3+ c^2 6 3 2 o6 = a + b + c o6 : R</pre> </td></tr> <tr><td><pre>i7 : leadTerm(f) 6 o7 = a o7 : R</pre> </td></tr> <tr><td><pre>i8 : leadTerm(1, ideal(f)) o8 = | a6+b3+c2 | 1 1 o8 : Matrix R <--- R</pre> </td></tr> <tr><td><pre>i9 : leadTerm(2, ideal(f)) o9 = | a6+b3 | 1 1 o9 : Matrix R <--- R</pre> </td></tr> <tr><td><pre>i10 : leadTerm(3, ideal(f)) o10 = | a6 | 1 1 o10 : Matrix R <--- R</pre> </td></tr> </table> <tt>leadTerm(3, ideal(f))</tt> uses both the specified weights and the <tt>GRevLex</tt> order to calculate the leading component.<p/> When the number of weights is smaller than the number of variables, the remaining variables are given weight 0. In the following example, <tt>c</tt> and <tt>d</tt> have weight 0.<table class="examples"><tr><td><pre>i11 : R = QQ[a..d,MonomialOrder=>{Weights => {1,2}, Lex}];</pre> </td></tr> <tr><td><pre>i12 : f = a^2 + b+ c^2 + b*d 2 2 o12 = a + b*d + b + c o12 : R</pre> </td></tr> </table> </div> </div> <div class="single"><h2>Functions with optional argument named Weights :</h2> <ul><li><span><a href="_betti_lp..._cm_sp__Weights_sp_eq_gt_sp..._rp.html" title="">betti(..., Weights => ...)</a></span></li> <li><span>monoid(..., Weights => ...), see <span><a href="_monoid.html" title="make or retrieve a monoid">monoid</a> -- make or retrieve a monoid</span></span></li> <li><span>newRing(..., Weights => ...), see <span><a href="_new__Ring.html" title="make a copy of a ring, with some features changed">newRing</a> -- make a copy of a ring, with some features changed</span></span></li> <li><span><a href="_regularity_lp..._cm_sp__Weights_sp_eq_gt_sp..._rp.html" title="">regularity(..., Weights => ...)</a></span></li> <li><span>symmetricAlgebra(..., Weights => ...), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> <li><span>tensor(..., Weights => ...), see <span><a href="_tensor_lp__Ring_cm__Ring_rp.html" title="tensor product">tensor(Ring,Ring)</a> -- tensor product</span></span></li> </ul> </div> <div class="single"><h2>See also</h2> <ul><li><span><a href="_lead__Term.html" title="get the greatest term">leadTerm</a> -- get the greatest term</span></li> </ul> </div> <div class="waystouse"><h2>For the programmer</h2> <p>The object <a href="___Weights.html" title="assigning weights to the variables">Weights</a> is <span>a <a href="___Symbol.html">symbol</a></span>.</p> </div> </div> </body> </html>