裏 RjpWiki

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

算額(その1193)

2024年08月08日 | Julia

算額(その1193)

(15) 京都府夜久野町字額田 妙竜寺 明治20年(1887)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:円7個,長方形,対角線

長方形の中に対角線を引き,花円,鳥円,風円,月円を容れる。花円,鳥円は月円の中に入っている。風円の直径が 3 寸のとき,花円の直径はいかほどか。

花円の半径と中心座標を r1, (r4 - r1, b - 2r2)
鳥円の半径と中心座標を r2, (0, b - r2)
風円の半径と中心座標を r3, (r3, r3)
月円の半径と中心座標を r4, (0, b - r4); r4 = 2r2
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy
@syms b::positive, r1::positive,
     r2::positive, r3::positive, r4::positive
@syms b, r1, r2, r3, r4
r4 = 2r2
eq1 = (r4 - r1)^2 + r2^2 - (r1 + r2)^2
eq2 = dist2(-2r3, 0, 2r3, b, r3, r3, r3)/(8b*r3^2)
eq3 = dist2(-2r3, 0, 2r3, b, 0, b - r4, r4)/4b;

res = solve([eq1, eq2, eq3], (r1, r2, b))[2]

   (2*r3/9, r3/3, 3*r3)

花円,鳥円の半径 r1, r2 は 風円の半径 r3 の 2/9, 1/3 倍である。月円の半径は鳥円の半径の 2 倍である。
風円の直径が 3 寸のとき,花円,鳥円,月円の直径は 0.666667 寸, 1 寸, 2 寸である。

function draw(r3, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r1, r2, b) = r3 .* (2/9, 1/3, 3)
   r4 = 2r2
   @printf("風円の直径が %g のとき,花円,鳥円,月円の直径は %g, %g, %g である。\n", 2r3, 2r1, 2r2, 2r4)
   plot(2r3 .* [1, 1, -1, -1, 1], [0, b, b, 0, 0], color=:blue, lw=0.5)
   circle2(r4 - r1, b - r4, r1)
   circle(0, b - r2, r2, :blue)
   circle(0, b - 3r2, r2, :blue)
   circle2(r3, r3, r3, :green)
   circle(0, b - r4, r4, :orange)
   segment(-2r3, 0, 2r3, b, :magenta)
   segment(2r3, 0, -2r3, b, :magenta)
   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(r4 - r1, b - 2r2, " 花円:r1,(r4-r1,b-2r2)", :red, :left, :vcenter)
       point(0, b - r2, " 鳥円:r1,(0,b-r2)", :blue, :left, :vcenter)
       point(r3, r3, " 風円:r3,(r3,r3)", :green, :left, :vcenter)
       point(0, b - r4, "", :orange, :right, delta=-delta/2)
       point(r1 - r4, b - r2/2, "月円:r4\n(0,b-r4)", :orange, :right, deltax=-4delta, mark=false)
       point(2r3, b, "(2r3,b)", :blue, :right, :bottom, delta=delta/2)
   end
end;

draw(3/2, true)


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

コメントを投稿

Julia」カテゴリの最新記事