裏 RjpWiki

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

算額(その1134)

2024年07月09日 | Julia

算額(その1134)

九十九 岩手県江刺市 雨宝堂 現在中善観音堂 文政10年(1827)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html
キーワード:円6個,外円,弦,正方形

全円の中に水平な弦を引き,甲円 3 個,乙円 2 個,丙円 1 個,正方形 1 個を容れる。正方形の一辺の長さが 1 寸のとき,甲円,乙円,丙円の 3 円の直径の和はいかほどか。

注:山村の図では乙円が 3 個で丙円はないことになっているが,一番下の円が丙円である。

外円の半径と中心座標を R, (0, 0)
甲円の半径と中心座標を r1, (0, y + r1), (y - r1)
乙円の半径と中心座標を r2, (x2, y + r2)
丙円の半径と中心座標を r3, (0, r3 - R)
正方形の一辺の長さを 2a
とおき,以下の連立方程式を解く。

include("julia-source.txt")

using SymPy

@syms a::positive, R::positive, r1::positive,
     r2::positive, x2::positive, r3::positive
y = R - 2r1
eq1 = r1^2 + (y - r1)^2 - (R - r1)^2
eq2 = x2^2 + (y + r2)^2 - (R - r2)^2
eq3 = x2^2 + (r1 - r2)^2 - (r1 + r2)^2
eq4 = r1^2 + (2R - 3r1 - r3)^2 - (r1 + r3)^2
eq5 = (a - r1)^2 + (r1 - 2a)^2 - r1^2
(R, r1, r2, x2, r3) = solve([eq1, eq2, eq3, eq4, eq5], (R, r1, r2, x2, r3))[2]

   (45*a/4, 5*a, 25*a/9, 10*sqrt(5)*a/3, 9*a/4)

和 = (3r1 + 2r2 + r3)
和 |> println

   821*a/36

3 円(計 6 個)の直径の和は,正方形の一辺の長さの 821/36 倍である。
正方形の一辺の長さが 1 寸のとき,821/36 = 22 + 29/36 = 22.805555555555557 寸である。

function draw(a, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (R, r1, r2, x2, r3) = (45*a/4, 5*a, 25*a/9, 10*sqrt(5)*a/3, 9*a/4)
   和 = 2(3r1 + 2r2 + r3)
   @printf("正方形の一辺の長さが %g のとき,6 個の円の直径の和は %g である。\n", 2a, 和)
   @printf("a = %g;  r1 = %g;  r2 = %g;  r3 = %g;  R = %g;  x2 = %g\n", a, r1, r2, r3, R, x2)
   plot()
   circle(0, 0, R, :orange)
   circle(0, R - r1, r1)
   y = R - 2r1
   circle2(r1, R - 3r1, r1)
   circle2(x2, R - 2r1 + r2, r2, :blue)
   circle(0, r3 - R, r3, :magenta)
   x = sqrt(R^2 - (R - 2r1)^2)
   segment(-x, R - 2r1, x, R - 2r1)
   plot!([a, a, -a, -a, a], [y - 2a, y, y, y - 2a, y - 2a], color=:green, lw=0.5)
   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, y, "y", :black, :center, :bottom, delta=delta/2)
       point(R, 0, " R", :green, :left, :bottom, delta=delta/2)
       point(0, R, " R", :green, :left, :bottom, delta=delta/2)
       point(0, y + r1, "甲円:r1,(0,y+r1)", :red, :center, delta=-delta/2)
       point(r1, y - r1, "甲円:r1,(0,y-r1)", :red, :center, delta=-delta/2)
       point(x2, y + r2, "乙円:r2\n(0,y+r2)", :blue, :center, delta=-delta/2)
       point(a, y - 2a, "(a,y-2a)", :green, :left, delta=-delta/2)
       point(0, r3 - R, "丙円:r3\n(0,r3-R)", :magenta, :center, delta=-delta/2)
   end
end;

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

算額(その1133)

2024年07月09日 | Julia

算額(その1133)

九十七 岩手県大船渡市猪川町 雨宝堂 現雨宝山竜宝院 文政7年(1824)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html
キーワード:円2個,半円2個,正方形

正方形の中に,大円(半円) 2 個,中円 1 個,小円 1 個,小正方形 1 個を容れる。小円の直径が 9 寸のとき,中円の直径はいかほどか。

外側の正方形の一辺の長さを 2a
内側の正方形の一辺の長さを 2b
大円の半径と中心座標を a, (0, a)
中円の半径と中心座標を r1, (a, 2a - r1)
小円の半径と中心座標を r2, (a, 2b + r2)
とおき,以下の連立方程式を解く。

include("julia-source.txt")

using SymPy

@syms a::positive, b::positive,
     r1::positive, r2::positive
eq1 = (a - b)^2 + (a - 2b)^2 - a^2
eq2 = a^2 + (a - 2b - r2)^2 - (a + r2)^2
eq3 = a^2 + (a - r1)^2 - (a + r1)^2
res = solve([eq1, eq2, eq3], (r1, a, b))[1]

   (20*r2/9, 80*r2/9, 16*r2/9)

中円の半径 r1 は,小円の半径 r2 の 20/9 倍である。
小円の直径が 9 寸のとき,中円の直径は 20 寸である。

その他のパラメータは以下の通りである。

  r1 = 10;  r2 = 4.5;  a = 40;  b = 8

function draw(r2, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r1, a, b) = (20*r2/9, 80*r2/9, 16*r2/9)
   @printf("小円の直径が %g のとき,中円の直径は %g である。\n", 2r2, 2r1)
   @printf("r1 = %g;  r2 = %g;  a = %g;  b = %g\n", r1, r2, a, b)
   plot([0, 2a, 2a, 0, 0], [0, 0, 2a, 2a, 0], color=:green, lw=0.5)
   circle(0, a, a, :orange, beginangle=-90, endangle=90)
   circle(2a, a, a, :orange, beginangle=90, endangle=270)
   circle(a, 2a - r1, r1)
   circle(a, 2b + r2, r2, :blue)
   plot!([a - b, a + b, a + b, a - b, a- b], [0, 0, 2b, 2b, 0], color=:magenta, lw=0.5)
   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(2a, 0, " 2a", :green, :left, :bottom, delta=delta/2)
       point(0, 2a, "2a ", :green, :right, :vcenter)
       point(a - b, 0, "a-b", :green, :center, delta=-delta/2)
       point(a, 0, "a", :green, :center, delta=-delta/2)
       point(a + b, 0, "a+b", :green, :center, delta=-delta/2)
       point(a - b, 2b, "(a-b,2b) ", :green, :right, :vcenter)
       point(0, a, "a ", :orange, :right, :vcenter)
       point(a, 2a - r1, "中円:r2\n(a,2a-r1)", :red, :center, delta=-delta/2)
       point(a, 2b + r2, " 小円:r1,(a,2b+r2)", :blue, :left, :vcenter)
       plot!(xlims=(-5delta, 2a + 3delta), ylims=(-5delta, 2a + 3delta))
   end
end;

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

算額(その1132)

2024年07月09日 | Julia

算額(その1132)

七十八 岩手県藤沢町藤沢早道 竹駒神社 元治2年(1865)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html
キーワード:円1個,正三角形,正方形

正方形の中に円と正三角形を容れる。円の直径が 2 寸のとき,正三角形の一辺の長さはいかほどか。

正方形の一辺の長さを a
円の半径と中心座標を r, (r, r)
とおき,以下の連立方程式を解く。
正三角形の一辺の長さは sqrt(a^2 + b^2) である。

include("julia-source.txt")

using SymPy

@syms a::positive, b::positive, c::positive,
     r::positive
eq1 = a + b - sqrt(a^2 + b^2) - 2r
eq2 = a^2 + b^2 - (c^2 + (a - b)^2)
eq3 = a^2 + b^2 - ((a - c)^2 + a^2)
res = solve([eq1, eq2, eq3], (a, b, c))[1]
res |> println

   (r*(-sqrt(3) - 1)/(-sqrt(3) + sqrt(2)), r*(1 - sqrt(3))/(-sqrt(3) + sqrt(2)), -2*r/(-sqrt(3) + sqrt(2)))

@syms d
#= a =# apart(res[1]) |> simplify |> println

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

#= b =# apart(res[2]) |> simplify |> println

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

#= c =# apart(res[3]) |> simplify |> println

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

length = sqrt(res[1]^2 + res[2]^2) |> simplify |> apart |> simplify
length |> println
length(r => 2/2).evalf() |> println

   2*r*(2 + sqrt(6))
   8.89897948556636

正三角形の一辺の長さ length は,円の半径 r の 4 + 2√6 倍である。
円の直径が 2 寸のとき,正三角形の一辺の長さは 8.89897948556636 である。

「答」,「術」も間違っているし,それを間違っていると言っている山村も間違った答えを出している。
図を描いてみればわかること。

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

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

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

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