裏 RjpWiki

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

算額(その592)

2023年12月26日 | Julia

算額(その592)

長崎市 鎮西大社諏訪神社 明治20年(1887)
米光丁: 長崎県の和算の概説

http://hyonemitsu.web.fc2.com/Nagasakiwasan.pdf

問題 11. 外円の中に甲円,乙円,丙円画は一致得る。甲円の直径が 14 寸のとき,乙円の直径はいかほどか。

下部にある甲円,乙円と丙円を対象にすれば,方程式を立てるまでもなく解を求めることができる。

外円の半径と中心座標を R, (0, 0)
甲円の半径と中心座標を r1, (0, r1 - R)
乙円の半径と中心座標を r2, (0, r2 - R)
丙円の半径と中心座標を r3, (0, 0)
として以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms R, r1, r2, r3
eq1 = r1 - (2R - r1)/2
eq2 = r2 - R/4
eq3 = r3 - (2r1 - R)
res = solve([eq1, eq2, eq3], (R, r2, r3))


   Dict{Any, Any} with 3 entries:
     r3 => r1/2
     R  => 3*r1/2
     r2 => 3*r1/8

乙円の半径は,甲円の半径の 3/8 倍である。
甲円の直径が 14 寸のとき,乙円の直径は 14*(3/8) = 5.25 寸である。
算額の答えでは 10.01 寸になっているが,間違いであろう。

r1 = 14/2
(3*r1/8, 3*r1/2, r1/2)

   (2.625, 10.5, 3.5)

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r1 = 14/2
   (r2, R, r3) = (3*r1/8, 3*r1/2, r1/2)
   @printf("乙円の直径 = %g;  R = %g;  r1 = %g;  r2 = %g;  r3 = %g\n", 2r2, R, r1, r2, r3)
   plot([R*cosd(30), 0, -R*cosd(30), R*cosd(30)], [-R*sind(30), R, -R*sind(30), -R*sind(30)], color=:gray, lw=0.5)
   circle(0, 0, R, :blue)
   circle(0, 0, r3, :orange)
   rotate((R - r1)*cosd(30), (R - r1)*sind(30), r1, :green)
   rotate((R - r2)*cosd(30), (R - r2)*sind(30), r2)
   if more
       delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
       hline!([0], color=:black, lw=0.5)
       vline!([0], color=:black, lw=0.5)
       point(0, r1 - R, " r1-R", :green, :left, :bottom, delta=1.5delta)
       point(0, r2 - R, " r2-R", :red)
       point(0, r3, " r3", :orange, :left, :bottom, delta=delta)
       point(0, 2r1-R, "2r1-R ", :green, :right, :bottom, delta=delta)
   end
end;

 


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

コメントを投稿

Julia」カテゴリの最新記事