算額(その685)
和算問題あれこれ 2 令和5年2月の問題-No.4(『算法求積通考』第6問)
https://gunmawasan.web.fc2.com/k-n-mondai.html
長径 2 寸,短径 1 寸の楕円形の周は何寸か。
小数点以下 4 位を四捨五入し,小数点以下 3 位まで答えよ。
円周率は 3.14159 を使用のこと。
コンピュータを使って正確な値を求めるならば,第二種完全楕円積分を使えばよい。
計算するためのパッケージ(ライブラリ)が用意されているのでそれを使えばよい。あるいは,区分求積法を使ってもよいし,逐次計算により求めてもよい。
しかし,今回のように要求される精度がほどほどに指定されている場合には,いくつかの近似式があるので精度に基づいて選択すればよい。
以下では,楕円のパラメータとして,長半径 a,短半径 b を使う。
長半径,短半径は長径,短径の半分である。
a = 2//2 # 長径 2
b = 1//2; # 短径 1
まずは,関孝和の近似式
2sqrt(4(a - b)^2 + 3.14159^2*a*b)
4.872286471072899
第二種完全楕円積分の近似式で,Gauss-Kummer の公式
h = (a - b)/(a + b)
3.14159*(a + b)*(1 + (h/2)^2 + h^4/64 + h^6/256)
4.844218858908822
同じく近似式でシュリニヴァーサ・アイヤンガー・ラマヌジャンの近似式
3.14159*(3(a + b) - sqrt((3a + b)*(a + 3b)))
4.844206457106038
名前が似ているが,もう少し精度が高いらしい,シュリニヴァーサ・ラマヌジャンの近似式
3.14159* (a + b)*(1 + 3*((a - b)/(a + b))^2/(10 + sqrt(4 - 3*((a - b)/(a + b))^2)))
4.844220016323984
残念ながら,関孝和の近似式はちょっと精度が足りないが,他の近似公式では「小数点以下 4 位を四捨五入し,小数点以下 3 位まで答えよ」の要件を満たし,4.844 を与える。
なお,第二種完全楕円積分を用いた正確な値は 4.844224110273837 である。
using Elliptic
m = 1.0 - (b / a)^2 # 楕円の離心率を計算
println(4 * a * ellipke(m)[2]) # 楕円の周長を計算(第二種完全楕円積分)
4.844224110273837