41 岩手県一関市滝沢字寺田下 熊野白山滝神社 文久元年(1861)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:円7個,外円
#Julia #SymPy #算額 #和算 #数学
全円の中に大円,中円,小円をそれぞれ 2 個ずつ容れる。大円,小円の直径がそれぞれ 7 寸,2 寸のとき,中円の直径はいかほどか。

全円の半径と中心座標を \(R, (0, 0); R = 2r_1\)
大円の半径と中心座標を \(r_1, (r_1, 0)\)
中円の半径と中心座標を \(r_2, (x_2, y_2)\)
小円の半径と中心座標を \(r_3, (0, y_3)\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive, r2::positive, x2::positive, y2::positive,
r3::positive, y3::positive;
R = 2r1
eq1 = r1^2 + y3^2 - (r1 + r3)^2
eq2 = x2^2 + y2^2 - (R - r2)^2
eq3 = x2^2 + (y2 - y3)^2 - (r2 + r3)^2
eq4 = (x2 + r1)^2 + y2^2 - (r1 + r2)^2
res = solve([eq1, eq2, eq3, eq4], (r2, x2, y2, y3))[1]
(r1*(2*r1 + r3)/(2*r1 + 9*r3), r1*(2*r1 - 15*r3)/(2*r1 + 9*r3), 8*r1*sqrt(r3)*sqrt(2*r1 + r3)/(2*r1 + 9*r3), sqrt(r3)*sqrt(2*r1 + r3))
大円,小円の半径を \(r_1, r_3\) としたとき,中円の半径 \(r_2\) は \(\displaystyle r_1\frac{2r_1 + r_3}{2r_1 + 9r_3}\) である。
大円の直径が 7, 小円の直径が 2 のとき,中円の直径は 3.5 である。
術は以下の式である。
\(\displaystyle \frac{2 \cdot 大円径 + 小円径}{9 \cdot \frac{小円径}{大円径} + 2}\)
これを簡約化すると上の式と同じになる。
\(\displaystyle \frac{大円径 \cdot \left( 2 \cdot 大円径 + 小円径 \right)}{2 \cdot 大円径 + 9 \cdot 小円径} \)
その他のパラメータは以下の通りである。
r1 = 3.5; r3 = 1; r2 = 1.75; x2 = -1.75; y2 = 4.94975; y3 = 2.82843
描画関数プログラムのソースを見る
function draw(r1, r3, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
s = 2r1 + r3
t = 2r1 + 9r3
r2 = r1*s/t
x2 = r1*(2r1 - 15r3)/t
y2 = 8r1*sqrt(r3*s)/t
y3 = sqrt(r3*s)
@printf("大円の直径が %g, 小円の直径が %g のとき,中円の直径は %g である。\n", 2r1, 2r3, 2r2)
@printf("r1 = %g; r3 = %g; r2 = %g; x2 = %g; y2 = %g; y3 = %g\n", r1, r3, r2, x2, y2, y3)
plot()
circle(0, 0, 2r1, :orange)
circle2(r1, 0, r1)
circle22(0, y3, r3, :blue)
circle(x2, y2, r2, :green)
circle(-x2, -y2, r2, :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(r1, 0, "大円:r1,(r1,0)", :red, :center, delta=-delta/2)
point(x2, y2, "中円:r2,(x2,y2)", :green, :center, delta=-delta/2)
point(0, y3, "小円:r3,(0,y3)", :blue, :center, :bottom, delta=2.5delta, deltax=5delta)
point(2r1, 0, " R", :orange, :left, :bottom, delta=delta/2)
end
end;
以下のアイコンをクリックして応援してください