■求積の多様性を考える(その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}
の定義さえ済めば,予想以上に速く計算が完了したのである.
===================================