以下の内容はhttps://sangaku0418.hatenablog.com/entry/2023/12/08/144909より取得しました。


算額(その0542)

『福島の算額』 矢祭神社の算額 明治21年(1888)

http://takasakiwasan.web.fc2.com/gunnsann/yamaturi.html
キーワード:円3個,正三角形
#Julia #SymPy #算額 #和算 #数学


正三角形内に全円,大円,小円を容れる。大円,小円の直径が 8 寸,6 寸のとき,全円の直径はいかほどか。

正三角形の一辺の長さを \(2a\)
全円の半径と中心座標を \(r_1,\ (0,\ r_1)\)
大円の半径と中心座標を \(r_2,\ (x_2,\ 0)\)
小円の半径と中心座標を \(r_3,\ (x_3,\ r_3)\)
として,以下の連立方程式を解く。

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

using SymPy

@syms a, r1, r2, x2::negative, r3, x3
eq1 = (x3 - x2)^2 + (r3 - r2)^2 - (r3 + r2)^2
eq2 = (a - x3)/r3 - sqrt(Sym(3))
eq3 = (a + x2)/r2 - sqrt(Sym(3))
eq4 = a/r1 - sqrt(Sym(3))
res = solve([eq1, eq2, eq3, eq4], (a, r1, x2, x3))[2]  # 2 of 2

    (sqrt(3)*r2/2 + sqrt(3)*r3/2 + sqrt(r2*r3), r2/2 + r3/2 + sqrt(3)*sqrt(r2*r3)/3, sqrt(3)*r2/2 - sqrt(3)*r3/2 - sqrt(r2*r3), sqrt(r2*r3) + sqrt(3)*(r2 - r3)/2)

全円の半径は 11/2 である。

res[2] |> println
res[2](r2 => 8//2, r3 => 6//2) |> println

   r2/2 + r3/2 + sqrt(3)*sqrt(r2*r3)/3
   11/2

その他のパラメータは以下の通りである。

\(a = 9.52628;\ r_1 = 5.5;\ x_2 = -2.59808;\ x_3 = 4.33013\)

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

function draw(more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (r2, r3) = (8, 6) .// 2
    (a, r1, x2, x3) = (
        (r2 + r3)√3/2 + sqrt(r2*r3),
        (r2 + r3)/2 + sqrt(r2*r3)√3/3,
        (r2 - r3)√3/2 - sqrt(r2*r3),
        sqrt(r2*r3) + (r2 - r3)√3/2)
    @printf("a = %g;  r1 = %g;  x2 = %g;  x3 = %g\n", a, r1, x2, x3)
    plot([a, 0, -a, a], [0, √3a, 0, 0], color=:brown, lw=0.5)
    circle(0, r1, r1)
    circle(x2, r2, r2, :green)
    circle(x3, r3, r3, :orange)
    if more
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:black, lw=0.5)
        vline!([0], color=:black, lw=0.5)
        point(0, r1, " 全円:r1,(0,r1)", :red, :left, :vcenter)
        point(x2, r2, "大円:r2,(x2,r2)", :green, :center, :top, delta=-delta)
        point(x3, r3, "小円:r3,(x3,r3)", :black, :center, :top, delta=-delta)
        point(a, 0, "a ", :brown, :right, :bottom, delta=delta/2)
        point(0, √3a, " √3a", :brown, :left, :vcenter)
    end
end;


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




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

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