裏 RjpWiki

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

算額(その298)

2023年06月24日 | Julia

算額(その298)

愛媛県 伊佐爾波神社 昭和12年(1937)
算額22 中村正教

http://www.wasan.jp/ehime/isaniwa22.html
https://isaniwa.official.jp/%E5%BE%A1%E5%AE%9D%E7%89%A9/%E7%AE%97%E9%A1%8D/

大円の中に中円 4 個,小円 1 個が入っている。大円の径を知って,中円,小円の径を求めよ。

大円,中円,小円の半径を r0, r1, r2 とし,図に示すように記号を定め,以下の連立方程式を r1, r2 について解く(r0 は未知数として記号のまま残る)。

include("julia-source.txt");

using SymPy

@syms r1::positive, r2::positive, r0::positive

eq1 = 2r1^2 - (r1 + r2)^2
eq2 = 2r1^2 - (r0 - r1)^2

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

   1-element Vector{Tuple{Sym, Sym}}:
    (-r0 + sqrt(2)*r0, r0*(3 - 2*sqrt(2)))

大円の半径を r0 とすると,中円の半径は (√2 - 1)r0,小円の半径は (3 - √8)r0 である。

r0 = 2 のとき,r1 = 0.82843;  r2 = 0.34315

using Plots

function draw(zoomin=false, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r0 = 2  # 大円の直径が 4 のとき
   (r1, r2) = ((√2 - 1)r0, (3 - √8)r0)
   @printf("r0 = %.5f; r1 = %.5f;  r2 = %.5f\n", r0, r1, r2)
   plot()
   circle(0, 0, r0, :black)
   circle4(r1, r1, r1, :blue)
   circle(0, 0, r2)
   if more
       point(r1, r1, " 中円:r1\n (r1,r1)", :blue)
       point(0, 0, " 小円:r2,(0,0)", :red, :center)
       point(r0, 0, "r0 ", :black, :right, :bottom)
       vline!([0], color=:black, lw=0.5)
       hline!([0], color=:black, lw=0.5)
       zoomin && plot!(showaxis=true, xlims=(0, 47), ylims=(0, 35))
   else
       plot!(showaxis=false)
   end
end;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村