4 岩手県花巻市北笹間 東光寺 慶應2年(1866)
安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
山形県寒河江市平塩 熊野神社 明治2年(1869)
徳竹亜紀子,谷垣美保,萬 伸介:天童市山元の若松寺観音堂算額の調査報告 ― 服部武右衛門が関わる算額 ー,仙台高等専門学校名取キャンパス 研究紀要,第 59 号,p.1-8,2023.
https://www.jstage.jst.go.jp/article/nitsendainatori/59/0/59_1/_pdf/-char/ja
キーワード:外円,正方形
#Julia #SymPy #算額 #和算 #数学
円の中に大正方形 1 個,小正方形 3 個を容れる。大正方形の一辺の長さが 1 寸のとき,小正方形の一辺の長さはいかほどか。

円の半径と中心座標を \(R,\ (0,\ 0)\)
大正方形の一辺の長さを \(a\)
小正方形の一辺の長さを \(b\)
正方形の頂点座標を \( (a_x,\ a_y),\ \dots, (f_x,\ f_y)\)
とおき,方程式を解く。
座標点のうちいくつかは特定できる。結局,求めるべきパラメータは \(b,\ R,\ c_x\) である。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, a::positive, b::positive,
ax::positive, ay::positive, bx::positive, by::positive,
cx::positive, cy::positive, dx::positive, dy::positive,
ex::positive, ey::positive, fx::positive, fy::positive
ax = a/2
ay = sqrt(R^2 - ax^2)
bx = ax
by = ay - a
cy = -sqrt(R^2 - cx^2)
dx = a//2 ### 数値解から得られた関係式
dy = -sqrt(R^2 - dx^2)
ex = b/2
ey = -a//2 ### 数値解から得られた関係式
fx = ex
fy = ey - b
eq1 = (cx - dx)^2 + (cy - dy)^2 - b^2 |> expand
eq2 = (ex - bx)^2 + (ey - by)^2 - b^2 |> expand
eq3 = (bx - dx)^2 + (by - dy)^2 - 2b^2 |> expand;
res = solve([eq1, eq2, eq3], (b, R, cx))[4] # 4 of 4
(a*sqrt(-3*sqrt(2) - sqrt(11 - 6*sqrt(2)) + 6), a*sqrt(12 - 6*sqrt(2))/2, a*(7*sqrt(34 - 24*sqrt(2)) + sqrt(22 - 12*sqrt(2)) + 14*sqrt(17 - 12*sqrt(2)) + 2*sqrt(11 - 6*sqrt(2)))/12)
# b 二重根号を外す
res[1] |> sympy.sqrtdenest |> println
a*(-1 + sqrt(2))
# R
res[2] |> println
a*sqrt(12 - 6*sqrt(2))/2
# cx 二重根号を外す
res[3] |> sympy.sqrtdenest |> simplify |> println
a*(3 - sqrt(2))/2
小正方形の一辺の長さ \(b\) は,大正方形の一辺の長さ \(a\) の \(\sqrt{2} - 1\) 倍である。
大正方形の一辺の長さが 1 寸のとき,小正方形の一辺の長さは \(\sqrt{2} - 1 = 0.41421356237309515\) 寸である。
描画関数プログラムのソースを見る
function draw(a, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
b = a*(√2 - 1)
R = a*sqrt(12 - 6√2)/2
cx = a*(3 - √2)/2
ax = a/2
ay = sqrt(R^2 - ax^2)
bx = ax
by = ay - a
cy = -sqrt(R^2 - cx^2)
dx = a//2 ### 数値解から得られた関係式
dy = -sqrt(R^2 - dx^2)
ex = b/2
ey = -a//2 ### 数値解から得られた関係式
fx = ex
fy = ey - b
@printf("a = %g; b = %g; R = %g; cx = %g\n", a, b, R, cx)
plot([bx, ax, -ax, -bx, bx], [by, ay, ay, by, by], color=:blue, lw=0.5)
circle(0, 0, R)
plot!([cx, bx, ex, dx, cx], [cy, by, ey, dy, cy], color=:green, lw=0.5)
plot!(-[cx, bx, ex, dx, cx], [cy, by, ey, dy, cy], color=:green, lw=0.5)
plot!([fx, ex, -ex, -fx, fx], [fy, ey, ey, fy, fy], color=:green, lw=0.5)
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(ax, ay, " (ax,ay)", :green, :left, :vcenter)
point(bx, by, " (bx,by)", :green, :left, :vcenter)
point(cx, cy, " (cx,cy)", :green, :left, :vcenter)
point(dx, dy, " (dx,dy)", :green, :left, :vcenter)
point(ex, ey, " (ex,ey)", :green, :left, :vcenter)
point(fx, fy, " (fx,fy)", :green, :left)
point(0, R, "R", :red, :center, :bottom, delta=delta/2)
end
end;
draw(1, true)
以下のアイコンをクリックして応援してください