裏 RjpWiki

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

算額(その682)

2024年02月07日 | Julia

算額(その682)

 

愛媛県 大洲市新谷 法眼寺 寛政6年(1794)11月
http://www.wasan.jp/ehime/hogenji.html

埼玉県比企郡鳩山町 円正寺不動堂 文政 11 年(1828)8月
http://www.wasan.jp/saitama/ensyoji.html

山口正義:やまぶき 第18号
https://yamabukiwasan.sakura.ne.jp/ymbk18.pdf
山口正義:やまぶき 第19号
https://yamabukiwasan.sakura.ne.jp/ymbk19.pdf
山口正義:円正寺の算額の謎(鳩山町)
https://yamabukiwasan.sakura.ne.jp/23enshoujisanga.pdf

(5) 大阪府池田市畑 畑天満宮 嘉永5年(1852)晩夏
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.

大阪府池田市 畑天満宮 嘉永5年(1852)晩夏
http://www.wasan.jp/osaka/hata.html

八七 加須市大越六間 天神社 明治14年(1881)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.

和算問題あれこれ 2 令和6年2月の問題-No.2
https://gunmawasan.web.fc2.com/k-n-mondai.html

東京都日本橋 福徳神社(芽吹稲荷)
https://mebuki.jp/2125/

中円の周りに等円 5 個が互いに接している。中円の直径が 17.55 寸のとき,等円の直径はいかほどか。

この算額は,算額(その29)から外円を除いたものである。

等円の直径だけを求めるならば,公式3の(2) (注)より,

等円の直径 = 中円の直径/(sqrt(50 + 10sqrt(5))/5 - 1) = 25.024895967700825 寸である。

17.55/(sqrt(50 + 10sqrt(5))/5 - 1) |> println

   25.024895967700825

注:中村信弥編著: 和算の図形公式--『算法助術』--- 
  http://www.wasan.jp/kosiki/kosiki.html

中円の中心座標を r1, (0, 0)
等円の半径と中心座標を r2, (x2, y2), (0, r1 + r2)
とおき,以下の連立方程式を解き,r1 を与えて r2,x2,y2 を得る。
式が長くなるので cos(18°), sin(18°) を c18,s18 とておく。

include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf

using SymPy

@syms r1::positive, r2::positive, x2::positive, y2::positive
@syms c18, s18
eq1 = x2 - (r1 + r2)c18;
eq2 = y2 - (r1 + r2)s18;
eq3 = x2^2 + (r1 + r2 - y2)^2 - 4r2^2;

res = solve([eq1, eq2, eq3], (r2, x2, y2))

   2-element Vector{Tuple{Sym, Sym, Sym}}:
    (r1*(-c18^2 - s18^2 + 2*s18 - 2*sqrt(c18^2 + s18^2 - 2*s18 + 1) - 1)/(c18^2 + s18^2 - 2*s18 - 3), -2*c18*r1*(sqrt(c18^2 + s18^2 - 2*s18 + 1) + 2)/(c18^2 + s18^2 - 2*s18 - 3), -2*r1*s18*sqrt(c18^2 + s18^2 - 2*s18 + 1)/(c18^2 + s18^2 - 2*s18 - 3) - 4*r1*s18/(c18^2 + s18^2 - 2*s18 - 3))
    (r1*(-c18^2 - s18^2 + 2*s18 + 2*sqrt(c18^2 + s18^2 - 2*s18 + 1) - 1)/(c18^2 + s18^2 - 2*s18 - 3), 2*c18*r1*(sqrt(c18^2 + s18^2 - 2*s18 + 1) - 2)/(c18^2 + s18^2 - 2*s18 - 3), 2*r1*s18*sqrt(c18^2 + s18^2 - 2*s18 + 1)/(c18^2 + s18^2 - 2*s18 - 3) - 4*r1*s18/(c18^2 + s18^2 - 2*s18 - 3))

2通りの解が得られるが,最初のものが適解である。

式は長いが,以下のように簡約化できる。

c18 = cosd(18)  # cos(π/10)
s18 = sind(18)  # sin(π/10)
天 = 1 - 2*s18
地 = 3 - 天
人 = sqrt(天 + 1)
とおいて,r1 が与えられれば,r2, x2, y2 は以下のようにして計算される。
r2 = r1*(天 + 2人 + 1)/地
x2 = r1*2c18*(人 + 2)/地
y2 = r1*2s18*(人 + 2)/地

   等円の直径 = 25.02489596770083
   等円の直径 = 25.0249;  r1 = 8.775;  r2 = 12.5124;  x2 = 20.2456;  y2 = 6.57818

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r1 = 17.55/2
   # r1 = 17.5325404176020/2
   c18 = cosd(18)  # cos(π/10)
   s18 = sind(18)  # sin(π/10)
   天 = 1 - 2*s18
   地 = 3 - 天
   人 = sqrt(天 + 1)
   (r2, x2, y2) = r1 .* ( (天 + 2人 + 1)/地,  2c18*(人 + 2)/地,  2s18*(人 + 2)/地)
   println("等円の直径 = $(2r2)")
   @printf("等円の直径 = %g;  r1 = %g;  r2 = %g;  x2 = %g;  y2 = %g\n",
       2r2, r1, r2, x2, y2)
   plot()
   r0 = r1 + r2
   circle(0, 0, r1, :green)
   circle(0, r0, r2)
   circle(r0*cos(pi/10), r0*sin(pi/10), r2)
   circle(-r0*cos(pi/10), r0*sin(pi/10), r2)
   circle(r0*cos(17pi/10), r0*sin(17pi/10), r2)
   circle(-r0*cos(17pi/10), r0*sin(17pi/10), r2)
   if more
       delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
       vline!([0], color=:black, lw=0.5)
       hline!([0], color=:black, lw=0.5)
       point(0, 0, "0 ", :black, :right)
       point(0, r1 + r2, "r1+r2 ", :red, :right)
       point(0, r1, "r1 ", :green, :right, :bottom, delta=delta/2)
       point(x2, y2, "等円:r2,(x2,y2)", :magenta, :center)
       vline!([0], color=:black, linewidth=0.25)
       hline!([0], color=:black, linewidth=0.25)
   end
end;

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

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

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