90 岩手県陸前高田市小友町上の坊 常膳寺観音堂 天保13年(1842)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
一〇八 埼玉県加須市騎西町 玉敷神社 大正4年(1915)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:円14個,外円
#Julia #SymPy #算額 #和算 #数学
外円の中に甲円 2 個,乙円 4 個,丙円 2 個を容れる。
- 常膳寺観音堂:全円の直径が 7 寸のとき丙円の直径はいかほどか。
- 玉敷神社:丙円の直径が 1 寸のとき,乙円の直径はいかほどか。

外円の半径と中心座標を \(R,\ (0,\ 0)\)
甲円の半径と中心座標を \(r_1,\ (0,\ r_1);\ r_1 = R/2\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ r_2)\)
丙円の半径と中心座標を \(r_3,\ (x_3,\ 0)\)
とおき以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive,
r2::positive, x2::positive,
r3::positive, x3::positive
R = 2r1
eq1 = x2^2 + r2^2 - (R - r2)^2
eq2 = x2^2 + (r1 - r2)^2 - (r1 + r2)^2
eq3 = x3^2 + r1^2 - (r1 + r3)^2
eq4 = (x2 - x3)^2 + r2^2 - (r2 + r3)^2
1. 常膳寺観音堂
res1 = solve([eq1, eq2, eq3, eq4], (r2, x2, r3, x3))[1]
(r1/2, sqrt(2)*r1, 2*r1/7, 4*sqrt(2)*r1/7)
res1[3]
\(\displaystyle \frac{2 r_{1}}{7}\)
丙円の半径 \(r_3\) は,甲円 \(r_1\) の 2/7 である。
甲円の半径 \(r_1\) は全円の半径 \(R\) の 1/2 である。
よって,丙円の半径 \(r_3\) は,全円の半径 \(R\) の 1/7 である。
全円の直径が 7 寸のとき,丙円の直径は 1 寸である。
2. 玉敷神社
res2 = solve([eq1, eq2, eq3, eq4], (r1, r2, x2, x3))[1]
(7*r3/2, 7*r3/4, 7*sqrt(2)*r3/2, 2*sqrt(2)*r3)
# r2 乙円の半径
res2[2]
\(\displaystyle \frac{7 r_{3}}{4}\)
乙円の半径 \(r_2\) は,丙円の半径 \(r_3\) の 7/4 である。
丙円の直径が 1 寸のとき,乙円の直径は 7/4 = 1.75 寸である。
常膳寺観音堂の方程式の解 res1 には 乙円,丙円の半径が含まれているので,その比をとれば,方程式を解き直さなくても解を求めることができる。
乙円の半径は丙円の半径の 7/4 倍である。
res1[1]/res1[3]
\(\displaystyle \frac{7}{4}\)
描画関数プログラムのソースを見る
function draw(r1, more=false)
pyplot(size=(600, 600), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
R = 2r1
(r2, x2, r3, x3) = r1 .* (1/2, √2, 2/7, 4√2/7)
@printf("丙円の直径が %g 寸のとき,乙円の直径は %g 寸である。\n", 2r3, 2r2)
@printf("r3 = %g; r1 = %g; r2 = %g; x2 = %g; x3 = %g\n", r3, r1, r2, x2, x3)
plot(showaxis=false)
circle(0, 0, R, :magenta)
circle22(0, r1, r1)
circle4(x2, r2, r2, :green)
circle2(x3, 0, r3, :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, :left, :bottom, delta=delta/2)
point(R, 0, " R", :green, :left, :bottom, delta=delta/2)
point(0, r1, "甲円:r1,(0,r1)", :red, :center, delta=-delta/2)
point(x2, r2, "乙円:r2,(x2,r2)", :magenta, :center, delta=-delta/2)
point(x3, 0, "丙円:r3\n(x3,0)", :blue, :center, delta=-delta/2)
end
end;
以下のアイコンをクリックして応援してください