算額(その1466)
百二十六 群馬県倉渕村水沼 蓮華院 明治11年(1878)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:円,三分割
#Julia, #SymPy, #算額, #和算
円を面積が等しくなるように 2 本の平行な弦(等線)を引き,3 等分する。円の直径が与えられたとき,等線の長さはいかほどか。」
本問の胆は「円を平行な直線 2 本で三分割する方法」である。
このブログでも算額とは無関係にすでに 2 回取り上げている。
「ホールケーキを三等分する」,「1/3 ずつに分割せよ...変わったケーキカット」
それぞれ,アプローチの仕方は異なるが,今回は簡明直截に SymPy の integrate を使い,等線の長さを求める。
円の半径を 1/2 とする。sqrt(r^2 - x^2) を x0 < x < r まで積分する。
include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cfusing SymPy
using SymPy
using Roots
@syms r::positive, x::positive, x0::positive
r = 1/2
eq = 2integrate(sqrt(r^2 - x^2), (x, x0, r)) - PI*r^2/3
ans_x0 = find_zero(eq, (0, r))
0.13246604230138845
直径 1 の円を 3 分割する等線の長さは 2y0 = 2sqrt(r^2 - ans_x0^2) = 0.9642670742838972
2sqrt(r^2 - ans_x0^2)
0.9642670742838972
「術」によれば,円の直径*(1/1.036933) = 0.9643824625120426
function draw(more)
pyplot(size=(200, 200), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r = 1/2
x0 = 0.13246604230138845
y0 = sqrt(r^2 - x0^2)
println("x0 = $x0, y0 = $y0, 2y0 = $(2y0)")
plot()
circle(0, 0, r, :blue)
segment(x0, y0, x0, -y0, :red)
segment(-x0, y0, -x0, -y0, :red)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:gray80, lw=0.5)
vline!([0], color=:gray80, lw=0.5)
point(x0, y0, "(x0,y0)", :blue, :left, :bottom, delta=delta/2)
point(r, 0, " r", :blue, :left, :bottom, delta=delta/2)
xlims!(-r - 5delta, r + 10delta)
end
end;
draw(true)
※コメント投稿者のブログIDはブログ作成者のみに通知されます