以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/10/30/130534より取得しました。


算額(その1375)

七十二 群馬県富岡市一ノ宮 貫前神社 嘉永2年(1849)

群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:外円,正五角形
#Julia #SymPy #算額 #和算 #数学


外円の中に 3 個の合同な正五角形を容れる。外円の直径が 10 寸のとき,正五角形の一辺の長さはいかほどか。

問題文では,「円の中に 3 個の正五角形を容れる」と書いているが,3 個ではなく位置と方向を明示すれば「1 個を容れる」だけで十分である。もちろん図のように「10 個を容れる」としてもよいが,それではヒントを与えすぎると考えたのだろうか。

ここでは,青で描いた上部の正五角形について考える。赤で描いた外円の半径と中心座標を \(R, (0, 0)\) とする。正五角形が内接する灰色で描いた円の半径を AB = BD = \(r\) とする。
与えられるのは OA = \(R\),求めるのは \(x\) = CD である。
∠CBD = 36°,∠COD = 18° である。
BC = \(r \cos(36°)\)
CD = \(r \sin(36°)\) より,\(r\) = CD/\(\sin(36°) = x/sin(36°)\)
OC\(\tan(18°)\) = CD
OA = AB + BC + OC
\(R = r + r \cos(36°) + x/\tan(18°)\)
\(R = x/\sin(36°)*(1 + \cos(36°)) + x/\tan(18°)\)

これを \(x\) について解いて
\(2R\sqrt{35 - 15\sqrt{5}}/(\sqrt{10}\sqrt{5 - 2\sqrt{5}} + 5\sqrt{2}\sqrt{5 - 2\sqrt{5}} + 2\sqrt{5}\sqrt{5 - \sqrt{5}})\) を得る。

include("julia-source.txt");  # julia-source.txt ソース

using SymPy
@syms R, r, x
eq = x/sind(Sym(36))*(1 + cosd(Sym(36))) + x/tand(Sym(18)) - R;
ans_x = solve(eq, x)[1]
ans_x |> println

   2*R*sqrt(35 - 15*sqrt(5))/(sqrt(10)*sqrt(5 - 2*sqrt(5)) + 5*sqrt(2)*sqrt(5 - 2*sqrt(5)) + 2*sqrt(5)*sqrt(5 - sqrt(5)))

SymPy では変数が残っている式は簡約化されにくいという特徴(欠点)を持っているので,\(R\) の係数部分(下記)だけを簡約化する。

ans_x/R |> println

   2*sqrt(35 - 15*sqrt(5))/(sqrt(10)*sqrt(5 - 2*sqrt(5)) + 5*sqrt(2)*sqrt(5 - 2*sqrt(5)) + 2*sqrt(5)*sqrt(5 - sqrt(5)))

@syms d
apart(ans_x/R, d) |> simplify |> println

   sqrt(25 - 10*sqrt(5))/10

長い式は \(\sqrt{25 - 10\sqrt{5}}/10\) に簡約化される。
術では \(\sqrt{0.25 - \sqrt{0.05}}\) としているが 1/10 を外側の平方根の中に入れると同じである。

正五角形の一辺の長さ \(2x\) は 外円の半径が \(R\) のとき \(2R\sqrt{25 - 10\sqrt{5}}/10\) である。
外円の直径が 10 寸のとき,正五角形の一辺の長さは \(\sqrt{25 - 10\sqrt{5}} = 1.6245984811645313\) 寸である。

描画関数プログラムのソースを見る

function draw(R, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   # x = 2R*sqrt(35 - 15√5)/(√10sqrt(5 - 2√5) + 5√2*sqrt(5 - 2√5) + 2√5*sqrt(5 - √5))
   x = R*sqrt(25 - 10√5)/10
   r = x/sind(36)
   θ = 18:72:378
   xa = @. r*cosd(θ)
   ya = @. r*sind(θ) + (R - r)
   plot([-r*sind(36), 0, r*sind(36), 0], [R - r*(1 + cosd(36)), 0, R - r*(1 + cosd(36)), R - r], color=:gray70, lw=0.5)
   circle(0, 0, R, :red)
   circle(0, R - r, r, :gray70)
   for i = 1:10
       plot!(xa, ya, color=:green, lw=1)
       (xa, ya) = transform(xa, ya, deg=36)
   end
   plot!(xa, ya, color=:blue, lw=1)
   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, " A", :blue, :left, :bottom, delta=delta/2)
       point(0, R - r, " B", :blue, :left, :bottom, delta=delta/2)
       point(0, R - r*(1 + cosd(36)), " C", :blue, :left, :bottom, delta=delta/2)
       point(r*sind(36), R - r*(1 + cosd(36)), " D", :blue, :left, :bottom, delta=delta/2)
       point(0, 0, " O", :blue, :left, :bottom, delta=delta/2)
   end
end;

draw(10/2, true)


以下のアイコンをクリックして応援してください




以上の内容はhttps://sangaku0418.hatenablog.com/entry/2024/10/30/130534より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14