算額(その1592)
岡山県瀬戸内市長船町土師宮森 片山日子神社 明治6年(1873)
深川英俊,トニー・ロスマン:聖なる数学:算額,p.113,森北出版株式会社,2010年4月22日.
キーワード:円7個,正三角形2個,正六角形
#Julia, #SymPy, #算額, #和算, #数学
正方形の中に正三角形 1 個,大円 1 個,中円 2 個,小円 1 個を容れる。中円の半径を大円の半径で表わせ。
正方形の一辺の長さを a
大円の半径と中心座標を r1, (0, r1)
中円の半径と中心座標を r2, (a/2 - r2, a - r2);
小円の半径と中心座標を r3, (0, a - r3)
とおく。
r1, r3 は簡単に計算できる。
r1 = √3a/6
r3 = (a - √3a/2)/2
求めるのが面倒なのは r2 だけなので,以下の方程式を解く。
ちなみに tan(15°) = 2 - √3 である。
include("julia-source.txt");
using SymPy
@syms r1, r2, r3, a
eq = (a - r2)*tand(Sym(15)) - r2
res = solve(eq, r2)[1] |> simplify;
# r2
res |> println
a*(3 - sqrt(3))/6
問題文が「中円の半径を大円の半径で表せ」なので,「r2/r1」を求めると,中円の半径は大円の半径の √3 - 1 倍である。
r2 = (√3 - 1)*r1
res / (√Sym(3)*a/6) |> simplify |> println
-1 + sqrt(3)
function draw(a, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r1 = √3a/6
r2 = a*(3 - √3)/6
r3 = (1 - √3/2)*a/2
@printf("中円の半径は大円の半径の %g 倍である。\n", √3 - 1 )
plot([a, a, -a, -a, a]./2, [0, a, a, 0, 0], color=:green, lw=0.5)
plot!([a, 0, -a, a]./2, [0, √3a/2, 0, 0], color=:magenta, lw=0.5)
circle2(a/2-r2, a - r2, r2, :blue)
circle(0, r1, r1)
circle(0, a - r3, r3, :brown)
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(0, r1, "大円:r1,(0,r1)", :red, :center, delta=-delta/2)
point(a/2 - r2, a - r2, "中円:r2,(a/2-r2,a-r2)", :blue, :center, delta=-delta/2)
point(0, a - r3, " 小円:r3,(0,R-r3)", :brown, :left, :vcenter)
point(0, √3a/2, " √3a/2", :magenta, :left, delta=-delta/2)
point(a/2, a, "(a/2,a)", :green, :right, :bottom, delta=delta/2)
end
end;
draw(10, true)