八 武州足立郡桶川宿 不動堂 文化3年(1806)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:円8個
#Julia #SymPy #算額 #和算 #数学
大円 4 個が交わっている隙間に天円 2 個,等円 2 個を容れる。天円の直径が 15 寸のとき,等円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (0,\ r_1/2),\ (\sqrt{3}r_1/2,\ 0)\)
天円の半径と中心座標を \(r_2,\ (0,\ 3r_1/2 - r_2)\)
等円の半径と中心座標を \(r_3,\ (\sqrt{3}r_1/2 + r_1 - r_3,\ 0)\)
とおき,以下の方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms r1::positive, r2::positive, r3::positive;
eq1 = (√Sym(3)*r1/2)^2 + (3r1/2 - r2)^2 - (r1 + r2)^2
eq2 = (√Sym(3)*r1/2 + r1 - r3)^2 + (r1/2)^2 - (r1 + r3)^2;
方程式を簡約化してから解く。
eq11 = eq1 |> factor |> x -> x/r1
\(\displaystyle 2 r_{1} - 5 r_{2}\)
eq12 = eq2 |> factor |> x -> x/r1
\(\displaystyle r_{1} + \sqrt{3} r_{1} - 4 r_{3} - \sqrt{3} r_{3}\)
res = solve([eq11, eq12], (r1, r3))
\begin{equation*}\begin{cases}r_{1} & \text{=>} &\frac{5 r_{2}}{2}\\r_{3} & \text{=>} &\frac{5 r_{2}}{2 \sqrt{3} + 8} + \frac{5 \sqrt{3} r_{2}}{2 \sqrt{3} + 8}\\\end{cases}\end{equation*}
大円の半径 \(r_1\) は,天円の半径 \(r_2\) の \(5/2\) 倍である。
# r1
res[r1]
\(\displaystyle \frac{5 r_{2}}{2}\)
天円の直径が 15 寸のとき,大円の直径は \(15\cdot 5/2 = 37.5\) である。
15*(5/2)
37.5
等円の半径 \(r_3\) は,天円の半径 \(r_2\) の \(5(1 + 3\sqrt{3})/26\) 倍である。
# r3
res[r3] |> simplify |> factor
\(\displaystyle \frac{5 r_{2} \left(1 + 3 \sqrt{3}\right)}{26}\)
天円の直径が 15 寸のとき,等円の直径は \(15\cdot 5(1 + 3\sqrt{3})/26 = 17.873516603961438\) である。
res[r3](r2 => 15/2).evalf() * 2 |> println
17.8735166039614
「術」は以下のようになっており,簡約化すると同じ関係式になる。
@syms 天径, d
子 = √Sym(3) + 1
等円径 = 子/2(子 + 3)*5天径
apart(等円径, d) |> simplify |> factor
\(\displaystyle \frac{5 天径 \left(1 + 3 \sqrt{3}\right)}{26}\)
天円の直径が 15 寸のとき,等円の直径は \(15\cdot 5(1 + 3\sqrt{3})/26 = 17.873516603961438\) である。
等円径(天径 => 15).evalf() |> println
17.8735166039614
描画関数プログラムのソースを見る
function draw(r2, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r1 = 5r2/2
r3 = 5r2*(1 + 3√3)/26
@printf("天円の直径が %g のとき,等円の直径は %g,大円の直径は %g である。\n", 2r2, 2r3, 2r1)
plot()
circle2(√3r1/2, 0, r1)
circle22(0, r1/2, r1)
circle22(0, 3r1/2 - r2, r2, :green)
circle2(√3r1/2 + r1 - r3, 0, r3, :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(0, r1/2, " r1/2", :red, :left, :bottom, delta=delta/4)
point(√3r1/2, 0, "√3r1/2 ", :red, :right, delta=-delta/2)
point(0, 3r1/2 - r2, "天円:r2\n(0,3r1/2-r2)", :green, :center, delta=delta/2)
point(√3r1/2 + r1 - r3, 0, "等円:r3\n(√3r1/2+r1-r3, 0)", :blue, :center, :bottom, delta=delta/2)
end
end;
draw(15/2, true)
以下のアイコンをクリックして応援してください