Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorial:polynomials_tutorial [2011/08/01 13:10] – [Example: Toric Degeneration] gawrilow | user_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@}} |
- | + | ||
- | A polynomial always carries a reference to a polynomial ring. Polynomial in different rings cannot be added, multiplied, or whatever. | + | |
- | + | ||
- | <code> | + | |
- | $r=new Ring(qw(x y)); | + | |
- | </ | + | |
- | + | ||
- | It may be convenient to use special variable names for the indeterminates. | + | |
- | + | ||
- | < | + | |
- | polytope> | + | |
- | </ | + | |
- | + | ||
- | Notice that the variable names are chosen to match the print names; but this is " | + | |
- | + | ||
- | < | + | |
- | polytope> | + | |
- | polytope> | + | |
- | polytope> | + | |
- | 1 + 2*x + x^2 + 2*y + 3*x*y + y^2 + x^2*y + x*y^2 | + | |
- | </ | + | |
- | + | ||
- | Standard arithmetic function " | + | |
- | + | ||
- | Here is one way to produce polytopes from polynomials (as the convex hull of the exponent vectors of all terms). | + | |
- | + | ||
- | < | + | |
- | polytope> | + | |
- | polytope> | + | |
- | 1 0 0 | + | |
- | 1 2 0 | + | |
- | 1 0 2 | + | |
- | 1 2 1 | + | |
- | 1 1 2 | + | |
- | polytope> | + | |
- | 1 | + | |
- | </ | + | |
- | + | ||
- | The final " | + | |
- | + | ||
- | ===== Example: Toric Degeneration ===== | + | |
- | + | ||
- | The following describes how to construct the polynomial which describes the toric deformation with respect to a point configuration and a height function. | + | |
- | + | ||
- | < | + | |
- | polytope > $points = new Matrix< | + | |
- | polytope > $height = new Vector< | + | |
- | polytope > $coefficients = new Vector< | + | |
- | </ | + | |
- | + | ||
- | The following is generic (assuming that the dimensions of the objects above match). | + | |
- | + | ||
- | < | + | |
- | polytope > @vars = " | + | |
- | polytope > $R = new Ring(@vars); | + | |
- | polytope > $p = new Polynomial($height|$points, | + | |
- | </ | + | |
- | + | ||
- | Notice that the points are given in Euclidean coordinates; | + | |
- | + | ||
- | < | + | |
- | polytope > print $p; | + | |
- | -1/2*s^2*x1 + 1/ | + | |
- | </ | + | |