算額(その1537)
(17) 京都府京都市東山区清水 清水寺 明治25年(1892)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:半円1個,扇,斜線2本
#Julia, #SymPy, #算額, #和算
1/3 円でできる扇に,半円 1 個と斜線 2 本を容れる。扇長(要から扇の先端までの長さ)が 20 寸,骨径(見えている骨の長さ)が 8寸のとき,斜線の長さ,半円の直径はいかほどか。
扇長を R, 骨長を r2
半円の半径と中心座標を r1, (0, R - r1)
とおき,以下の方程式を解いて r1 を求める。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r1, r2
eq1 = r1/(√Sym(3)*R/2) - (R - r1 - r2)/(R/2 - r2);
ans_r1 = solve(eq1, r1)[1]
ans_r1 |> println
3*R*(R - r2)/(sqrt(3)*R + 3*R - 2*sqrt(3)*r2)
半円の半径は 3R*(R - r2)/(√3R + 3R - 2√3r2) である。
2*ans_r1(R => 20, r2 => 8).evalf() |> println
21.5155932850234
扇長が 20 寸,骨長が 8 寸のとき,半円の直径は 21.5155932850234 寸である。
斜線の端点は (0, r2), (√3R/2, R/2) なので,直接計算できる。
sqrt((√Sym(3)R/2)^2 + (R/2 - r2)^2)(R => 20, r2 => 8).evalf() |> println
17.4355957741627
斜線の長さは 17.4355957741627 寸である。
function draw(R, r2, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r1 = 3R*(R - r2)/(√3R + 3R - 2√3r2)
plot([-√3R/2, 0, √3R/2], [R/2, r2, R/2], color=:green, lw=0.5)
circle(0, 0, R, beginangle=30, endangle=150)
plot!([-√3R/2, 0, √3R/2], [R/2, 0, R/2], color=:red, lw=0.5)
circle(0, 0, r2, :magenta, beginangle=30, endangle=150)
circle(0, R - r1, r1, :blue, beginangle=0, endangle=180)
segment(-r1, R - r1, r1, R - r1, :blue)
for θ = 30:15:150
segment(0, 0, r2*cosd(θ), r2*sind(θ), :black, lw=2)
end
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, R, "R", :red, :center, :bottom, delta=delta)
point(0, R - r1, "R-r1", :blue, :center, :bottom, delta=delta)
point(0, r2, "r2", :magenta, :center, :bottom, delta=delta/2)
circle(0, 0, r2/3, beginangle=0, endangle=30, lw=2)
point(√3r2/6, 0, "30°", :red, :left, :bottom, delta=delta, deltax=4delta, mark=false)
end
end;
draw(20, 8, true)