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

 置換多面体=空間充填2(2^n−1)胞体の元素の形を求めてみたい.2^n+2n胞体の場合は基本単体の辺と超平面の交点を求めるだけなので簡単だったのだが,置換多面体の場合は超平面の数がn−1面となるのでかなり難しい.今回はそのための準備に取り組んでおきたい.

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

【1】置換多面体の切頂・切稜点

  P0(0,・・・,0)

  P1(a1,0,・・・,0)

  P2(a1,a2,0,・・・,0)

  ・・・・・・・・・・・・・

  Pn(a1,・・・,an)

  aj=√(1/2j(j+1))

  xj/aj=yj,y0=1,yn=0(xn=0)

とおく.

  1/aj-1^2+1/aj^2=2(j−1)j+2j(j+1)=(2j)^2

より

  (yj-1−yj)/(1/aj-1^2+1/aj^2)^1/2=(yj−yj+1)/(1/aj^2+1/aj+1^2)^1/2

  (yj-1−yj)/2j=(yj−yj+1)/2(j+1)

となる.

 点Q(x1,x2,・・・,xn-1,0)から,

  x1=a1平面

  x1/a1−x2/a2=0平面

  ・・・・・・・・・・・・・・・

  xn-2/an-2−xn-1/an-1=0平面

までの距離が等しいことより,

  (y0−y1)=(y1−y2)/2=(y2−y3)/3=・・・=(yn-2−yn-1)/(n−1)=(yn-1−yn)/n

  2(y0−y1)=(y1−y2)

  3(y1−y2)=2(y2−y3)

  4(y2−y3)=3(y3−y4)

  ・・・・・・・・・・・・・・・

  (n−1)(yn-3−yn-2)=(n−2)(yn-2−yn-1)

  n(yn-2−yn-1)=(n−1)(yn-1−yn)

 第x行まで足しあわせて整理すると

  2(y0−yn-1)=(n−1)(yn-1−yn)→yn-1=(2y0+(n−1)yn)/(n+1)

  2(y0−yn-2)=(n−2)(yn-2−yn-1)→yn-2=(2y0+(n−2)yn-1)/n

  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

  2(y0−y2)=2(y2−y3)→y2=(2y0+2y3)/4

  2(y0−y1)=(y1−y2)→y1=(2y0+y2)/3

 具体的には

  yn-1=2/(n+1)

  yn-2=(2+2(n−2)/(n+1))/n=2(2n−1)/n(n+1)

  yn-3=2(1+(n−3)(2n−1)/n(n+1))/(n−1)=2(2n−1)/n(n+1)=6(n−1)/n(n+1)

となるが,

  yj=(2+jyj+1)/(j+2)

のままにしておく.ともあれ,これで置換多面体の体積計算の基点だけは求まったことになる.

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

【2】中心から各面までの距離

  Pn(a1,・・・,an)

  aj=√(1/2j(j+1))

と切頂切稜面の距離を求める.

 2次元正単体の場合,

  P2(1/2,√(1/12))=(a1,a2)

  P1(1/2,0)

  P0(0,0)

3次元正単体の場合,

  P3(1/2,√(1/12),√(1/24))=(a1,a2,a3)

  P2(1/2,√(1/12),0)

  P1(1/2,0,0)

  P0(0,0,0)

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

  Q=(x1,・・・,xn)=(a1y1,・・・,anyn)

を通る.

PnP0=(−a1,−a2,・・・,−an)

PnP1=(0,−a2,−a3,・・・,−an)

PnPn-1=(0,・・・,0,−an)

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

  a・x=c

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

  |a・x0−c|/‖a‖

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

 PnP0に垂直なn次元超平面が点Qを通るのだが,原点をPnに移した方が紛らわしくないので

  a=(−a1,−a2,・・・,−an)

  q=(x1−a1,x2−a2,x3−a3,・・・,xn−an)

とすると,この超平面をa・(x−q)=0,a・x=a・q=cで表すと

  c0=−(a1x1+・・・+anxn)+(a1^2+・・・+an^2)

  c0=−(a1^2y1+・・・+an^2yn)+(a1^2+・・・+an^2)

  h0=|c0|/‖a‖,‖a‖=(a1^2+・・・+an^2)^1/2

 PnP1に垂直なn次元超平面では

  a=(0,−a2,・・・,−an)

  c1=−(a2x2+・・・+anxn)+(a2^2+・・・+an^2)

  c1=−(a2^2y2+・・・+an^2yn)+(a2^2+・・・+an^2)

  h1=|c1|/‖a‖,‖a‖=(a2^2+・・・+an^2)^1/2

 PnPn-1に垂直なn次元超平面では

  a=(0,・・・,0,−an)

  cn-1=−anxn+an^2=−an^2yn+an^2

  hn-1=|cn-1|/‖a‖,‖a‖=(an^2)^1/2

  ‖ak‖^2=1/2(k+1)(k+2)+・・・+1/2n(n+1)=1/2(1/(k+1)−1/(n+1))=(n−k)/2(k+1)(n+1)

 辺の長さを1に規格化する.

  Hk=hk/2|x1−a1|=hk/|1−y1|

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

【3】垂線の足

 体積計算には垂線の足までの距離だけでなく,垂線の足の座標も必要になります.Pnからでるn本の辺とQからでるn本の垂線の足を使って体積計算する方法を考えてみましょう.

 直線ax+by+c=0に点P(x0,y0)から下ろした垂線の足をQ(X,Y)とすると,

  aX+bY+c=0,(Y−y0)/(X−x0)=b/a

より,

  b(X−x0)−a(Y−y0)=0・・・(1)

 また,

  ax0+by0+c=ax0+by0−aX−bY=−a(X−x0)−b(Y−y0)

より

  a(X−x0)+b(Y−y0)=−(ax0+by0+c)・・・(2)

 (1),(2)より,垂線の足は

  X−x0=a(ax0+by0+c)/(a^2+b^2)

  Y−y0=b(ax0+by0+c)/(a^2+b^2)

 また,点Pと直線の距離は(1)(2)の辺々2乗して足すと

  (a^2+b^2){(X−x0)^2+(Y−y0)^2}=(ax0+by0+c)^2

より,

  (X−x0)^2+(Y−y0)^2=|ax0+by0+c|/(a^2+b^2)^1/2   (ヘッセの公式)

で与えられます(高次元の場合は推して知るべし).

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