百三十五 群馬県安中市鷺宮 咲前神社 明治20年(1887)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
「算額」第三集 全国調査,香川県算額研究会.(香川県立図書館蔵)
キーワード:円13個,外円,正六角形
#Julia #SymPy #算額 #和算 #数学
大円に内接する正五角形と,外円に内接すると同時に隣同士外接する 10 個の等円がある。大円の直径が 17 寸のとき,正五角形の一辺の長さと等円の直径を求めよ。

問題を一般化し,正 \(n\) 角形を考える。
図は,正六角形の場合で,外円の直径が 36 寸 のとき,正六角形の一辺の長さは 9 寸,等円の直径は 7.40177 寸である。
大円の半径を \(R\),正 \(n\) 角形の一辺の長さを \(p\),等円の半径を \(r\) とする。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r::positive, p::positive,
n::integer
eq_p = R*sind(Sym(180)/n) - p
eq_r = (R - r)sind(Sym(90)/n) - r
p = solve(eq_p, p)[1]
r = solve(eq_r, r)[1]
(p, r)
(R*sin(pi/n), R*sin(pi/(2*n))/(sin(pi/(2*n)) + 1))
\(p,\ r\) は \(R\) と \(n\) により決まるので,以下のような関数を定義しておけばよい。
\(R\) として大円の直径を与えれば,正 \(n\) 角形の一辺の長さと等円の直径を返す。
\(R\) として大円の半径を与えれば,正 \(n\) 角形の一辺の長さの 1/2 と等円の半径を返す。
func(R, n) = (R*sin(pi/n), R*sin(pi/(2*n))/(sin(pi/(2*n)) + 1));
大円の直径が 17 のとき,正五角形の一辺の長さは 9.992349288972044 寸,等円の直径は 4.013155617496424寸 である。
func(17, 5)
(9.992349288972044, 4.013155617496424)
描画関数プログラムのソースを見る
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(R, n) = (18, 6)
(p, r) = func(R, n)
@printf("外円の直径が %g 寸 のとき,正%i角形の一辺の長さは %g 寸,等円の直径は %g 寸である。\n", 2R, n, p, 2r)
plot()
circle(0, 0, R, :blue)
θ = range(90, 450, length=n + 1)
x = @. R*cosd(θ)
y = @. R*sind(θ)
for i in 1:n
segment(x[i], y[i], x[i + 1], y[i + 1], :green)
end
rotate( (R - r)*cosd(90 + 90/n), (R - r)*sind(90 + 90/n), r, angle=180/n)
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", :blue, :left, :bottom, delta=delta/2)
end
end;
以下のアイコンをクリックして応援してください