Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| user_guide:tutorials:coordinates [2019/01/25 13:40] – ↷ Page moved from user_guide:coordinates to user_guide:tutorials:coordinates oroehrig | user_guide:tutorials:coordinates [2019/02/04 22:55] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Coordinates for Polyhedra ====== | + | {{page> |
| - | * This page explains how the coordinates for objects of type '' | ||
| - | |||
| - | Each polyhedron can be written as the Minkowski sum of a convex polytope (spanned by points // | ||
| - | |||
| - | Suppose our polyhedron lives in a //d//-space //V//. | ||
| - | |||
| - | In order to obtain a unified view on the polytope and the cone section of a polyhedron, we embed V as an affine subspace of a (// | ||
| - | |||
| - | Points from both sections can now be identified with infinite rays through the origin in //W//. Facets are identified with the a hyperplane containing the image of the facet in //V// and the origin in //W//. This hyperplane is represented by a normal vector. | ||
| - | |||
| - | Note that a facet defining hyperplane is not uniquely determined if the polyhedron is not full-dimensional. {{ user_guide: | ||
| - | |||
| - | A vertex is incident with a facet if and only if the scalar product of their representatives in //W// is zero. | ||
| - | |||
| - | |||
| - | The polytope point // | ||
| - | |||
| - | The facet containing the points //a// and //c// is represented by an (oriented) normal vector of the (hyper-)plane spanned by //a//, //c//, and the origin. If //d=2//, as in the picture, the normal vector can be computed as the cross product of //a// and //c//. The normal vector will be oriented such that it points towards the interior of the polyhedron. | ||
| - | |||
| - | According to this model two points in //W// are identical to polymake if they differ by a positive multiple. In particular, for a polytope point in the input data it is not required that the first coordinate is //1//; it just has to be some positive number. | ||
| - | |||
| - | Up to and including version 2.9.9 polymake was not able to handle unbounded polyhedra which contain an affine line. Starting from version 2.10 this is possible. | ||
| - | |||
| - | ===== An example ===== | ||
| - | |||
| - | The following defines the positive orthant in 3-space. | ||
| - | < | ||
| - | polytope > $p=new Polytope(POINTS=> | ||
| - | </ | ||
| - | |||
| - | This lists the facet coordinates. | ||
| - | < | ||
| - | polytope > print $p-> | ||
| - | 1 0 0 0 | ||
| - | 0 1 0 0 | ||
| - | 0 0 1 0 | ||
| - | 0 0 0 1 | ||
| - | </ | ||
| - | |||
| - | Each line describes one linear inequality. | ||
| - | |||
| - | Clearly, the polyhedron is unbounded. | ||
| - | < | ||
| - | polytope > print $p-> | ||
| - | 0 | ||
| - | </ | ||
| - | |||
| - | Yet, the combinatorial data describe a 3-simplex. | ||
| - | < | ||
| - | polytope > print $p-> | ||
| - | {1 2 3} | ||
| - | {0 2 3} | ||
| - | {0 1 3} | ||
| - | {0 1 2} | ||
| - | </ | ||
| - | |||
| - | The rays span the //face at infinity//. | ||
| - | < | ||
| - | polytope > print $p-> | ||
| - | {1 2 3} | ||
| - | </ | ||
| - | |||
| - | By the way, unbounded polyhedra can be visualized just like bounded ones. '' | ||
| - | < | ||
| - | polytope > $p-> | ||
| - | </ | ||
| - | ===== Internal treatment of polytope generators ===== | ||
| - | As described above polyhedra in '' | ||
| - | |||
| - | Until version 2.9.9 input generators with a negative first coordinate are just multiplied by -1. | ||