■初等幾何の楽しみ(その56)

 周長が

  ∫1/(1-x^n)^(1/2)dx

で表される曲線は

  r^(n/2)=cos(n/2・θ)

である.

 この曲線はバラ曲線あるいは正葉曲線の変形版になっている.(その46)で,n=1〜6の場合について,実の部分(緑)に加えて虚の部分(黄)も描いたが,nが大きくなるにつれてきれいな花弁が描けなくなりる.

 描画のステップサイズを小さくしてもこの事情は変わらない.理論上はきれいな花弁になるはずであるが,計算上アンダーフロー(オ−バーフロー)がおきて,期待通りの図が得られない,つまり,rがある範囲より大きくなるとθを動かしてもr=1となるため,原点付近の曲線が消え輪郭だけが残ってしまうのである.

 誤差の補正方法はあるかもしれないが,私にはわからないので,仕方なしに強制的に0を取らせることにした.そうすれば,n→∞のとき,周長

  ∫(0,1)1/(1-x^n)^(1/2)dx=Γ(1/n)Γ(1/2)/nΓ(1/n+1/2)→Γ(1/n)/n=Γ(1+1/n)→Γ(1)=1

が図形的に明らかになるが,見栄えはしない.

 阪本ひろむ氏に確認してもらったが,描画に関してはMathematicaもマシンサイズの浮動小数点を使っているため,普通のプログラミング言語と同じ結果しか得られないようだ.逆にいえば,マシンによっては誤差を補正することができるはずであって,nが大きいとき円が真っ黒に埋まってしまうが花びらにはなっているはずである.

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