■求積の多様性を考える(その14)

 平行体の体積は行列式(グラミアン)で与えられることから,ゾノトープの体積は平行体に分解して,平行体の体積がグラミアンで与えられることを用いればよい.ミンコフスキー和と呼ばれる平行2n面体分解法である.

 とはいえ,一般の準正多胞体についての効率的な体積計算法は十中八九ない.そこで,直接計算するのではなく,角錐に分解して,漸化式の形で求めることになる.

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

 平行体の体積は

[1]漸化式

[2]行列式(グラミアン)

で与えられる.

[1]では,底体積は漸化式から求められるので,あとは底面までの距離がわかればよいことになる.底体積を直接計算することは可能であるが,思った以上に難航した.

[2]では平行体を分解して,その体積がグラミアンで与えられることを用いればよい.とはいえ,これについても効率的な体積計算法は十中八九なく,地道に計算を続行するしかなかった.

 [1][2]の2通りに計算することは家計簿つけのシーンに喩えられる.まず行ごとの合計を求めてそれを総計する.次に列ごとの合計を求めてそれを総計する.そして計算が正しければその2つの計算結果は一致するというわけである.

 すなわち,[1]だけでは計算の正しさを確認することができないのであるが,[2]の計算量は膨大になる.

 n次元置換多面体はm=n(n+1)/2組の平行なn次元ベクトル,また,その正軸体版はm=n(n−1)+n=n^2組の平行なn次元ベクトル

  V={v1,・・・,vm}

をもつ.したがって,これらの体積は線分のミンコフスキー和

  vol(V)=Σ|det(vi1,・・・,vin)|

で与えられる.(m,n)個の項をもつこの公式は,複体を平行体(parallelepiped)に分解してそのミンコフスキー和ととることを意味しているが,次元が高くなるにつれて[2]は大変難しくなるはず・・・と思っていた.ところが,Mathematicaには便利な組み込み関数があり,

  V={v1,・・・,vm}

の定義さえ済めば,予想以上に速く計算が完了したのである.

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