算額(その564)
一 群馬県高崎市石原町 清水寺 享保20年(1735)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
群馬の算額 1 清水寺
http://takasakiwasan.web.fc2.com/yattemimasennka1.html
キーワード:円6個,外円
外円内に大円 2 個,中円 1 個,小円 2 個が入っている。大円,中円,小円の直径が与えられたとき,外円の直径を求めよ。
外円の半径と中心座標を R, (0, 0)
大円の半径と中心座標を r1, (r1, y1)
中円の半径と中心座標を r2, (0, y2)
小円の半径と中心座標を r3, (r3, y3)
とおき,以下の連立方程式を解く。
流石に,未知数が 4 個とはいえ,他の 3 変数を変数のまま連立方程式を解くのは無理なようで,r1, r2, r3 を数値で与えれば解ける。
include("julia-source.txt");
using SymPy
@syms R::positive, r1::positive, y1::negative, r2::positive, y2::positive, r3::positive, y3::positive
(r1, r2, r3) = (3, 2, 1)
eq1 = r1^2 + y1^2 - (R - r1)^2
eq2 = r3^2 + y3^2 - (R - r3)^2
eq3 = r1^2 + (y2 - y1)^2 - (r1 + r2)^2
eq4 = r3^2 + (y3 - y2)^2 - (r2 + r3)^2
res = solve([eq1, eq2, eq3, eq4], (R, y1, y2, y3))
1-element Vector{NTuple{4, Sym}}:
(22/7 + 16*sqrt(2)/7, -8/7 - 2*sqrt(2)/7, 20/7 - 2*sqrt(2)/7, 12*sqrt(2)/7 + 20/7)
大円,中円,小円の直径がそれぞれ 6, 4, 2 のとき,外円の直径は (22 + 16√2)/7 である。
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(R, y1, y2, y3) = (22/7 + 16*sqrt(2)/7, -8/7 - 2*sqrt(2)/7, 20/7 - 2*sqrt(2)/7, 12*sqrt(2)/7 + 20/7)
plot()
circle(0, 0, R)
circle(r1, y1, r1, :blue)
circle(-r1, y1, r1, :blue)
circle(0, y2, r2, :green)
circle(r3, y3, r3, :magenta)
circle(-r3, y3, r3, :magenta)
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(r1, y1, "大円:r1,(r1,y1)", :blue, :center, delta=-delta/2)
point(0, y2, " 中円:r2\n (0,y2)", :green, :left, :vcenter)
point(r3, y3, " 小円:r3,(r3,y3)", :magenta, :left, :vcenter)
point(R, 0, "R ", :red, :right, :bottom, delta=delta/2)
end
end;