裏 RjpWiki

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

算額(その239)

2023年05月22日 | Julia

算額(その239)

中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
県内の算額3(225-224)
長野県東筑摩郡筑北村青柳 碩水寺豊川稲荷社 慶応4年(1868)

鉤股の中に全円 1 個,大円 3 個,小円 2 個がある。大円はそれぞれ部分的に重なっており,その重なった部分に小円がある。小円は大円に内接する。大円は鉤股弦に内接する。

股が 50 寸,大円の径が 15 寸,全円の径が 25 寸のとき,小円の径はいかほどか。

鉤を y,股を x,弦を z とする。全円,大円,小円の半径をそれぞれ r0, r1, r2 とする。

include("julia-source.txt");

using SymPy

@syms r2::positive, y::positive, z::positive;

x = 50
r0 = 25 // 2
r1 = 15 // 2

eq1 = x^2 + y^2 - z^2
eq2 = x + y - sqrt(x^2 + y^2) - 2r0;

鉤股弦の股と弦を求め,鉤股弦に内接する円の直径が「鉤+股-弦」になることから弦を求める。

(y, z) = solve([eq1, eq2], (y, z))[1]
(y, z) |> println

   (75/2, 125/2)

一番左の大円の中心座標 (x - (5r1 - 4r2), r1) で鉤股弦を3分割したときの鉤股弦の面積が,x*y/2 に等しいことから r2 を求める。

eq3 = x * r1 + z * r1 + (5*r1 - 4r2)y - x*y
r2 = solve(eq3, r2)[1]
r2 |> println

   5/2

小円の直径は 5 寸である。

function draw(more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   x = 50
   r0 = 25 // 2
   r1 = 15 // 2
   (y, z) = (75/2, 125/2)
   r2 = 5 // 2
   plot([0, x, x, 0], [0, 0, y, 0], color=:black, lw=0.5)
   circle(x - r0, r0, r0)
   circle(x - r1, r1, r1, :green)
   circle(x - (3r1 - 2r2), r1, r1, :green)
   circle(x - (5r1 - 4r2), r1, r1, :green)
   circle(x - (2r1 - r2), r1, r2, :blue)
   circle(x - (4r1 - 3r2), r1, r2, :blue)
   if more == true
       point(x, y, " (x,y)", :black)
       point(x - r0, r0, "(x-r0,r0)", :red, :center)
       point(x - (5r1 - 4r2), 0.9r1, "(x-(5r1-4r2),r1)", :green, :center, mark=false)
       point(x - (4r1 - 3r2), 1.1r1, "(x-(4r1-3r2),r1)", :blue, :center, :bottom, mark=false)
       point(x - (5r1 - 4r2), r1, "")
       point(x - (4r1 - 3r2), r1, "", :blue)
       hline!([0], color=:black, lw=0.5)
       vline!([0], color=:black, lw=0.5)
   else
       plot!(showaxis=false)
   end
end;


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

コメントを投稿

Julia」カテゴリの最新記事