# coordinates of vertices of regular simplex

For $d=3$, vertex coordinates of a regular simplex have a simple expression since vertices correspond to four vertices of a cube. Is there a simple expression for higher dimensions? In particular I'm interested in $d=2^n-1$, integer $n$.

Edit: by coordinates I mean points in $\mathbb{R}^d$. Every $d$-simplex has a simple expression for coordinates in $\mathbb{R}^{d+1}$, as Mariano shows below

## 7 Answers

It is known that there is a regular simplex of side length $\sqrt{(d+1)/2}$ whose vertices are vertices of the cube $[-1,1]^d$ in $\Bbb{R}^d$ if and only if there exists a Hadamard matrix of order $d+1$; this is a square matrix of $\pm 1$-entries with pairwise orthogonal columns.

In particular, there exist Hadamard matrices of order $2^n$, one of which can be constructed using the recursive Sylvester's construction as explained on the above linked wikipedia page:

Let $H_0=$ and $H_{n+1}=\left[\array{H_n & H_n \\\\ H_n & -H_n}\right].$

Note that the first column of $H_n$ consists only of ones. Delete it to obtain $2^n$ row vectors in $\Bbb{R}^{2^n-1}$. These are the coordinates of a regular simplex.

• Actually, I was already looking at Hadamard matrices in relation to this problem because such matrix is a common design matrix for exponential families, somewhat special in that it gives a transformation that decorellates components of a uniform multinomial random variable. So now, in addition to decorrelating components, it maps the variable (which lies in $2^n-1$ simplex embedded in $d=2^n$ space since variable l_1 norm is fixed) into d=2^n-1 dimensions with nice expression for extreme points, neat! – Yaroslav Bulatov Sep 14 '10 at 22:14
• Do you have a reference or a place where I can read more about this simplex in cube<->hadamard connection ? – Yaroslav Bulatov Sep 20 '10 at 2:16
• There is also an equivalence with inscribing cross polytopes in cubes. A nice reference to this and more is Adams, Zvengrowski and Laird, Vertex embeddings of regular polytopes, Expo. Math. 21 (2003), no. 4, 339--353. I can't find an open version on the web, but the link to the published version is dx.doi.org/10.1016/S0723-0869(03)80037-3 . – Konrad Swanepoel Sep 20 '10 at 9:17

One interesting problem is to determine the $n$ such that there is a regular simplex in $\mathbb{R}^n$ with rational/integer coordinates. This is a well-known old problem which I discussed in this 1998 usenet thread, and is a nice application of the Hasse-Minowski theory of rational quadratic forms. The answer is yes iff $n+1$ is the sum of one, two, four or eight odd squares.

The $d$ points $(0,\dots,0,1,0,\dots,0)$ are the vertices of a regular $(d-1)$-simplex. If you want it to be centered at the origin, just substract their barycenter from them.

• Yes, this seems to work to get a $(d-1)$-simplex in $\mathbb{R}^d$, but the question is I think about a $d$-simplex in $\mathbb{R}^d$. – Louigi Addario-Berry Sep 14 '10 at 19:00
• that gives coordinates in d+1 dimensions, but it's not clear when it corresponds to easy expression in d dimensions (like it does for 3-simplex) – Yaroslav Bulatov Sep 14 '10 at 19:01
• You may want to add the detail that you want the points to be in some specific space to the question, Yuraslov. – Mariano Suárez-Álvarez Sep 14 '10 at 19:04
• I've done this recently, you just add in a point at $$(-t, -t, \ldots, -t)$$ and figure out what $t$ needs to be. Then shift if it needs to be centered at the origin. – Will Jagy Sep 14 '10 at 19:18
• In $R^n,$ all coordinates of the final point are $$\frac{1 - \sqrt{1 + n}}{n} \; \; = \;\; \frac{-1}{1 + \sqrt{1 + n}}$$ – Will Jagy Sep 14 '10 at 21:08

Compute the full Q matrix from the QR decomposition of a column vector of ones, and drop the first column.

eg in R+

simplex <- function(n) {
qr.Q(qr(matrix(1,nrow=n)),complete=T)[,-1]
}

• This is amazing! So clever – pharmine Oct 20 '16 at 7:51
• Neat trick! ${}$ – J. M. isn't a mathematician Apr 8 '17 at 14:33
• Matlab n=10;[q,r] = qr(ones(n,1)); q=q(:,2:end). The 10 rows are the 10 vertices of a 9 dimensional simplex. – Pushpendre May 3 '18 at 3:09

Since this question is back on the front page, I wanted to mention the simplex code. For $b\ge 2$, and $n\ge1$, the code consists of $b^n$ code words, each of which is a $b$-ary string of length $s=(b^n-1)/(b-1)$. The Hamming distance between any two codewords is $b^{n-1}$. Therefore, if you write the $(b-1)$-simplex using your favorite coordinates in $\mathbf{R}^{b-1}$, then substituting these $b$ vertices for the $b$ digits in your codewords and concatenating the resulting words into vectors in $\mathbf{R}^{(b-1)s}$ gives you a nice set of coordinates for the $(b^n-1)$-simplex.

For example, taking $b=2$ and $n=2$ gives the 4 alternating vertices of the 3-cube.

The coordinates of the vertices of a regular ''n''-dimensional simplex can be obtained from these two properties,

1. For a regular simplex, the distances of its vertices to its center are equal.
2. The angle subtended by any two vertices of an ''n''-dimensional simplex through its center is $\arccos\left(\tfrac{-1}{n}\right)$

If we initialize our first vertex to be along the first dimension, we can iteratively find the subsequent vertices by following the criteria above. Here's the code in Julia:

function regular_simplex(ndims, radius)
verts = [zeros(ndims) for i in 1:(ndims+1)];
for i in 1:(ndims+1)
if i > 1
for j in i:(ndims+1)
verts[j][i-1] = (-dot(verts[i-1], verts[j]) - 1 / ndims) / verts[i-1][i-1];
end
end
if i <= ndims
verts[i][i] = sqrt(1 - sum(verts[i].^2))
end
end
return verts .* radius;
end


We can orient and list the n+1 n-simplex unit vectors u{0:n} in such a way that the 0th simplex unit vector u{0} is equivalent to the 0th dimensional unit vector x{0}, the 1st simplex unit vector u{1} is a linear combination of the 0th and 1st dimensional unit vectors x{0} and x{1}, the 2nd simplex unit vector u{2} is a linear combination of the 0th through 2nd dimensional unit vectors, x{0}, x{1}, and x{2}, etc.

Always using a new dimensional unit vector in describing the next simplex unit vector. The pattern is broken in describing the final simplex unit vector u{n}, because there can be only n different dimensional unit vectors, but n+1 simplex unit vectors.

n+1 total vertices for regular n-simplex with unit radius n-circumsphere given as unit vectors oriented such that the jth simplex vector u{0<=j<=n-1} is a function of dimensional unit vectors x{0:j} and the final vector u{n} a function of x{0:n-1}

for 0<=j<=n-1
u{j} = sqrt((n+1)(n-j-1)/(n(n-j))) x{j} - sum{0<=k<=j}(sqrt((n+1)/(n(n-k)(n-k-1))) x{k})

and final vector

u{n} = -sum{0<=k<=n-1}(sqrt((n+1)/(n(n-k)(n-k-1))) x{k})

n+1 simplex vectors, u, as a function of n dimensional vectors, x, oriented such that u(j) is a function of only x(k<=j) 