算額(その2109)
百三十四 群馬県富岡市一ノ宮 貫前神社 明治20年(1887)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:円8個
#Julia, #SymPy, #算額, #和算
大円 3 個と小円 1 個が交わり,その隙間に等円 3 個,甲円 1 個を容れる。小円の直径が 5 寸,等円の直径が 2 寸のとき,甲円の直径はいかほどか。
大円の半径と中心座標を r1, (0, 0), (r3 + r1)
小円の半径と中心座標を r2, (0, r3 + r2)
甲円の半径と中心座標を r3, (0, 0)
等円の半径と中心座標を r4, (r3 + r4, 0), (0, r3 + r4)
とおき,以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms r1::positive, r2::positive,
r3::positive, r4::positive;
eq1 = r3 + 2r4 - r1
eq2 = (r3 + r1)^2 + (r3 + r2)^2 - (r1 + r2)^2
res = solve([eq1, eq2], (r1, r3))[1]
(sqrt(r4)*sqrt(4*r2 + r4)/2 + 3*r4/2, sqrt(r4)*sqrt(4*r2 + r4)/2 - r4/2)
大円の半径は (√r4*sqrt(4r2 + r4) + 3r4)/2
甲円の半径は (√r4*sqrt(4r2 + r4) - r4)/2
である。
小円の直径が 5 寸,等円の直径が 2 寸のとき,大円の直径は 6.31662479035540 寸,甲円の直径は 2.31662479035540 寸である。
2res[1](r2 => 5/2, r4 => 2/2) |> println
2res[2](r2 => 5/2, r4 => 2/2) |> println
6.31662479035540
2.31662479035540
function draw(r2, r4, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r1, r3) = (sqrt(r4)*sqrt(4*r2 + r4)/2 + 3*r4/2, sqrt(r4)*sqrt(4*r2 + r4)/2 - r4/2)
r1 = (√r4*sqrt(4r2 + r4) + 3r4)/2
r3 = (√r4*sqrt(4r2 + r4) - r4)/2
@printf("小円の直径が %g,等円の直径が %g のとき,大円の直径は %g,甲円の直径は %g である。", 2r2, 2r4, 2r1, 2r3)
plot()
circle(0, 0, r1, :blue)
circle2(r3 + r1, 0, r1, :blue)
circle(0, r3 + r2, r2, :magenta)
circle(0, 0, r3, :green)
circle2(r3 + r4, 0, r4)
circle(0, r3 + r4, r4)
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(r3 + r1, 0, "大円:r1\n(r3+r1,0)", :blue, :center, delta=-delta/2)
point(0, r3 + r2, "小円:r2\n(0,r3+r2)", :magenta, :center, :bottom, delta=delta/2)
point(r3, 0, "r3 ", :green, :right, :vcenter)
point(0, 0, "甲円", :green, :center, :vcenter, mark=false)
point(r3 + r4, 0, "r3+r4", :red, :center, delta=-delta/2)
point(r3 + r4, 0, "等円", :red, :center, :bottom, delta=delta/2, mark=false)
end
end;
draw(5/2, 2/2, true)