裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その379)

2023年08月09日 | Julia

算額(その379)

二八 都川村西平 坂東九番観音堂(慈光寺境内観音堂) 文政13年(1830)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.

埼玉県都幾川町西平 慈光寺 文政13年(1830)
やまぶき 和算と歴史随想

https://yamabukiwasan.sakura.ne.jp/page3.html

キーワード:円5個,円弧2個

二本の等弧の間に,天円 2 個,人円 1 個,地円 2 個が互いに接している。天円の径は 68 寸(注),地円の径が 17 寸のとき,人円の径はいかほどか。

注:「六寸八寸」と描かれているが「六十八寸」の誤記である。

その一部が「弧」になる円の半径と中心座標を r1, (r1, 0)
天円の半径と中心座標を r2, (r2, y2)
人円の半径と中心座標を r3, (0, y3)
地円の半径と中心座標を r4, (r4, y4)
とし,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy
@syms r1::positive, r2::positive, y2::positive,  r3::positive,
     y3::positive, r4::positive, y4::positive;

(r2, r4) = (68//2, 17//2)
eq1 = (r1 - r2)^2 + y2^2 - (r1 + r2)^2
eq2 = r1^2 + y3^2 - (r1 + r3)^2
eq3 = (r1 - r4)^2 + y4^2 - (r1 + r4)^2
eq4 = r2^2 + (y2 - y3)^2 - (r2 + r3)^2
eq5 = r4^2 + (y3 - y4)^2 - (r3 + r4)^2

res = solve([eq1, eq2, eq3, eq4, eq5], (r1, y2, r3, y3, y4))

   1-element Vector{NTuple{5, Sym}}:
    (272, 136*sqrt(2), 32, 96*sqrt(2), 68*sqrt(2))

   r1 = 272;  y2 = 192.333;  r3 = 32;  y3 = 135.765;  y4 = 96.1665
   人円の直径 = 2r3 = 64 寸

人円の半径は 32 寸である(直径は 64 寸)

using Plots

function draw(more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r2, r4) = (68//2, 17//2)
   (r1, y2, r3, y3, y4) = res[1]
   @printf("r1 = %g;  y2 = %g;  r3 = %g;  y3 = %g;  y4 = %g\n", r1, y2, r3, y3, y4)
   @printf("人円の直径 = 2r3 = %g 寸\n", 2r3)
   plot()
   circle(r1, 0, r1)
   circle(-r1, 0, r1)
   circle(r2, y2, r2, :blue)
   circle(-r2, y2, r2, :blue)
   circle(0, y3, r3, :green)
   circle(r4, y4, r4, :magenta)
   circle(-r4, y4, r4, :magenta)
   if more == true
       delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
       point(r1, 0, " r1", :red)
       point(r2, y2, "  天円:r2,(r2,y2)", :blue, :left, :vcenter)
       point(0, y3, "  人円:r3,(0,y2)", :green, :left, :vcenter)
       point(r4, y4, "  地円:r4,(r4,y4)", :magenta, :left, :vcenter)
       hline!([0], color=:black, lw=0.5)
       vline!([0], color=:black, lw=0.5)
       plot!(xlims=(-100, 350), ylims=(-100, 275))
   else
       plot!(showaxis=false)
   end
end;


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 算額(その378) | トップ | 算額(その380) »
最新の画像もっと見る

コメントを投稿

Julia」カテゴリの最新記事