Does SAGE have a way to compute the center of mass of a polytope? I tried using polymake's centroid method, but that returned an error because the dimension of my polytope is not equal to the ambient dimension. I've read the manual and looked at the available functions but can't seem to find a SAGE command to do this. Does it exist?
EDIT: By request here's some sample _polymake_ code that fails (I'm not sure why this would be useful unless SAGE is using polymake under the hood):
polytope > $q=permutahedron(3);
polytope > print $q->CENTROID;
polymake: WARNING: could not compute 'CENTROID' probably because of unsatisfied preconditions:
precondition : DIM, AMBIENT_DIM ( CENTROID, VOLUME : VERTICES, TRIANGULATION.FACETS )
I'm guessing the error occurs because the ambient dimension of this polytope is 4 but the actual dimension of the polytope is 3; this is the same reason polymake tells me the volume of q is 0.
There is no such function currently implemented. However, it would not be difficult to add. The straightforward approach would be to triangulate the polytope, find the barycenter of the simplices, and then add their individual barycenters weighted by the fraction of the total mass.
If you want to contribute a centroid method make a trac ticket and cc me, I'd be happy to help.
posted May 07 '11Volker Braun
2238 ● 5 ● 22 ● 52
The "center" (average of the vertices) is available via the
You can look through the other methods available in the Polyhedra documentation.
Asked: Apr 27 '11
Seen: 189 times
Last updated: May 07 '11
powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.