七〇 埼玉県加須市大字外野 棘脱地蔵堂 明治6年(1873)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:円4個,外円,半円,楕円
#Julia #SymPy #算額 #和算 #数学
外円の中に外円と同じ直径の円弧を描き,甲円 1 個,乙円 2 個,等楕円 2 個を容れる。甲円の直径は外円の直径の半分であり,楕円と外円および楕円と弧は 1 点で接する。乙円の直径が 1 寸のとき,楕円の長径の最大値はいかほどか。

注:円弧は外円の中心を通る。また,外円(および円弧)は楕円の曲率円である。
外円の半径と中心座標を \(R,\ (0,\ 0)\)
弧の半径と中心座標を \(R,\ (0,\ -R)\)
甲円の半径と中心座標を \(r_1,\ (0,\ R - r_1);\ R = 2r_1\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ y_2)\)
楕円の長径と短径を \(2a,\ 2b;\ b = r_1/2;\ 曲率円であるから a = \sqrt{b R}\)
とおき,以下の連立方程式を解く。
\(R = 2r_1,\ b = r_1/2\) のとき,\(R = a^2/b\) ゆえ,\(a = \sqrt{2r_1 r_1/2} = r_1\) である。
よって,「楕円の長径 = 甲円の直径」である。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive, r2::positive,
x2::positive, y2::positive,
a::positive, b::positive
R = 2r1
b = r1/2
eq1 = x2^2 + (R - r1 - y2)^2 - (r1 + r2)^2
eq2 = x2^2 + (R + y2)^2 - (R + r2)^2
eq3 = x2^2 + y2^2 - (R - r2)^2
res = solve([eq1, eq2, eq3], (r1, x2, y2))[1]
(5*r2/3, 4*sqrt(3)*r2/3, r2/3)
\(r_1 = 5r_2/3\) である。
よって,楕円の長径は \(2r_1 = 10r_2/3\) で,\(r_2 = 1/2\) 寸のとき \(2r_1 = 5/3 ≒ 1.67\) 寸。
以下は,図を描くためにパラメータを求める。
\(R = 2r_1 = 10r_2/3\)
\(b = 5r_2/6\) である。
蛇足
外円が楕円の曲率円であるから \(R = a^2/b\) より,
\(a = \sqrt{b R} = \sqrt{5r_2/6 \cdot 10r_2/3} = \sqrt{25r_2^2/9} = r_2\cdot 5/3\)
\(楕円の長径 = 2a = 2r_2\cdot 5/3 = 乙円の直径 \cdot 5/3 ≒ 乙円の直径 \cdot 1.67\)
乙円の直径が 1 寸のとき,楕円の長径は 5/3 寸 ≒ 1.67 寸である。甲円の直径と等しい。
描画関数プログラムのソースを見る
function draw(r2, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r1, x2, y2) = (5*r2/3, 4*sqrt(3)*r2/3, r2/3)
R = 2r1
b = r1/2 # R/4
a = sqrt(b*R) # 曲率円: R = a^2/b
@printf("乙円の直径が %g のとき,楕円の長径は %g である。\n", 2r2, 2a)
@printf("r2 = %g; r1 = %g; x2 = %g; y2 = %g; R = %g; a = %g; b = %g\n",
r2, r1, x2, y2, R, a, b)
plot()
circle(0, 0, R, :magenta)
circle(0, -R, R, beginangle=30, endangle=150)
circle(0, R - r1, r1, :green)
circle2(x2, y2, r2)
ellipse(0, -R/4, a, R/4, color=:blue)
ellipse(0, -3R/4, a, R/4, color=: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, R, "R", :green, :center, :bottom, delta=delta)
point(0, R - r1, "甲円:r1,(0,R-r1)", :green, :center, delta=-delta)
point(x2, y2, "乙円:r2,(x2,y2)", :red, :center, delta=-delta)
point(0, -R/4, "楕円:a,b,(0,-R/4)", :blue, :center, delta=-delta)
point(0, -3R/4, "楕円:a,b,(0,-3R/4)", :blue, :center, delta=-delta)
#plot!(xlims=(-0.2, 0.2), ylims=(-0.1, 0.05))
end
end;
draw(1/2, true)
以下のアイコンをクリックして応援してください