16
$\begingroup$

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

$\endgroup$

7 Answers 7

13
$\begingroup$

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=[1]$ 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.

$\endgroup$
3
  • $\begingroup$ 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! $\endgroup$ Sep 14, 2010 at 22:14
  • $\begingroup$ Do you have a reference or a place where I can read more about this simplex in cube<->hadamard connection ? $\endgroup$ Sep 20, 2010 at 2:16
  • $\begingroup$ 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 . $\endgroup$ Sep 20, 2010 at 9:17
13
$\begingroup$

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.

$\endgroup$
8
$\begingroup$

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.

$\endgroup$
8
  • 1
    $\begingroup$ 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$. $\endgroup$ Sep 14, 2010 at 19:00
  • $\begingroup$ 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) $\endgroup$ Sep 14, 2010 at 19:01
  • 1
    $\begingroup$ You may want to add the detail that you want the points to be in some specific space to the question, Yuraslov. $\endgroup$ Sep 14, 2010 at 19:04
  • 2
    $\begingroup$ 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. $\endgroup$
    – Will Jagy
    Sep 14, 2010 at 19:18
  • 2
    $\begingroup$ In $R^n,$ all coordinates of the final point are $$ \frac{1 - \sqrt{1 + n}}{n} \; \; = \;\; \frac{-1}{1 + \sqrt{1 + n}} $$ $\endgroup$
    – Will Jagy
    Sep 14, 2010 at 21:08
8
$\begingroup$

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]
}
$\endgroup$
3
  • $\begingroup$ This is amazing! So clever $\endgroup$
    – pharmine
    Oct 20, 2016 at 7:51
  • $\begingroup$ Neat trick! ${}$ $\endgroup$ Apr 8, 2017 at 14:33
  • $\begingroup$ 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. $\endgroup$
    – Pushpendre
    May 3, 2018 at 3:09
1
$\begingroup$

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.

$\endgroup$
1
$\begingroup$

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
$\endgroup$
0
$\begingroup$

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)

Matrix picture

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.