18 岩手県江刺市大通り 中善観音 文政10年(1827)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:円9個,正方形,斜線
#Julia #SymPy #算額 #和算 #数学
正方形の中に 8 本の斜線と大円,中円,小円を容れる。中円と小円の直径の和が 1 寸のとき,大円の直径はいかほどか。

正方形の一辺の長さを \(2a\)
大円の半径と中心座標を \(r_1,\ (0,\ 0)\)
中円の半径と中心座標を \(r_2,\ (c_{x2},\ c_{y2})\)
小円の半径と中心座標を \(r_3,\ (c_{x3},\ c_{y3})\)
とおき,逐次的に解を求める。
1. 大円の半径
最も単純には,大円の中心から斜線までの距離が \(r_1\) になるように \(r_1\) を求めればよい。
半径は \(r_1 = \sqrt{5}a/5\) である。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms a::positive, r1::positive
eq0 = dist2(0, 0, 2a, a, a, a, r1)
solve(eq0, r1)[1] |> println
sqrt(5)*a/5
図形を丁寧に描き,計算に必要ないくつかの交点の座標を求めておくと(図参照),大円の直径は線分 AC に等しく,その長さは \(\sqrt{(8a/5 - 4a/5)^2 + (4a/5 - 2a/5)^2} = 2\sqrt{5}a/5\) である。
sqrt( (8a/5 - 4a/5)^2 + (4a/5 - 2a/5)^2) |> println
2*sqrt(5)*a/5
2. 中円の半径と中心座標
大円と中円は,⊿OAB,⊿OCD に内包されている。⊿OAB と ⊿OCD は相似で,相似比は OA:OC = 2:1 なので,中円の半径は大円の半径の 1/2 で,\(r_2 = r_1/2 = \sqrt{5}a/10\) である。
@syms r2::positive, cx2::positive, cy2::positive
r1 = √Sym(5)a/5
r2 = r1/2
sqrt(5)*a/10
中円の中心座標 \( (c_{x2},\ c_{y2})\) は,2 本の斜線までの距離が \(r_2\) に等しいという連立方程式を解けばよい。
eq1 = dist2(0, 0, a, 2a, cx2, cy2, r2)
eq2 = dist2(0, 0, 2a, a, cx2, cy2, r2)
res1 = solve([eq1, eq2], (cx2, cy2))[1]
(a/2, a/2)
中円の中心座標は \( (a/2,\ a/2)\) である。
3. 小円の半径と中心座標
中円と小円は,⊿OEF, ⊿HEG に内包されている。⊿OEF, ⊿HEG は相似で,相似比は OF:HG = \(a:2a/3\) = 3:2 なので,小円の半径は中円の半径の 2/3 で,\(r_3 = \sqrt{5}a/15\) である。
小円の中心座標 \( (c_{x3}, c_{y3})\) は,中心から線分 GH,GE までの距離が \(r_3\) に等しいという連立方程式を解けばよい。
@syms r3::positive, cx3::positive, cy3::positive
r3 = √Sym(5)a/15
eq3 = dist2(0, a, 2a, 2a, cx3, cy3, r3)
eq4 = dist2(0, a, 2a, 0, cx3, cy3, r3)
res2 = solve([eq3, eq4], (cx3, cy3))[1]
(a/3, a)
小円の中心座標は \( (a/3, a)\) である。
4. 小円の半径が与えられたときの大円の半径
これまでをまとめると,小円,中円,大円の半径は \(\sqrt{5}a/15,\ \sqrt{5}a/10,\ \sqrt{5}a/5\) である。
r3, r2, r1
(sqrt(5)*a/15, sqrt(5)*a/10, sqrt(5)*a/5)
「問」は「中円と小円の直径の和が 1 寸のとき,大円の直径はいかほどか」なので,以下の方程式を解き \(a\) を求め,\(r_1\) の式に代入すれば大円の半径が求まる。
eq = r2 + r3 - 1//2
solve(eq, a)[1] |> println
3*sqrt(5)/5
r1(a => 3√Sym(5)/5) |> println
3/5
大円の半径は 3/5 寸,すなわち,直径は 6/5 = 1.2 寸である。
描画関数プログラムのソースを見る
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
a = 1
r1 = sqrt(5)*a/5 # = sqrt( (x1 - 2a + y1)^2 + (y1 - x1)^2)/2
r2 = r1/2
r3 = 2r2/3
plot([0, 2a, 2a, 0, 0], [0, 0, 2a, 2a, 0], color=:green, lw=0.5)
plot!([0, 2a, 0, a, 2a, 0, 2a, a, 0], [0, a, 2a, 0, 2a, a, 0, 2a, 0], color=:blue, lw=0.5)
circle(a, a, r1, :red, lw=1)
circle(a/2, a/2, r2, :orange)
circle(a/3, a, r3, :green)
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, 0, "O:(0,0)", :black, :left, delta=-delta/2)
point(8a/5, 4a/5, " A:(8a/5,4a/5)", :black, :left, delta=-delta/2)
point(a, 2a, " B:(a,2a)", :black, :center, :bottom, delta=delta/2)
point(4a/5, 2a/5, " C:(4a/5,2a/5)", :black, :left, delta=-delta/2)
point(a/2, a, " D:(a/2,a)", :black, :left, :vcenter)
point(2a/5, 4a/5, "E:(2a/5,4a/5) ", :black, :right, :vcenter)
point(a, a/2, " F:(a,a/2)", :black, :left, :vcenter)
point(0, a, "G:(0,a) ", :black, :right, :vcenter)
point(2a/3, 4a/3, "H:(2a/3,4a/3) ", :black, :right, :vcenter)
plot!([a/2, 0, 8a/5, a, a/2, 4a/5], [a, 0, 4a/5, 2a, a, 2a/5], color=:blue, lw=1.5)
plot!([0, 2a/3,0, a, 0], [0, 4a/3, a, a/2, 0], color=:magenta, lw=1)
plot!(xlims=(-12delta, 2a + 3delta), ylims=(-5delta, 2a + 3delta))
end
end;
以下のアイコンをクリックして応援してください