Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorial:coordinates [2012/07/07 14:40] – joswig | 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. {{ tutorial: | ||
- | |||
- | 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. |