裏 RjpWiki

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

算額(その1026)

2024年06月03日 | Julia

算額(その1026)

十五 前沢町赤生津坊主山 前沢月山神社坊主山 明治43年(1910)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

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

正方形の中に内接円,その中に 7 個の小正方形,そのうちの 3 個の小正方形の中に 3 個の等円を入れる。等円の直径が与えられたとき外の正方形の一辺の長さを求めよ。

丁寧に図を描けば,答えは簡単にわかる。
すなわち,外の正方形の一辺の長さは等円の直径の 3√2 倍である。
等円の直径が √2 のとき,正方形の一辺の長さは 6 である。

include("julia-source.txt");

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r1 = √2/2
   a = √2r1
   @printf("小円の直径が %g のとき,外の正方形の一辺の長さは %g である。\n", 2r1, 6a)
   plot(a.*[-1, 0, 1, -2, -1, 2, 1],  a.*[2, 3, 2, -1, -2, 1, 2], color=:blue, lw=0.5)
   plot!(a.*[-1, 0, 1, -2, -1, 2, 1], -a.*[2, 3, 2, -1, -2, 1, 2], color=:blue, lw=0.5)
   circle22(0, 2a, r1)
   circle(0, 0, r1)
   circle(0, 0, 3√2*r1, :green)
   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, "", :blue, :left, :vcenter)
       point(0, √2r1, " √2r1", :blue, :left, :vcenter)
       point(0, 2√2r1, "", :blue, :left, :bottom, delta=delta/2)
       point(0, 3√2r1, " 3√2r1", :blue, :left, :bottom, delta=delta/2)
       segment(0, 0, r1/√2, r1/√2, :gray70)
       point(r1/√2, r1/√2, " (r1/√2,r1/√2)", :blue, :left, :vcenter)
   end
end;

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

算額(その1025)

2024年06月03日 | Julia

算額(その1025)

十五 前沢町赤生津坊主山 前沢月山神社坊主山 明治43年(1910)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

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

直角三角形の中に長方形を 1 個,等円を 2個入れる。更に長方形の中に甲円 2 個と乙円 3 個を入れる。等円の直径が与えられたとき,乙円の直径を求めよ。

等円の半径と中心座標を r1, (6r2 + r1, r1), (r1, 4r2 + r1)
乙円の半径と中心座標を r2, (r2, 2r2), (3r2, 2r2), (5r2, 2r2)
甲円の半径と中心座標は 2r2, (2r2, 2r2), (4r2, 2r2)

上の直角三角形と右の直角三角形は合同でなければならない。ということは,それぞれの直角三角形の底辺(股)と高さ(鈎)は 6r2:4r2 = 3:2 である。大きな直角三角形の底辺は 12r2,高さは 8r2 である。
これらを踏まえて以下の方程式を解く。

include("julia-source.txt");

using SymPy
@syms a::positive, b::positive,
     r1::positive, r2::positive
eq1 = 6r2 + 4r2 - sqrt((6r2)^2 + (4r2)^2) - 2r1
res = solve(eq1, r2)[1] |> simplify

   r1*(sqrt(13) + 5)/12

乙円の直径は等円の直径の (√13+ 5)/12 倍である。
たとえば,等円の直径が 68777 のとき,乙円の直径は 49322.000006048904 である。

68777*(√13 + 5)/12

   49322.000006048904

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r1 = 68777
   r2 = r1* (√13+ 5)/12
   a = 12r2
   b = 8r2
   @printf("r1 = %g;  r2 = %g;  a = %g;  b = %g\n", r1, r2, a, b)
   plot([0, a, 0, 0], [0,  0, b, 0], color=:green, lw=0.5)
   plot!([0, 6r2, 6r2, 0, 0], [0, 0, 4r2, 4r2, 0], color=:blue, lw=0.5)
   circle(r1, 4r2 + r1, r1)
   circle(6r2 + r1, r1, r1)
   circle(r2, 2r2, r2, :magenta)
   circle(3r2, 2r2, r2, :magenta)
   circle(5r2, 2r2, r2, :magenta)
   circle(2r2, 2r2, 2r2, :black)
   circle(4r2, 2r2, 2r2, :black)
   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(r2, 2r2, "乙円:r2\n(r2,2r2)", :magenta, :center, :bottom, delta=delta)
       point(2r2, 2r2, "甲円:2r2,(2r2,2r2)", :black, :center, delta=-delta)
       point(r1, 4r2 + r1, "等円:r1\n(r1,4r2+r1)", :red, :center, delta=-delta)
       point(6r2 + r1, r1, "等円:r1\n(6r2+r1,r1)", :red, :center, delta=-delta)
       point(a, 0, " a", :green, :left, :bottom, delta=delta)
       point(0, b, " b", :green, :left, :bottom, delta=delta)
   end
end;

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

算額(その1024)

2024年06月03日 | Julia

算額(その1024)

十五 前沢町赤生津坊主山 前沢月山神社坊主山 明治43年(1910)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

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

大円に内接する正方形を描き,正方形内に対角を中心とする四分円を 2 個描く。四分円が交差してできる領域に小円を描く。大円の直径が 12 寸のとき,小円の直径はいかほどか。

大円の半径と中心座標を R, (0, 0)
右下の四分円の半径と中心座標は √2R, (R/√2, -R/√2)
小円と四分円の接点座標を (r/√2, -r/√2)
とおき,以下の方程式を解く。

include("julia-source.txt");

using SymPy
@syms R::positive, r::positive
eq1 = (√Sym(2)R - r)^2 - 2(R/√Sym(2))^2
res = solve(eq1, r)[1]  # 1 of 2
res |> println

   R*(-1 + sqrt(2))

小円の直径は,大円の直径の (√2 - 1) 倍である。

大円の直径が 12 寸のとき,小円の直径は 12(√2 - 1) = 4.970562748477142 寸である。

山村の例解は間違えており,「術」も理解不能である。

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   R = 12/2
   r = (√2 - 1)R
   @printf("大円の直径が %g のとき,小円の直径は %gである。", 2R, 2r)
   a = R/√2
   plot([a, a, -a, -a, a], [-a, a, a, -a, -a], color=:green, lw=0.5)
   circle(0, 0, R)
   circle(a, -a, √2R, :blue, beginangle=90, endangle=180)
   circle(-a, a, √2R, :blue, beginangle=270, endangle=360)
   circle(0, 0, r, :green)
   segment(0, 0, a, -a, :gray70)
   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/√2, -R/√2, "  (R/√2,-R/√2)", :black, :left, :bottom, delta=delta/2)
       point(r/√2, -r/√2, "  (r/√2,-r/√2)", :black, :left, :bottom, delta=delta/2)
       point(r, 0, " r", :green, :left, :bottom, delta=delta/2)
       point(R, 0, " R", :red, :left, :bottom, delta=delta/2)
   end
end;

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

算額(その1023)

2024年06月03日 | Julia

算額(その1023)

十四 前沢町赤生津長根 前沢月山神社 明治11年(1878)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

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

盤の上に等球が 4 個載っている。下の3球は互いに外接し,上の1球は下の3球に外接している。球の直径が12寸のとき,盤面からの高さ(上の球のてっぺんまでの高さ)はいかほどか。

上から見た図(A, B, C は互いに外接する)

横から見た図(A の真後ろに B がある)

球の半径を r
上の 1 球(D)の中心座標を (0, 0, z)
下の 3 球(A,B,C)の中心座標を (r, -r/√3, r), (-r, -r/√3, r), (0, 2r/√3, r)
とする。上の 1 球と下の 1 球(どれでも同じになる)の中心間距離は 2r である。3 次元のピタゴラスの定理により r^2 + r^2/3 + (z - r)^2 = 4r^2 が成り立つ。この方程式を解いて上の 1 球の中心座標が求まるので,てっぺんまでの距離は z 座標値に球の半径を加えたものである。

include("julia-source.txt");

using SymPy
@syms r::positive, z::positive
eq1 = r^2 + r^2/3 + (z - r)^2 - 4r^2
res = solve(eq1, z)[1]
res |> println

   r*(3 + 2*sqrt(6))/3

上の 1 球の中心座標は (0, 0, r*(3 + 2√6)/3) である。
盤面からてっぺんまでの距離は r*(3 + 2√6)/3 + r = 2r*(√6 + 3)/3である。
球の直径が 12 寸のとき,てっぺんまでの距離は 2*6*(√6 + 3)/3 = 21.79795897113271 寸である。

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

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

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