I have a 4-dimensional polytope centered at the origin of a higher dimensional, $n>4$, space. I have vertices for this polytope in $n$ dimensions, but I would like to write the vertices with 4 coordinates; that is, I want to view that polytope as its full dimensional self in 4d.
My initial thought was to write the $n$-dimensional vertices as columns in a matrix $M$, and bring the matrix into row-reduced echelon form $M'$ so that the first four rows of $M'$ give me my 4d vertices (the $n-4$ rows below them would all be 0 I thought since $M$ should have rank four).
This doesn't work, however; sometimes I have a 4D polytope but the row reduction may give me 5 nonzero rows.
Is there a better way to do this?
Thanks!
By reducing the matrix $M$, you are writing the vertices of the polytope in terms of a basis for their span. But that span could be $5$-dimensional, because although the polytope is $4$-dimensional, it only lives in a $4$-dimensional affine subspace, not necessarily a linear subspace. In other words, the $4$-dimensional flat containing your polytope may not pass through the origin.
To fix this, you can take one of the points of polytope as the origin. So, pick a vertex of the polytope, and first translate the polytope so that vertex is at the origin. Then you can follow your procedure and will be guaranteed to get a $4$-dimensional space.
Beware, though, that the basis you get from this process may not be an orthonormal basis, and so the operation you are doing isn't really a rotation; it's just a general invertible linear map. So, the new polytope in 4-dimensional space will not necessarily be congruent to the one you started with (though it will have the same combinatorics). To get an orthonormal basis for the span, you can instead use Gram-Schmidt on the vertices of the polytope. So, you first translate your polytope so one of its vertices is at the origin, and then use Gram-Schmidt on all the vertices to obtain four orthonormal vectors $e_1,e_2,e_3,e_4$ which have the same span. Then you can isometrically map your polytope into $\mathbb{R}^4$ by mapping each vertex $v$ to $(\langle v,e_1\rangle,\langle v,e_2\rangle,\langle v,e_3\rangle,\langle v,e_4\rangle)$ where $\langle \cdot,\cdot\rangle$ is the inner product.