以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/05/08/125555より取得しました。


算額(その0933)

五十八 群馬県安中市下磯部 磯部神社 天保7年(1830)

群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.

「算額」第三集 全国調査,香川県算額研究会.(香川県立図書館蔵)

キーワード:円1個,正方形
#Julia #SymPy #算額 #和算 #数学


大正方形内に円と 3 個の小正方形とを容れる。大正方形の一辺の長さが 1 寸のとき,円の直径はいかほどか。

大正方形の一辺の長さを \(2a\)
小正方形の一辺の長さを \(b\)
円の半径を \(r\)
とおく。
連立方程式を解くほどのものでもないが,以下のようにして \(r,\ b\) を求める。

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

using SymPy
@syms a::positive, b::positive, r::positive
eq1 = a - (1 + √Sym(3))b/2
eq2 = (a - b) - 2r
res = solve([eq1, eq2], (r, b))
res |> println

   Dict{Sym{PyCall.PyObject}, Sym{PyCall.PyObject}}(b => 2*a/(1 + sqrt(3)), r => -a/(2 + 2*sqrt(3)) + sqrt(3)*a/(2 + 2*sqrt(3)))

res[r](a => 1/2).evalf() |> println
res[b](a => 1/2).evalf() |> println

   0.0669872981077807
   0.366025403784439

大正方形の一辺の長さが 1 寸のとき,円の直径は 0.133975 寸である。

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   a = 1/2
   b = 2a/(1 + √3)
   r = (2a - a - b)/2
   @printf("大正方形の一辺の長さが %g 寸のとき,円の直径は %g 寸\n", 2a, 2r)
   @printf("a = %g;  r = %g;  b = %g\n", a, r, b)
   plot(a.*[1, 1, -1, -1, 1], 2a.*[0, 1, 1, 0, 0], color=:green, lw=0.5)
   circle(0, 2a - r, r, :blue)
   rect(-b/2, 2a - 2r - b, b/2, 2a - 2r, :magenta)
   plot!(b.*[0, √3/2, (√3 + 1)/2, 1/2, 0], b.*[1/2, 0, √3/2, (1 + √3)/2, 1/2], color=:magenta, lw=0.5)
   plot!(-b.*[0, √3/2, (√3 + 1)/2, 1/2, 0], b.*[1/2, 0, √3/2, (1 + √3)/2, 1/2], color=:magenta, 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(0, 2a - r, " 円:r,(0,2a-r)", :black, :left, :vcenter)
       point(b/2, 2a-2r-b, " (b/2,2a-2r-b)", :magenta, :left, :bottom, delta=delta/2)
       point(0, b/2, " b/2", :magenta, :left, :bottom, delta=-delta/2)
       point(b√3/2, 0, "  b√3/2", :magenta, :left, :bottom, delta=delta/2)
       point(a, 0, " a", :green, :left, :bottom, delta=delta/2)
       point(0, 2a, " 2a", :green, :left, :bottom, delta=delta/2)
   end
end;


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




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

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