算額(その1471)
街角の数学 Street Wasan ~落書き帳「○△□」~ 388.○△□の新算額(その1)
http://streetwasan.web.fc2.com/math18.1.25.html
正方形内に,正三角形 1 個,四分円弧 2 個,中円 1 個を容れる。中円は,正三角形の 2 辺と両円弧に接している。正方形の辺の長さを一寸とするとき,中円の半径を求めよ。
正方形の一辺の長さを a
中円の半径と中心座標を r, (0, y)
とおき,以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms a, r, y
eq1 = (a/2)^2 + (a - y)^2 - (a - r)^2
eq2 = 2r - (sqrt(Sym(3))a/2 - y)
res = solve([eq1, eq2], (r, y))[1] # 1 of 2
(-a*(12 - sqrt(3))/12 + sqrt(3)*a/4 + sqrt(3)*a*sqrt(3 - sqrt(3))/3, -2*sqrt(3)*a*sqrt(3 - sqrt(3))/3 + a*(12 - sqrt(3))/6)
# r
res[1] |> factor |> println
a*(-3 + sqrt(3) + sqrt(3)*sqrt(3 - sqrt(3)))/3
中円の半径は,正方形の一辺の長さの (-3 + sqrt(3) + sqrt(3)*sqrt(3 - sqrt(3)))/3 倍である。
正方形の一辺の長さが 1 寸のとき,中円の直径は 0.454930873066724 寸である。
2*res[1](a => 1).evalf() |> println
0.454930873066724
# y
res[2] |> factor |> println
-a*(-12 + sqrt(3) + 4*sqrt(3)*sqrt(3 - sqrt(3)))/6
function draw(a, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
t = √3sqrt(3 - √3)
r = a*(-3 + √3 + t)/3
y = a*(12 - √3 - 4t)/6
@printf("正方形の一辺の長さ = %g; 中円の直径 = %g; y = %g\n", a, 2r, y)
plot([a/2, a/2, -a/2, -a/2, a/2], [0, a, a, 0, 0], color=:green, lw=0.5)
plot!([a/2, 0, -a/2, a/2], [0, √3a/2, 0, 0], color=:magenta, lw=0.5)
circle(a/2, a, a, beginangle=180, endangle=270)
circle(-a/2, a, a, beginangle=270, endangle=360)
circle(0, y, r, :blue)
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(a/2, a, "(a/2,a)", :green, :right, :bottom, delta=delta/2)
point(0, y, "中円:r,(0,y)", :blue, :center, delta=-delta/2)
point(0, √3a/2, " √3a/2", :magenta, :left, :vcenter)
end
end;
draw(1, true)