裏 RjpWiki

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

算額(その1044)

2024年06月11日 | Julia

算額(その1044)

八十七 室根村矢越 矢越弥栄神社 昭和4年(1929)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html

外円の中に甲円 2 個,乙円 4 個,丙円 2 個を容れる。甲円の直径が 4 寸のとき,乙円の直径はいかほどか。

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

甲円の半径 r1 は与えられるので,未知数は R, r2, x2, r3 の 4 個であるのに,条件式は 3 本しかない。条件不足かとずいぶん悩んだが,r1 と r2 の関係を求めよということなので「えいままよ」と r3 は未知数ではないと仮定して R, r2, x2 を求めてみる。
あれ不思議,r2 は r1/2 ということで,r3 は関与していない。つまり,r3 がどんな数でも(外円の大きさは r3 によって変化するが),常に r2 = r1/2 ということである。
すなわち,甲円の直径が 4 寸なら,乙円の直径は 2 寸である。

include("julia-source.txt");

using SymPy
@syms R::positive, r1::positive, r2::positive, x2::positive, r3::positive
eq1 = 2r1 + 2r3 - 2R
eq2 = x2^2 + r2^2 - (R - r2)^2
eq3 = x2^2 + (R - r3 - r2)^2 - (r2 + r3)^2
res = solve([eq1, eq2, eq3], (R, r2, x2))[1]

   (r1 + r3, r1/2, sqrt(r3)*sqrt(r1 + r3))

function draw(r1, r3, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (R, r2, x2) = (r1 + r3, r1/2, sqrt(r3)*sqrt(r1 + r3))
   @printf("甲円の直径が %g のとき,乙円の直径は %g である。\n", 2r1, 2r2)
   @printf("r1 = %g;  r3 = %g;  R = %g;  r2 = %g;  x2 = %g\n", r1, r3, R, r2, x2)
   string = @sprintf("甲円の直径 = %g 丙円の直径 = %g\n乙円の直径 = %g", 2r1, 2r3, 2r2)
   plot()
   circle(0, 0, R)
   circle22(0, R - r1, r1, :blue)
   circle22(0, R - r3, r3, :green)
   circle4(x2, r2, r2, :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(R, 0, " R", :red, :left, :bottom, delta=delta/2)
       point(0, R, " R", :red, :left, :bottom, delta=delta/2)
       point(0, R - r1, "甲:r1,(0,R-r1)", :blue, :center, delta=-delta/2)
       point(0, R - r3, "丙:r3,(0,R-r3)", :green, :center, delta=-delta/2)
       point(x2, r2, "乙:r2\n(R-r2,0)", :orange, :center, delta=-delta/2)
       point(0, -0.75R, string, :black, :left, :vcenter, deltax=-10delta, mark=false)
   end
end;

draw(4/2, 6/2, true)

   甲円の直径が 4 のとき,乙円の直径は 2 である。
   r1 = 2;  r3 = 3;  R = 5;  r2 = 1;  x2 = 3.87298

draw(5/2, 7/2, true)

   甲円の直径が 5 のとき,乙円の直径は 2.5 である。
   r1 = 2.5;  r3 = 3.5;  R = 6;  r2 = 1.25;  x2 = 4.58258

甲円の直径と丙円の直径が同じ場合には以下のようになる。
これは「算額(その582)」https://blog.goo.ne.jp/r-de-r/e/a539541dcbea774663b1214354485621 と同じで,甲円と乙円の大きさが 2:1 になるというのは容易に導ける(条件不足にならないから,連立方程式をすんなりと解くことができるから)。

draw(5/2, 5/2, true)

   甲円の直径が 5 のとき,乙円の直径は 2.5 である。
   r1 = 2.5;  r3 = 2.5;  R = 5;  r2 = 1.25;  x2 = 3.53553

 


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

コメントを投稿

Julia」カテゴリの最新記事