裏 RjpWiki

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

算額(その2061)

2024年08月31日 | Julia

算額(その2061)

百二十六 群馬県倉渕村水沼 蓮華院 明治11年(1878)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:円3個,直角三角形

直角三角形の中に,等円 3 個を容れる。鈎,股が与えられたとき,等円の直径を求めよ。

直角三角形の直角を挟む2辺の短い方を「鈎」,長い方を「股」
斜辺と接する等円の半径と中心座標を r, (2r, (1 + √3)r)
とおき,以下の方程式を解く(斜辺(弦)と等円の距離が等円の半径に等しいとする)。

include("julia-source.txt");

using SymPy
@syms 鈎, 股, r
eq1 = dist2(股, 0, 0, 鈎, 2r, (1 + √Sym(3))r, r)
res = solve(eq1, r)[1]  # 1 of 2
res |> println

   股*鈎*(股 + sqrt(3)*股 + 2*鈎 - sqrt(股^2 + 鈎^2))/(3*股^2 + 2*sqrt(3)*股^2 + 4*股*鈎 + 4*sqrt(3)*股*鈎 + 3*鈎^2)

等円の半径は,鈎,股の関数である。
r = 股*鈎*(股 + sqrt(3)*股 + 2*鈎 - sqrt(股^2 + 鈎^2))/(3*股^2 + 2*sqrt(3)*股^2 + 4*股*鈎 + 4*sqrt(3)*股*鈎 + 3*鈎^2)

鈎 = 3, 股 = 4 のとき,等円の直径は 1.09448091792874 である。

2res(鈎 =>3, 股 => 4).evalf() |> println

   1.09448091792874

function draw(鈎, 股, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r = 股*鈎*(股 + sqrt(3)*股 + 2*鈎 - sqrt(股^2 + 鈎^2))/(3*股^2 + 2*sqrt(3)*股^2 + 4*股*鈎 + 4*sqrt(3)*股*鈎 + 3*鈎^2)
   plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:blue, lw=0.5)
   circle(r, r, r)
   circle(3r, r, r)
   circle(2r, (1 + √3)r, r)
   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(2r, (1 + √3)r, "等円:r\n(2r,r+√3r)", :red, :center, :bottom, delta=delta)
       point(0, 鈎, " 鈎", :blue, :left, :bottom, delta=delta)
       point(股, 0, " 股", :blue, :left, :bottom, delta=delta)
   end
end;

draw(3, 4, true)

 


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

コメントを投稿

Julia」カテゴリの最新記事