单纯形

幾何學上，**單體**或者**_n_- 單體**是和三角形類似的 _n_ 維幾何體。精確的講，單體是某個 n 維以上的歐幾里得空間中的（_n_+1）個仿射無關（也就是沒有 _m-1_ 維平面包含 _m_+1 個點；這樣的點集被稱為處於一般位置）的點的集合的凸包。

例如，0 - 單體就是點，1 - 單體就是線段，2 - 單體就是三角形，3 - 單體就是四面體，而 4 - 單體是一個五胞體（每種情況都包含內部）。

**正單體**是同時也是正多胞形的單體。正 _n_- 單體可以從正 (_n_− 1)- 單體通過將一個新頂點用同樣的邊長連接到所有舊頂點構造。

## 基礎

任何 _n+1_ 點集的非空子集的凸包定義了一個 n - 單體，稱為該 n - 單體的**面**。面本身也是單體。（_n+1_ 點）的 _m+1_ 子集的凸包是一個 m - 單體，稱為 n - 單體的**_m_- 面**。 0 - 面（也即，一個點構成的面）稱為**頂點**，而 1 - 面稱為**邊**，(_n_− 1)- 面稱為**面片**，而 _n_- 面就是 _n_- 單體本身。一般來講，_m_- 面的個數等於二項式係數 _C_(_n_ + 1, _m_ + 1)。因此，_n_- 單體的 _m_- 面的個數可以在楊輝三角形的第 (_n_+1) 行和第 (_m_+1) 列找到。_面_和_面片_在描述單體複形中的單體的類型時可能有不同的含義。參看單體複形 #定義。

**正單體**族是三族正多胞體的第一組，Coxeter 將之記為 _αn_，其它兩類為正軸體，記為 _βn_，和超立方體，記為 _γn_。第四組，超立方體的無窮分割被記為 _δn_。

## 列表所用 MAPLE 公式

* 使用（combstruct）:for n from 0 to 11 do seq (count (Combination (n), size=m) , m = 1 .. n) od;
* OEIS A135278 [1]

## 標準單體

**標準 _n_- 單體**(或稱**單位 _n_- 單體**) 是 **R**n+1 的子集：

　
: $\Delta ^{n}=\left\{(t_{0},\cdots ,t_{n})\in \mathbb {R} ^{n+1}\mid \sum _{i=0}^{n}{t_{i}}=1{\mbox{ and }}\forall i,\ t_{i}\geq 0\right\}$

單體 Δn 位於仿射超平面（該超平面可以通過將上面 _t_i ≥ 0 的條件去掉而得到）。標準單體顯然是正單體。

標準 _n_- 單體的頂點為

　
: _e_0 = (1, 0, 0, …, 0),

　
: _e_1 = (0, 1, 0, …, 0),

　
: $\vdots $

　
: _e_n = (0, 0, 0, …, 1).

存在從標準 _n_- 單體到頂點為 (_v_0, …, _v_n) 的任意 _n_- 單體的標準映射

　
: $(t_{0},\cdots ,t_{n})\mapsto \Sigma _{i}t_{i}v_{i}$

係數 _t_i 稱為點在 _n_- 單體中的重心坐標。這樣的一般單體常常被稱為**仿射 _n_- 單體**，以強調該標準映射是仿射轉換。它有時也稱為**定向放射 _n_- 單體**以強調標準映射可以是保定向或者是反定向的。

## 幾何屬性

在 _n_ 維空間中的頂點為 (_v_0, ..., _v_n) 的 _n_- 單體的定向體積是

　
: ${1 \over n!}\det {\begin{pmatrix}v_{1}-v_{0}&v_{2}-v_{0}&\dots &v_{n-1}-v_{0}&v_{n}-v_{0}\end{pmatrix}}$

其中 _n_ × _n_ 行列式的每列是代表兩個頂點的向量之差。去掉 1/_n_! 的公式是 _n_- 平行多面體的體積。理解 1/_n_! 因子的一個方法如下：在單位 _n_ 維盒子的取任意一點，將其坐標分量和 0 一起排序，然後將相鄰數取差值，得到的數組構成原點和與其最近的 _n_ 個頂點構成的 _n_- 單體中的一點的坐標；取差值的轉換是一個保體積的轉換，而排序則將點的個數減少到 1/_n_!。

標準 _n_- 單體下的體積（也即，**R**n+1 中的原點和單體之間的體積）是

　
: ${1 \over (n+1)!}$

單位邊長的正 _n_- 單體的體積是

　
: ${\frac {\sqrt {n+1}}{n!{\sqrt {2^{n}}}}}$

這個結果可以導出如下：將上一個公式乘以 _x_n+1，得到作為頂點離原點距離（所有頂點和原點等距）的函數的 _n_- 單體下的體積；對 _x_ 微分，取導數在 $x=1/{\sqrt {2}}$ 的值（因為這個位置 _n_- 單體邊長為 1），這個導數需要除以 ${\sqrt {n+1}}$ ，因為增量 $(dx,\dots ,dx)$ （垂直於 _n_- 單體的法向）的長度為 ${\sqrt {n+1}}$ 。

### "直角" 的單體

這裡的直角表示存在一個頂點，其所有相鄰超平面兩兩垂直。這樣的單體是直角三角形的一個推廣，對於它們存在著一個 n 維的畢達哥拉斯定理:

所有和直角相鄰的 n 維超面的體積平方之和等於對面的 n 維體積的平方。

　
: $\sum _{k=1}^{n}|A_{k}|^{2}=|A_{0}|^{2}$

其中 $A_{1}\ldots A_{n}$ 是兩兩垂直但不垂直於 $A_{0}$ 的超面，而 $A_{0}$ 是直角的對面。

對於 2 - 單體，這個定理就是畢達哥拉斯定理，而對於 3 - 單體這個是適用於帶立方角四面體的德古阿定理。

## 拓撲

拓撲上，_n_- 單體是拓撲等價於 _n_- 球體的。每個 _n_- 單體是 _n_ 維帶邊界流形。

代數拓撲上，單體是用於構建一類稱為單體複形的常用拓撲空間的基本元素。這些空間可以通過將單體用組合方式粘合在一起來構造。單體複形用於定義特定的一類同調，稱為單純同調。

嵌入到 **R**n 的開子集中的 _k_- 單體的有限集稱為**仿射 _k_- 鏈**。在鏈中的單體不必唯一；它們可以重複出現。通常不採用集合的記法來標識仿射鏈，而是採用加號將它們連起來。若有些單體有相反的定向，它們可以用減號。如果有些單體出現多次，可以放一個整數在前面表示出現次數。這樣，仿射鏈可以用整係數的線性組合表示。

注意 _n_- 單體的每個面是一個仿射 _n-1_- 單體，因此 _n_- 單體的邊界可以用一個仿射 _n-1_- 鏈來表示。如果定義一個正定向的單體

　
: $\sigma =[v_{0},v_{1},v_{2},...,v_{n}]$

其中 $v_{j}$ 代表頂點，則其邊界 $\partial \sigma $ 是如下鏈

　
: $\partial \sigma =\sum _{j=0}^{n}(-1)^{j}[v_{0},...,v_{j-1},v_{j+1},...,v_{n}]$ .

更一般的，單體（以及鏈）可以通過光滑可微映射嵌入到流形中： $f\colon \mathbb {R} ^{n}\rightarrow M$ 。這個情況下，加法表示和邊界算子都和嵌入可交換。也即

　
: $f(\sum \nolimits _{i}a_{i}\sigma _{i})=\sum \nolimits _{i}a_{i}f(\sigma _{i})$

其中 $a_{i}$ 是標識定向和重次的整數。對於邊界算子 $\partial $ ，有

　
: $\partial f(\phi )=f(\partial \phi )$

其中 φ 為鏈。邊界算子和映射可交換，是因為，鏈基本就是一個集合，而集合操作和映射是可交換的（按照映射的定義）。

到拓撲空間 _X_ 中的連續映射 $f:\sigma \rightarrow X$ 常常被稱為**奇異 _n_- 單體**。因為 f 可以有奇異點。

## 隨機採樣

(也稱**單體采點**) 有兩種在單位 _K-1_- 單體中產生有效產生均勻分布的採樣方法。

第一種方法基於從 _K-1_ 維單位單體採樣等價於從參數 _α_ = (_α_1, ..., _α_K) 都等於 1 的狄利克雷分布中採樣的事實。確切的流程為：

* 產生 _K_ 個服從單位指數分布的隨機數 _x_1, ..., _x_K.
  * 這可以通過產生 _K_ 個在開區間 (0,1) 中均勻分布的隨機數 _y_i 然後取 _x_i=-ln(_y_i).
* 令 _S_ 為 _x_i 之和。
* 單位單體中的點的 _K_ 個坐標 _t_1, ..., _t_K 由 _t_i=_x_i/_S_ 給出。

第二個方法是基於單位區間上的均勻分布的順序統計量（參看 Devroye, p.568）。算法如下：

* 令 _p_0 = 0 而 _p_K=1.
* 產生 _K_-1 個開區間 (0,1) 上均勻分布的隨機數 _p_i。
* 將 _K_+1 點 _p_0, ..., _p_K 排序。
* 單位單體中的點的 _K_ 個坐標 _t_1, ..., _t_K 由 _t_i=_p_i-_p_i-1 給出。

### 隨機漫遊

有時需要在單體中進行均勻隨機漫遊而不是取一點。這樣的隨機漫遊在蒙特卡羅法中經常用到，譬如單體域中的馬可夫鏈蒙特卡羅。

可以從單位化 _K_ 個指數分布隨機向量來得到單體中的均勻分布來衍生出漫遊的有效算法。首先定義一個單變數函數在正實直線上 "漫遊"，其採樣點的靜態分布為單位指數分布。該函數利用 Metropolis-Hastings 算法從舊點得到新點。這個函數偽代碼如下，其中 _h_ 是相對步長：

`` ```
next_point <- function(x_old)
{
    repeat {
        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
    }
    return(x_new)
}
``` `` 然後在單體中隨機漫遊:

* 取服從單位指數分布的隨機變數 _x_i, _i_= 1, 2, ..., _K_.
* 對於每個 _i_= 1, 2, ..., _K_
  * _x_i ← next\_point(_x_i)
* 令 _S_ 為 _x_i 之和
* 令 _t_i = _x_i/_S_（對於所有 _i_= 1, 2, ..., _K_）

_t_i 限制在單體中，並會以均勻的靜態分布密度來反覆遍歷整個區域。注意不要每一步都單位化 _x_i；那樣會得到非均勻的靜態分布。實際上，應該把 _x_i 視為 "隱" 參數，而 _t_i 才給出單體中的坐標。

## 參看

## 參考文獻

## 外部連結

* Olshevsky, George，《超空間術語表》中的單體（英語）
* OEIS A135278 給出數字 T (n,m) = 二項式係數 (n+1,m+1) 的三角形；或者說，除去左邊的楊輝三角形 A007318。 [2]

## 延伸閱讀

* Walter Rudin, _Principles of Mathematical Analysis (Third Edition)_, (1976) McGraw-Hill, New York, ISBN 0-07-054235-X _(參看第 10 章中對拓撲性質的簡單回顧。)_.
* Andrew S. Tanenbaum, _Computer Networks (4th Ed)_, (2003) Prentice Hall, ISBN 0-13-066102-3 _(See 2.5.3)_.
* Luc Devroye, _Non-Uniform Random Variate Generation._ (1986) ISBN 0-387-96305-7.
* H.S.M. Coxeter, _Regular Polytopes_, Third edition, (1973), Dover edition, ISBN 0-486-61480-8
  * p120-121
  * p.296, Table I (iii): Regular Polytopes, three regular polytopes in n-dimensions (n>=5)
* 埃里克・韋斯坦因. Simplex. MathWorld.