■平行体の体積とグラミアン(その19)

 これまでは計量的な方法と組み合わせ論的な方法を使って,置換多面体と正軸体版の体積公式を「漸化式」の形で求めてきたが,だれも正解を知らない問題であり,正しいかどうかについて確かめる手段が必要になる.漸化式に対して,グラミアンを用いる計量的な計算は(それほど効率的ではないが)正攻法であると思う.

 計算力が鈍ってきている昨今,グラミアンの計算が本当に正しく遂行されるかについてはまったく自信がもてないが,2通りに計算することは家計簿つけのシーンに喩えられると思う.まず行ごとの合計を求めてそれを総計する.次に列ごとの合計を求めてそれを総計する.そして計算が正しければその2つの計算結果は一致するというわけである.

===================================

【1】グラミアン

 2つのベクトルa↑,b↑を基底とする平行体(平行四辺形)の面積は,外積は

  a↑×b↑

3つのベクトルa↑,b↑,c↑を基底とする平行体(平行六面体)の体積は,スカラー三重積

  (a↑×b↑)・c↑

すなわち,外積a↑×b↑とベクトルc↑の内積で与えられます.

 |a↑|=a,|b↑|=bとすれば,平行四辺形の面積は,

  S=absinθ

ですから,

  S^2=a^2b^2(1−cos^2θ)

    =|a↑|^2|b↑|^2−(a↑・b↑)^2

    =|a↑・a↑  a↑・b↑|

     |b↑・a↑  b↑・b↑|

 同様に,平行六面体の体積は

  V^2=|a↑・a↑  a↑・b↑  a↑・c↑|

     |b↑・a↑  b↑・b↑  b↑・c↑|

     |c↑・a↑  c↑・b↑  c↑・c↑|

で与えられます.

 これらのように,内積の行列式で定義される行列式をグラムの行列式(グラミアン)といいます.平行体の面積・体積はグラミアンの平方根に等しくなるというわけです.

 また,座標を使って表せば,n+1個の点の座標に(1,1,1,・・・,1)を加えて作られる(n+1)次の行列式の絶対値になります.

  |S|=|1 x1 y1|   |V|=|1 x1 y1 z1|

      |1 x2 y2|       |1 x2 y2 z2|

      |1 x3 y3|       |1 x3 y3 z3|

                     |1 x4 y4 z4|

 原点が含まれるときは,

  |S|=|x1 y1|   |V|=|x1 y1 z1|

      |x2 y2|       |x2 y2 z2|

                   |x3 y3 z3|

のように展開されます.

 なお,これらはそれぞれn次元単体の体積のn!倍になりますから,三角形面積,四面体の体積は,

  S’=S/2

  V’=V/6

===================================

【2】複体の体積

 d次元空間内のベクトル配置V={v1,・・・,vn}に対して,その平行多面体の体積は

  vol(V)=2^d・Σ|det(v1,・・・,vn)|

で与えられる.すなわち,(n,d)個の項をもつこの公式は複体にも用いることができる.

 しかし,項和の計算を考えると

  V^2=G(v1,・・・,vn)

の方が簡単と思われる.また,置換多面体では切断単体の体積の(d+1)!倍,正軸体版では2^dd!倍が求める体積となる.

[1]正軸体版の体積

  P0(1,0,0,・・・,0)

  P1(1/2,1/2,0,・・・,0)

  P2(1/3,1/3,1/3,・・・,0)

  Pn-1(1/n,1/n,1/n,・・・,1/n)

とおくと,切頂切稜面はPkPnに垂直で,点

  Q=(x,y,z,・・・,w)=((1+(n−1)√2)ω,(1+(n−2)√2)ω,・・・,ω)

を通る.ただし,S=n(n−1)/2,ω=1/(n+S√2),辺の長さは2ω.

 ファセットを定めている不等式は,

  a・x=c

で与えられる.一般に,超平面a・x=cと点x0の距離は

  |a・x0−c|/‖a‖

とくに,原点からファセットまでの距離は|c|/‖a‖となる.

 一般に,

  ‖pk‖^2=Σ(1/(k+1))^2=1/(k+1)

  hk=Σ(1+(n−i)√2)ω/√(k+1)=√(k+1)ω(1+(2n−k−2)/√2)

  Hk=hk/2ω=√(k+1)(1+(2n−k−2)/√2)/2

  vk=Pk/‖pk‖・Hk   (k=0~n-1)

  vn=Q/2ω

[2]置換多面体の体積

  P0=(1−1/(n+1),−1/(n+1),・・・,−1/(n+1))

  P1=(1/2−1/(n+1),1/2−1/(n+1),−1/(n+1),・・・,−1/(n+1))

  Pn-1=(1/n−1/(n+1),・・・,1/n−1/(n+1),−1/(n+1))

とおくと,切頂切稜面はPkPnに垂直で,点

  Q=(n/S−1/(n+1),(n−1)/S−1/(n+1),(n−2)/s−1/(n+1),・・・,−1/(n+1))

を通る.ただし,S=n(n+1)/2,辺の長さは√2|x−y|=√2/S.

 一般に,

  ‖pk‖^2=Σ(1/(k+1)−1/(n+1))^2+Σ(1/(n+1))^2=(n−k)^2/(k+1)(n+1)^2+(n−k)/(n+1)^2=(n−k)/(k+1)(n+1)

  hk=(n−k)/2S・{(k+1)(n+1)/(n−k)}^1/2=1/n・{(k+1)(n−k)/(n+1)}^1/2

  Hk=hkS/√2={(k+1)(n−k)(n+1)/8}^1/2

  vk=Pk/‖pk‖・Hk

としたいところであるが,置換八面体の場合は単純な切頂切稜ではなく,底上げ(揚心)が必要になる.

  vk=Pk/‖pk‖・Hk   (k=0~中央項)

  vk=Pk/‖pk‖・Hn-k-1   (k=中央項~n-1)

  vn=QS/√2

===================================