裏 RjpWiki

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

算額(その1343)

2024年10月09日 | Julia

算額(その1343)

岐阜県垂井町 西法寺 令和6年(2024)
http://www.wasan.jp/gifu/saihoji.html

キーワード:円3個,円弧3個
#Julia, #SymPy, #算額, #和算

一辺が 1 の正三角形の頂点を中心とする 3 個の円弧内に互いに接する黄円 3 個がある。黄円の半径はいかほどか。

正三角形が内接する円の半径と中心座標を R, (0, 0)
円弧の半径と中心座標を √3R, (0, y), (√3R/2, -R/2), (-√3R/2, -R/2)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms a::positive, r::positive, R::positive, y::positive
eq1 = (√Sym(3)R/2)^2 + (y + R/2)^2 - (√Sym(3)R - r)^2
eq2 = dist2(0, 0, √Sym(3)R, R, 0, y, r)
res = solve([eq1, eq2], (r, y))[1]

   (sqrt(3)*(-8*R^2*(-4 + 3*sqrt(2)) - 4*R^2*(-4 + 3*sqrt(2))^2 + 8*R^2)/(24*R), 2*R*(-4 + 3*sqrt(2)))

# r
res[1] |> simplify |> println

   R*(-4*sqrt(3) + 3*sqrt(6))

# y
res[2] |> println

   2*R*(-4 + 3*sqrt(2))

正三角形の一辺の長さが 1 ならば,R = 1/√3 である。そのとき,黄円の半径は 3√2 - 4 である。

res[1](R => 1/√Sym(3)) |> simplify |> println

   -4 + 3*sqrt(2)

function draw(R, more)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r = R*(3√6 - 4√3)
   y = 2R*(3√2 - 4)
   plot()
   circle(0, 0, R, :pink)
   circle(0, R, √3R, :blue, beginangle=240, endangle=300)
   circle(√3R/2, -R/2, √3R, :blue, beginangle=120, endangle=180)
   circle(-√3R/2, -R/2, √3R, :blue, beginangle=0, endangle=60)
   rotatef(0, y, r, :orange)
   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, y, "黄円:r,(0,y)", :blue, :center, delta=-delta/2)
       point(√3y/2, -y/2, "黄円:r,(√3y/2,-y/2)", :blue, :center, delta=-delta/2)
       point(0, R, "R", :red, :center, :bottom, delta=delta/2)
       point(√3R/2, -R/2, "(√3R/2,-R/2)", :blue, :center, delta=-3delta)
   end  
end;

draw(1/√3, true)


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

コメントを投稿

Julia」カテゴリの最新記事