56 岩手県花泉町金沢字大門沢 大門神社 慶應2年(1866)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
一関市博物館 和算に挑戦 令和 6 年度出題問題&回答例
https://www.city.ichinoseki.iwate.jp/museum/wasan/r6/index.html
キーワード:円4個,楕円,長方形
#Julia #SymPy #算額 #和算 #数学
長方形の中に大円 1 個と小円 3 個を容れる。大円は,長方形の 3 辺に接し,3 個の小円と外接している。小円 3 個は隣の円と互いに外接し,上下の小円は楕円と 2 箇所で接し,中央の小円は楕円と 1 箇所で接している。長方形の縦の長さが 3 寸のとき,横の長さを求めよ。

楕円の短半径,長半径と中心座標を \(a,b, (a, 0,); a < b\)
大円の半径と中心座標を \(r_1, (2r_2 + r_1, 0)\)
小円の半径と中心座標を \(r_2, (a, y_2), (r_2, 0)\)
とおく。
長方形の横の長さは小円の直径と大円の直径の和 \(2r_2 + 2r_1\)
長方形の縦の長さは楕円の長径に等しい。 \(2b = 2r_1\)
以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms a::positive, b::positive, r1::positive,
r2::positive, y2::positive, 横の長さ::positive
b = r1
eq1 = (a - r2)^2 + y2^2 - 4r2^2
eq2 = (2r2 + r1 - a)^2 + y2^2 - (r1 + r2)^2
eq3 = y2^2 - (b^2 - a^2)*(a^2 - r2^2)/a^2 # 算法助術-公式84
eq4 = 横の長さ - (2r2 + 2r1)
res = solve([eq1, eq2, eq3, eq4], (横の長さ, a, r2, y2))[1]
(8*r1/3, r1/2, r1/3, sqrt(15)*r1/6)
小円の半径 \(r_2\) は,大円の半径 \(r_1\) の \(1/3\) である。 \(r_2 = r_1/3\)
長方形の横の長さ = \(2r_2 + 2r_1 = 2(r_1/3) + 2r_1 = r_1(8/3)\)
= 長方形の縦の長さ\(/2 *(8/3)\) = 長方形の縦の長さ \(*(4/3)\)
長方形の縦の長さが 3 寸のとき,長方形の横の長さは 4 寸である。
描画関数プログラムのソースを見る
function draw(r1, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(a, r2, y2) = (r1/2, r1/3, sqrt(15)*r1/6)
b = r1
plot([2r2 + 2r1, 2r2 + 2r1, 0, 0, 2r2 + 2r1], [-r1, r1, r1, -r1, -r1], color=:green, lw=0.5)
ellipse(a, 0, a, b, color=:blue)
circle22(a, y2, r2)
circle(r2, 0, r2)
circle(2r2 + r1, 0, r1, :magenta)
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(a, 0, "楕円:a,b\n(a,0)", :blue, :center, :bottom, delta=delta)
point(2r2 + r1, 0, "大円:r1,(2r2+r1,0)", :magenta, :center, delta=-delta)
point(a, y2, "小円:r2,(a,y2)", :red, :center, delta=-delta)
point(r2, 0, "小円:r2,(r2,0)", :red, :center, delta=-delta)
point(2r2 + 2r1, r1, "(2r2+2r1,r1)", :green, :right, :bottom, delta=delta)
end
end;
draw(3/2, true)
以下のアイコンをクリックして応援してください