九十二 群馬県富岡市一ノ宮 貫前神社 安政5年(1858)
九十七 群馬県高崎市石原町 清水寺 安政5年(1858)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:円12個,外円,正三角形
#Julia #SymPy #算額 #和算 #数学
外円の中に甲円 1 個,乙円 2 個を容れる。甲円,乙円の中には正三角形を容れ,さらに甲円の中には丙円と等円,乙円の中には 3 個ずつの等円を容れる。外円の直径が 9 寸のとき,等円の直径はいかほどか。

注:本問と関連する算額を「算額(その1410)」に掲示した。違いは甲円の中にある丙円の位置と大きさである。
外円の中の甲円と乙円の位置と大きさについて
外円の半径と中心座標を \(R, (0, 0)\)
甲円の半径と中心座標を \(r_1, (0, R - r_1)\)
乙円の半径と中心座標を \(r_2, (r_2, y_2)\)
等円の半径を \(r\)
とおき,以下の方程式を解く。
(1) 甲円の中の正三角形と丙円 r3,等円 r について以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms r1, r3, r
eq1 = r/(2r1 - 2r3 - r) - 1//2
eq2 = r3/(2r1 - r3) - 1//2
res = solve([eq1, eq2], (r3, r))
res[r3] |> println
res[r] |> println
2*r1/3
2*r1/9
等円の半径は \(r = 2r_1/9\) である。
(2) 乙円の中の正三角形と等円の大きさについては,「算額(その918)」に示したように,乙円の中にある等円の半径は乙円の半径の 1/4 である。\(r = r_2/4\)
よって,\(2r_1/9 = r_2/4\) である。外円の中に甲円と乙円が入っているので,以下の連立方程式を解いて甲円と乙円の半径と中心座標を求める。
@syms R, r1, r2, y2
eq1 = 2r1/9 - r2/4
eq2 = r2^2 + y2^2 - (R - r2)^2
eq3 = r2^2 + (R - r1 - y2)^2 - (r1 + r2)^2
res = solve([eq1, eq2, eq3], (r1, r2, y2))[3] # 3 of 3
(R/2, 4*R/9, -R/3)
甲円の半径 \(r_1\) は外円の半径 \(R\) の 1/2 倍,乙円の半径 \(r_2\) は外円の半径 \(R\) の 4/9 倍である。
甲円の中にある等円の半径は外円の半径 \(R\) の (1/2)*(2/9) = 1/9 倍,乙円の中にある等円の半径は外円の半径 \(R\) の (1/4)*(4/9) = 1/9 倍で等しくなる。
「問」のように外円の直径が 9 寸のとき,等円の直径は 9*(1/9) = 1 寸となり,「答」,「術」と一致する。
\(R = 4.5; r_1 = 2.25; r_2 = 2; y_2 = -1.5\)
甲円の直径 = 4.5,丙円の直径 = 3.0,甲円の中にある等円の直径 = 1.0
乙円の直径 = 4.0,乙円の中にある等円の直径 = 1.0
考察
「九十二 貫前神社」の算額は安政5年戊午3月,「九十七 清水寺」の算額は安政戊午11月に奉納されている。
「百五十一 産泰神社」の算額は年代不明とされている。
多数決ではないが,貫前神社,清水寺のほうが正しいのであろう。
産泰神社のものは,うっかりと図を写し間違えたと思われる。
産泰神社の方が正しいとしても,甲円の中の等円は正三角形の 3 つの隅に 3 個ある方が自然なので,一隅にしかないのはやはり不自然である。貫前神社・清水寺のような場合は甲円の中に等円は 1 個しかないのはもっともである。
描画関数プログラムのソースを見る
function draw_sub(sw, x, y, r, color, color2, color3, color4)
circle(x, y, r, color)
(x1, y1) = r .* (cosd(30), -sind(30))
plot!(x .+ [x1, 0, -x1, x1], y .+ [y1, r, y1, y1], color=color2, lw=0.5)
if sw == 1
r1 = 2r/3
r2 = 2r/9
circle(x, y - r + r1, r1, color4)
circle(x, y - r + 2r1 + r2, r2, color3)
@printf("甲円の直径 = %.15g,丙円の直径 = %.15g,甲円の中にある等円の直径 = %.15g\n", 2r, 2r1, 2r2)
else
for deg in (30, 150, 270)
circle(x + 3r/4*cosd(deg), y + 3r/4*sind(deg), r/4, color3)
end
sw == 2 && @printf("乙円の直径 = %.15g,乙円の中にある等円の直径 = %.15g\n", 2r, 2r/4)
end
end
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
R = 9/2 # 1/2
(r1, r2, y2) = (R/2, 4*R/9, -R/3)
@printf("R = %g; r1 = %g; r2 = %g; y2 = %g\n", R, r1, r2, y2)
plot()
circle(0, 0, R)
# circle(0, R - r1, r1, :orange)
draw_sub(1, 0, R - r1, r1, :green, :chartreuse3, :darkorange, :tomato)
# circle2(r2, y2, r2, :blue)
draw_sub(2, r2, y2, r2, :blue, :darkblue, :darkorange, :none)
draw_sub(3, -r2, y2, r2, :blue, :darkblue, :darkorange, :none)
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/2,(0,R-r1)", :green, :center, delta=-delta/2)
point(0, R/3, "丙円:R/3,(0,R/3)", :tomato, :center, delta=-delta/2)
point(0, 7R/9, "等円:R/9,(0,7R/9)", :tomato, :center, delta=-delta/2)
point(r2, y2, "乙円:4R/9,(r2,y2)", :blue, :center, delta=-delta/2)
point(r2, -2R/3, "等円:R/9,(r2,y2)", :darkorange, :center, delta=-delta/2)
end
end;
draw(true)
以下のアイコンをクリックして応援してください