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


算額(その1360)

二十六 群馬県安中市簗瀬 稲荷神社 文化11年(1814)

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


等脚台形の中に正方形 1 個と等円 4 個を容れる。等円の直径が 3 寸のとき,正方形の一辺の長さはいかほどか。



等脚台形の下底,上底,高さを \(2a, 2b, h\)
等円の半径と中心座標を \(r, (x, r), (r, h - r)\)
等脚台形の斜辺上の正方形の頂点座標を \( (c, c)\)
とおき,以下の連立方程式を解く。
正方形の一辺の長さは \(\sqrt{2}c\) である。

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

using SymPy
@syms a::positive, b::positive, c::positive, h::positive,
     r::positive, x::positive
eq1 = dist2(a, 0, b, h, x, r, r)
eq2 = dist2(a, 0, b, h, r, h - r, r)
eq3 = dist2(0, 0, c, c, x, r, r)
eq4 = dist2(0, 2c, c, c, r, h - r, r)
eq5 = c/(a - c) - h/(a - b);

function H(u)
   (a, b, c, h, x) = u
   return [
       h*(a^2*h - 2*a^2*r + 2*a*b*r - 2*a*h*x + 2*a*r*x - 2*b*r*x - h*r^2 + h*x^2),  # eq1
       h*(2*a*b*r - 2*a*r^2 + b^2*h - 2*b^2*r - 2*b*h*r + 2*b*r^2),  # eq2
       -r^2/2 - r*x + x^2/2,  # eq3
       2*c^2 - 2*c*h + h^2/2 - r^2,  # eq4
       c/(a - c) - h/(a - b),  # eq5
   ]
end;

r = 3/2
iniv = BigFloat[36.8/2, 18.7/2, 29.1/2, 40, 12]
res = nls(H, ini=iniv)

   ([5.576158402821451, 2.6509904819684404, 4.397777478867205, 10.916875301294052, 3.6213203435596424], true)

√2*4.397777478867205

   6.219396554912959

等円の直径が 3 寸のとき,正方形の一辺の長さは 6.219396554912959 である。

「答」では 6 寸としているが,「術」は 等円の直径の \(\sqrt{0.5} + 0.5 + \sqrt{0.75}\) 倍としており,正しく \(3(\sqrt{0.5} + 0.5 + \sqrt{0.75} = 6.219396554912959\) となる。

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

function draw(r, more)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (a, b, c, h, x) = [36.8/2, 18.7/2, 29.1/2, 36, 12]
   (a, b, c, h, x) = res[1]
   length = √2c
   @printf("等円の直径が %g のとき,正方形の一辺の長さは %g である。\n", 2r, length)
   @printf("r = %g;  a = %g;  b = %g;  c = %g;  h = %g;  x = %g\n", r, a, b, c, h, x)
   plot([a, b, -b, -a, a], [0, h, h, 0, 0], color=:green, lw=0.5)
   plot!([0, c, 0, -c, 0], [0, c, 2c, c, 0], color=:magenta, lw=0.5)
   circle2(x, r, r)
   circle2(r, h - r, r)
   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, 2c, "(0,2c)", :magenta, :left, :vcenter, deltax=delta)
       point(c, c, "(c,c)", :magenta, :left, :vcenter, deltax=delta)
       point(a, 0, "a", :green, :left, :bottom, delta=delta/2, deltax=delta/3)
       point(b, h, "(b,h)", :green, :right, :bottom, delta=delta/2)
       point(x, r, "等円:r,(x,r)", :red, :center, delta=-delta/2)
       point(r, h - r, "等円:r,(r,h-r)", :red, :center, :bottom, delta=delta/2)
   end  
end;

draw(3/2, true)


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




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

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