In geometry, a simplex (plural simplexes or simplices) or n-simplex is an n-dimensional analogue of a triangle. Specifically, a simplex is the convex hull of a set of (n + 1) affinely independent points in some Euclidean space of dimension n or higher (i.e., a set of points such that no m-plane contains more than (m + 1) of them; such points are said to be in general position).
A regular simplex is a simplex that is also a regular polytope. A regular n-simplex may be constructed from a regular (n − 1)-simplex by connecting a new vertex to all original vertices by the common edge length.
The regular simplex family is the first of three regular polytope families, labeled by Coxeter as αn, the other two being the cross-polytope family, labeled as βn, and the hypercubes, labeled as γn. A fourth family, the infinite tessellation of hypercubes he labeled as δn.
|Δn||αn||n-polytope||Graph||Name|| Schläfli symbol|
|Δ-1||α-1||-1-polytope|| Empty set|
|Δ1||α1||1-polytope|| Line segment|
The standard n-simplex (or unit n-simplex) is the subset of Rn+1 given by
The vertices of the standard n-simplex are the points
The oriented volume of an n-simplex in n-dimensional space with vertices (v0, ..., vn) is
where each column of the n × n determinant is the difference between the vectors representing two vertices. Without the 1/n! it is the formula for the volume of an n-parallelepiped. One way to understand the 1/n! factor is as follows. If the coordinates of a point in a unit n-box are sorted, together with 0 and 1, and successive differences are taken, then since the results add to one, the result is a point in an n simplex spanned by the origin and the closest n vertices of the box. The taking of differences was an orthogonal (volume-preserving) transformation, but sorting compressed the space by a factor of n!.
The volume under a standard n-simplex (i.e. between the origin and the simplex in Rn+1) is
The volume of a regular n-simplex with unit side length is
as can be seen by multiplying the previous formula by xn+1, to get the volume under the n-simplex as a function of its vertex distance x from the origin, differentiating with respect to x, at (where the n-simplex side length is 1), and normalizing by the length of the increment, , along the normal vector.
The sum of the squared n-dimensional volumes of the hyperfaces adjacent to the orthogonal corner equals the squared n-dimensional volume of the hyperface opposite of the orthogonal corner.
The Hasse diagram of the face lattice of an n-simplex is isomorphic to the graph of the (n+1)-hypercube's edges, with the hypercube's vertices mapping to each of the n-simplex's elements, including the entire simplex and the null polytope as the extreme points of the lattice (mapped to two opposite vertices on the hypercube). This fact may be used to efficiently enumerate the simplex's face lattice, since more general face lattice enumeration algorithms are more computationally expensive.
The n-simplex is also the vertex figure of the (n+1)-hypercube.
In algebraic topology, simplices are used as building blocks to construct an interesting class of topological spaces called simplicial complexes. These spaces are built from simplices glued together in a combinatorial fashion. Simplicial complexes are used to define a certain kind of homology called simplicial homology.
A finite set of k-simplexes embedded in an open subset of Rn is called an affine k-chain. The simplexes in a chain need not be unique; they may occur with multiplicity. Rather than using standard set notation to denote an affine chain, it is instead the standard practice to use plus signs to separate each member in the set. If some of the simplexes have the opposite orientation, these are prefixed by a minus sign. If some of the simplexes occur in the set more than once, these are prefixed with an integer count. Thus, an affine chain takes the symbolic form of a sum with integer coefficients.
Note that each face of an n-simplex is an affine n-1-simplex, and thus the boundary of an n-simplex is an affine n-1-chain. Thus, if we denote one positively-oriented affine simplex as
with the denoting the vertices, then the boundary of σ is the chain
More generally, a simplex (and a chain) can be embedded into a manifold by means of smooth, differentiable map . In this case, both the summation convention for denoting the set, and the boundary operation commute with the embedding. That is,
where the are the integers denoting orientation and multiplicity. For the boundary operator , one has:
where φ is a chain. The boundary operation commutes with the mapping because, in the end, the chain is defined as a set and little more, and the set operation always commutes with the map operation (by definition of a map).
A continuous map to a topological space X is frequently referred to as a singular n-simplex.
(Also called Simplex Point Picking) There are at least two efficient ways to generate uniform random samples from the unit simplex.
The first method is based on the fact that sampling from the K-dimensional unit simplex is equivalent to sampling from a Dirichlet distribution with parameters α = (α1, ..., αK) all equal to one. The exact procedure would be as follows:
Sometimes, rather than picking a point on the simplex at random we need to perform a uniform random walk on the simplex. Such random walks are frequently required for Monte Carlo method computations such as Markov chain Monte Carlo over the simplex domain.
An efficient algorithm to do the walk can be derived from the fact that the normalized sum of K unit-exponential random variables is distributed uniformly over the simplex. We begin by defining a univariate function that "walks" a given sample over the positive real line such that the stationary distribution of its samples is the unit-exponential distribution. The function makes use of the Metropolis-Hastings algorithm to sample the new point given the old point. Such a function can be written as the following, where h is the relative step-size:
Then to perform a random walk over the simplex:
next_point <- function(x_old)
x_new <- x_old * exp(Random_Normal(0,h) )
metropolis_ratio <- exp(-x_new) / exp(-x_old)
hastings_ratio <- (x_new / x_old )
acceptance_probability <- min(1 , metropolis_ratio * hastings_ratio )
if (acceptance_probability > Random_Uniform(0,1) ) break
The set of ti will be restricted to the simplex, and will walk ergodically over over the domain with a uniform stationary density. Note that it is important not to re-normalize the xi at each step; doing so will result in a non-uniform stationary distribution. Instead, think of the xi as "hidden" parameters, with the simplex coordinates given by the set of ti.