user_guide:tutorials:polynomials_tutorial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
tutorial:polynomials_tutorial [2010/02/08 09:56] – created joswiguser_guide:tutorials:polynomials_tutorial [2019/02/04 22:55] (current) – external edit 127.0.0.1
Line 1: Line 1:
-===== Basic Usage of Polynomials in Perl ===== +{{page>.:latest:@FILEID@}}
- +
-The following will be available starting from version 2.9.8. +
- +
-A polynomial always carries a reference to a polynomial ring.  Polynomial in different rings cannot be added, multiplied, or whatever.  The names of the indeterminates are relevant for the output functions only. +
- +
-<code> +
-$r=new Ring(qw(x y)); +
-</code> +
- +
-It may be convenient to use special variable names for the indeterminates. +
- +
-<code> +
-polytope> ($x,$y)=$r->variables; +
-</code> +
- +
-Notice that the variable names are chosen to match the print names; but this is "coincidental"+
- +
-<code> +
-polytope> $p=1+$x+$y; +
-polytope> $q=1+$x+$y+$x*$y; +
-polytope> print($p*$q); +
-1 + 2*x + x^2 + 2*y + 3*x*y + y^2 + x^2*y + x*y^2 +
-</code> +
- +
-Standard arithmetic function "+", "-", "*", "^" are defined.  However, due to the fact the their precedence is given in perl it may be necessary to write more parentheses than expected at first sight. +
- +
-Here is one way to produce polytopes from polynomials (as the convex hull of the exponent vectors of all terms). +
- +
-<code> +
-polytope> $npq=newton($p*$q); +
-polytope> print $npq->VERTICES; +
-1 0 0 +
-1 2 0 +
-1 0 2 +
-1 2 1 +
-1 1 2 +
-polytope> print equal_polyhedra($npq, minkowski_sum(newton($p),newton($q))); +
-+
-</code> +
- +
-The final "1" means "true"The Newton polytope of the product of two polynomials always equals the Minkowski sum of the Newton polytopes of the factors.+
  
  • user_guide/tutorials/polynomials_tutorial.1265623016.txt.gz
  • Last modified: 2014/01/03 15:45
  • (external edit)