算額(その540)
和算図形問題あれこれ - 『両式容題問』より
https://gunmawasan.web.fc2.com/kongetu-no-mondai.html
外円内に弦と等円 5 個を入れる。等円の直径が 1 寸のとき,外円の直径はいかほどか。
弦と y 軸の交点の y 座標を a + r とする(下の 3 個の等円の中心の y 座標が a, a < 0 である)。
外円の半径と中心座標を R, (0, 0)
等円の半径と中心座標を r, (r, a + 2r), (2r, a)
として以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms a::negative, r::positive, R::positive
eq1 = (2r)^2 + a^2 - (R - r)^2
eq2 = r^2 + (a + 2r)^2 - (R - r)^2
res = solve([eq1, eq2], (R, a))
1-element Vector{Tuple{Sym, Sym}}:
(r*(1 + sqrt(65)/4), -r/4)
外円の半径は等円の半径の 1 + (√65)/4 ≒ 3.0155644370746373 倍である。
したがって,等円の直径が 1 寸のとき,外円の直径は 3.0155644370746373 寸である。
1 + (√65)/4
3.0155644370746373
その他のパラメータは以下の通り。
a = -0.125; R = 1.50778; 外円の直径 = 3.01556
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r = 1/2
(R, a) = (r*(1 + sqrt(65)/4), -r/4)
@printf("a = %g; R = %g; 外円の直径 = %g\n", a, R, 2R)
plot()
circle(0, 0, R, :blue)
circle(r, a + 2r, r)
circle(-r, a + 2r, r)
circle(2r, a, r)
circle(-2r, a, r)
circle(0, a, r)
segment(-sqrt(R^2 - (a + r)^2), a + r, sqrt(R^2 - (a + r)^2), a + r, :blue)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
point(r, a + 2r, "(r,a+2r)", :red, :center, delta=-delta/2)
point(2r, a, "(2r,a)", :red, :center, delta=-delta/2)
point(0, a, " a", :red, :left, :vcenter)
point(0, a + r, " a+r", :blue, :left, :bottom, delta=delta/2)
point(0, R, " R", :blue, :left, :bottom, delta=delta/2)
end
end;