70 岩手県川崎村薄衣字諏訪前(現一関市川崎町) 浪分神社 明治35年(1902)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:円9個,円弧
#Julia #SymPy #算額 #和算 #数学
2 個の円弧が交わる中に,大円 1 個,中円 4 個,小円 4 個を容れる。小円の直径が与えられたとき,大円の直径を求める術を述べよ。

円弧の半径と中心座標を \(R, (0, R - 2r_2)\)
大円の半径と中心座標を \(r_1, (0, 0)\)
中円の半径と中心座標を \(r_2, (r_1 + r_2, 0)\)
小円の半径と中心座標を \(r_3, (x_3, y_3)\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive, r2::positive,
r3::positive, x3::positive3, y3::negative
r1 = 2r2
eq1 = (r1 + r2)^2 + (R - 2r2)^2 - (R - r2)^2
eq2 = x3^2 + (R - 2r2 - y3)^2 - (R - r3)^2
eq3 = (r1 + r2 - x3)^2 + y3^2 - (r2 + r3)^2
eq4 = x3^2 + y3^2 - (r1 + r3)^2
res = solve([eq1, eq2, eq3, eq4], (r2, R, x3, y3))[1]
(7*r3/3, 14*r3, 5*r3, -8*r3/3)
大円の半径 \(r_1\) は,中円の半径 \(r_2\) の 2 倍である。
中円の半径 \(r_2\) は,小円の半径 \(r_3\) の 7/3 倍である。
すなわち,大円の半径 \(r_1\) は 小円の半径 \(r_3\) の 14/3 倍である。
たとえば,小円の直径が 1 のとき,大円の直径は 14/3 = 4.666666666666667 である。
描画関数プログラムのソースを見る
function draw(r3, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, R, x3, y3) = (7*r3/3, 14*r3, 5*r3, -8*r3/3)
r1 = 2r2
@printf("小円の直径が %g のとき,大円の直径は %g である。\n", 2r3, 2r1)
@printf("円弧の半径は %g,中心座標は (0, %g), (0, %g) である。\n", R, R - 2r2, 2r2 - R)
y = R - 2r2
x = sqrt(R^2 - y^2)
θ = atand(y, x)
plot()
circle(0, R - 2r2, R, beginangle=180+θ, endangle=360-θ, n=500)
circle(0, -R + 2r2, R, beginangle=θ, endangle=180-θ, n=500)
circle(0, 0, r1, :blue)
circle22(0, r2, r2, :magenta)
circle2(r1 + r2, 0, r2, :magenta)
circle4(x3, y3, 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, "大円:r1,(0,0)", :blue, :center, :bottom, delta=delta)
point(0, r2, "中円:r2\n(0,r2)", :magenta, :center, :bottom, delta=delta)
point(r1 + r2, 0, "中円:r2\n(r1+r2,0)", :magenta, :center, :bottom, delta=delta)
point(x3, y3, "小円:r3,(x3,y3)", :green, :left, delta=-10delta, deltax=-3delta)
end
end;
draw(1/2, true)
以下のアイコンをクリックして応援してください