裏 RjpWiki

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

算額(その852)

2024年04月11日 | Julia

算額(その852)

十六 岩手県前沢町赤生津箱根 金刀比羅神社 明治43年(1910)

山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.
http://www.wasan.jp/yamamura/yamamura.html

外円の中に正方形,さらにその中に 7 個の円が入っている。小円の直径が 50 寸のとき,外円の直径はいくつか。

算額(その77)を 90 度回転し,外円を加えたものに過ぎない。求めるものも,外円の直径になっている。

外円の半径と中心座標を R, (0, 0)
正方形の一辺の長さを 2a = √2R
大円の半径と中心座標を r0, (r1, r0), (-r1, r0); r0 = 2r1
中円の半径と中心座標を r1, (0, 0), (r0, r1)
小円の半径と中心座標を r2, (0, a - r2)
とおき,以下の方程式を解く。

include("julia-source.txt");

using SymPy
@syms R::positive, a::positive, r1::positive, r2::positive;
a =  R/sqrt(Sym(2))
r1 = a/3
eq1 = r1^2 + (a - r2)^2 +  - (2r1 + r2)^2
res = solve(eq1, R)[1]
res |> println

   5*sqrt(2)*r2

外円の直径は 小円の直径の 5√2 倍である。
小円の直径が 50 寸のとき,外円の直径は 353.5533905932738 になる。
√2 ≒ 1.414 で近似すると 353.5 である。

しかし,(判読不能箇所が多いが)問の末尾近くの一部分には「▢▢只▢五十二有寸外円径問幾何」とあり,52というのは小円の径を言っているのだろうと推測される。小円の径が 52 なら,外円の径は 353.5 にはならない。
術は「置二個開平方乗小円径五段得外円径」と正しいことをいっているのだが。

なお,正方形の長さは小円の直径の 3 倍,中円の直径は小円の直径の 5/3 倍である。

50*5*1.414, 50*5√2

   (353.5, 353.5533905932738)

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r2 = 50//2
   R = 5√2r2
   a = R/√2
   r1 = a/3
   @printf("外円の直径 = %g;  正方形の一辺の長さ = %g;  中円の直径 = %g;  小円の直径 = %g\n", 2R, 2a, 2r1, 2r2)
   plot(a .* [-1, 1, 1, -1, -1], a .* [-1, -1, 1, 1, -1], color=:black, lw=0.5)
   circle(0, 0, R)
   circle(0, 0, r1, :green)
   circle2(a - r1, 0, r1, :green)
   circle2(r1, 0, 2r1, :blue)
   circle22(0, a - r2, r2, :magenta)
   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(0, 0, " O", :green, :center, delta=-delta/2)
       point(r1, 0, " 大円:r1\n (r1,0)", :blue, :left, :bottom, delta=delta/2)
       point(0, r1, " r1", :green, :center, delta=-delta/2)
       point(2r1, 0, "中円:r1\n(2r1,0)", :green, :left, deltax=-2delta, delta=-delta/2)
       point(0, a - r2, " 小円:r2,(0,a-r2)", :black, :left, :vcenter)
       point(a, 0, " a ", :magenta, :left, :vcenter)
       point(R, 0, " R ", :red, :left, :vcenter)
   end
end;


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

コメントを投稿

Julia」カテゴリの最新記事