以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/03/29/172609より取得しました。


算額(その0821)

宮城県栗原市瀬峰泉谷 瀬峰泉谷熊野神社  天保6年(1835) 昭和61年(1986) 復元奉納

徳竹亜紀子,谷垣美保,萬伸介:瀬峰泉谷熊野神社奉納算額をめぐる諸問題,仙台高等専門学校名取キャンパス 研究紀要 第60号(2024)
https://www.jstage.jst.go.jp/article/nitsendainatori/60/0/60_1/_pdf/-char/ja
キーワード:円5個,外円,円弧
#Julia #SymPy #算額 #和算 #数学


外円内に円弧,甲円,乙円を容れる。円弧は外円と同じ半径で周長は外円の 1/3 である。乙円の直径が 3 寸のとき,甲円の直径はいかほどか。

円弧は外円の中心を通る。
外円の半径と中心座標を \(R,\ (0,\ 0)\)
甲円の半径と中心座標を \(r_1,\ (r_1,\ y_1)\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ y_2)\)
とおき,以下の連立方程式を解く。

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

using SymPy

@syms R::positive, r1::positive, y1::positive,
     r2::positive, x2::positive, y2::negative
#r2 = 3
eq1 = r1^2 + (y1 + R)^2 - (r1 + R)^2
eq2 = x2^2 + (R + y2)^2 - (r2 + R)^2
eq3 = (x2 - r1)^2 + (y1 - y2)^2 - (r1 + r2)^2
eq4 = r1^2 + y1^2 - (R - r1)^2
eq5 = x2^2 + y2^2 - (R - r2)^2;
res = solve([eq1, eq2, eq3, eq4, eq5], (R, r1, y1, x2, y2));
res[2]

   (4*r2*(109282*sqrt(2107560*sqrt(3) + 3650401) + 63094*sqrt(6322680*sqrt(3) + 10951203) + 319330453 + 184365523*sqrt(3))/(3*(14764*sqrt(3)*sqrt(2107560*sqrt(3) + 3650401) + 25572*sqrt(2107560*sqrt(3) + 3650401) + 47909161*sqrt(3) + 82981101)), r2*(258564*sqrt(2107560*sqrt(3) + 3650401) + 149282*sqrt(6322680*sqrt(3) + 10951203) + 755543964 + 436213511*sqrt(3))/(3*(34932*sqrt(2107560*sqrt(3) + 3650401) + 20168*sqrt(3)*sqrt(2107560*sqrt(3) + 3650401) + 113354292 + 65445131*sqrt(3))), 4*r2*(23094*sqrt(6322680*sqrt(3) + 10951203) + 40000*sqrt(2107560*sqrt(3) + 3650401) + 67482465*sqrt(3) + 116883058)/(3*(14764*sqrt(3)*sqrt(2107560*sqrt(3) + 3650401) + 25572*sqrt(2107560*sqrt(3) + 3650401) + 47909161*sqrt(3) + 82981101)), -260*sqrt(3)*r2*sqrt(62400*sqrt(3)*sqrt(2107560*sqrt(3) + 3650401) + 108080*sqrt(2107560*sqrt(3) + 3650401) + 187572840*sqrt(3) + 324885689) + 1351*r2*sqrt(62400*sqrt(3)*sqrt(2107560*sqrt(3) + 3650401) + 108080*sqrt(2107560*sqrt(3) + 3650401) + 187572840*sqrt(3) + 324885689)/3, -5404*r2*sqrt(6322680*sqrt(3) + 10951203)/9 - 10*sqrt(3)*r2/9 + 2*r2 + 1040*sqrt(3)*r2*sqrt(6322680*sqrt(3) + 10951203)/3)

2 組の解が得られるが,2 番目のものが適解である。

桁数の多い数値を含む複雑な式が得られるが,簡約化すると非常に単純な解になる。
\(R, r_1, y_1, x_2, y_2\) の結果は以下のようになる。

res[2][1] |> sympy.sqrtdenest |> simplify |> println
res[2][2] |> sympy.sqrtdenest |> simplify |> println
res[2][3] |> sympy.sqrtdenest |> simplify |> println
res[2][4] |> sympy.sqrtdenest |> simplify |> println
res[2][5] |> sympy.sqrtdenest |> simplify |> println

   28*sqrt(3)*r2/9
   7*r2/3
   -14*sqrt(3)*r2/9 + 14*r2/3
   13*r2/3
   2*r2*(9 - 7*sqrt(3))/9

甲円の半径 \(r_1\) は乙円の半径 \(r_2\) の 7/3 倍である。
乙円の直径が 3 寸のとき,甲円の直径は 7 寸である。

2res[2][2](r2 => 3/2).evalf() |> println

   7.00000000000000

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

\(R = 8.0829;\  r_1 = 3.5;\  y_1 = 2.95855;\  x_2 = 6.5;\  y_2 = -1.04145\)

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

function draw(more)
    pyplot(size=(500, 500), grid=false, showaxis=true, aspectratio=1, label="", fontfamily="IPAMincho")
   r2 = 3//2
   (R, r1, y1, x2, y2) = r2 .* (
       28√3/9,
       7/3,
       (42 - 14√3)/9,
       13/3,
       (18 - 14√3)/9)
   @printf("甲円の直径 = %g\n", 2r1)
   @printf("R = %g;  r1 = %g;  y1 = %g;  x2 = %g;  y2 = %g\n", R, r1, y1, x2, y2)
   plot()
   circle(0, 0, R)
   circle(0, -R, R, beginangle=30, endangle=150)
   circle2(r1, y1, r1, :green)
   circle2(x2, y2, r2, :blue)
   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(r1, y1, "甲円:r1,(r1,y1)", :green, :center, delta=-delta/2)
       point(x2, y2, "乙円:r2\n(x2,y2)", :blue, :center, delta=-delta/2)
       point(R, 0, " R", :red, :left, :bottom, delta=delta/2)
   end
end;


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




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

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