(その14)では双心五角形を扱かったが,今回のコラムでは,双心六角形の場合を扱ってみたい.
===================================
【1】アルゴリズム
外接円:x^2+y^2=R^2
上の2点を(xk,yk),(xk+1,yk+1)とおく.
xk^2+yk^2=R^2
xk+1^2+yk+1^2=R^2
この2点を結ぶ直線:
y−yk=mk(x−xk),mk=(yk+1−yk)/(xk+1−xk)
が,
内接円:(x−d)^2+y^2=r^2
に接することから,判別式=0とおいて,
{d+mk(mkxk−yk)}^2−(1+mk^2){d^2+(mkxk−yk)^2−r^2}=0が得られる.
初期値(x0,y0)=(R,0)から始まって,(x1,y1),(x2,y2),・・・が満たす連立方程式を求める.
xk+1=−R,yk+1=0となるときの(R,r,d)の関係式を求める(k=2,n=6).d=0とおいたとき,
r/R=cos(π/6)
であれば,正解が得られていることが確認できる.
===================================
【2】計算結果
しかし,計算はいつまでたっても終わらない.システムモニタを見る限り,メモリ不足の問題ではなさそうだ.とりあえずJOBはAbortさせてしまった(阪本ひろむ氏談).
そういえば,レムニスケートの5等分点の計算も実に困難であった(→コラム「楕円積分の加法定理」参照)が,グレブナー基底関連の場合,変数の指定の順序が非常に大切で,消去すべき変数の並べ方がこれでいいのかどうか,検討の余地がある.あるいは,最適化の方法があるのかどうか,調べてみないとわからない.
フースは双心五角形,六角形,七角形,八角形に関する公式も見つけているが,それにしてもどうやってそれらを見つけたのだろうか? 純粋な解析幾何学的な方法であると思われるのだが,どこかで補助線を使うとか???
===================================