裏 RjpWiki

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

算額(その1192)

2024年08月07日 | Julia

算額(その1192)

(15) 京都府夜久野町字額田 妙竜寺 明治20年(1887)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:円12個,直線上

直線上に春円 2 個,夏円 1 個,秋円 1 個が載り,秋円の中に 8 個の冬円が内接している。春円,夏円の直径がそれぞれ 3 寸,2 寸のとき,冬円(秋円)の直径はいかほどか。

春円の半径と中心座標を r1, (x1, r1)
夏円の半径と中心座標を r2, (0, r2)
秋円の半径と中心座標を r3, (0, 2r2 + r3)
冬円の半径と中心座標を r4, (r3 - r4, 2r2 + r3)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy
@syms r1::positive, x1::positive,
     r2::positive, r3::positive, r4::positive
eq1 = (r3 - r4)*sind(Sym(45)/2) - r4
eq2 = x1^2 + (r1 - r2)^2 - (r1 + r2)^2
eq3 = x1^2 + (2r2 + r3 - r1)^2 - (r1 + r3)^2;
res = solve([eq1, eq2, eq3], (r3, r4, x1))[1]

   (r2^2/(r1 - r2), r2^2*sqrt(2 - sqrt(2))/(r1*sqrt(2 - sqrt(2)) + 2*r1 - 2*r2 - r2*sqrt(2 - sqrt(2))), 2*sqrt(r1)*sqrt(r2))

r4 は若干簡約化できる。

ans_r4 = res[2] |> factor
ans_r4 |> println

   r2^2*sqrt(2 - sqrt(2))/((r1 - r2)*(sqrt(2 - sqrt(2)) + 2))

春円,夏円の直径がそれぞれ 3 寸,2 寸のとき,冬円,秋円の直径は 1.10707461565662 寸,4 寸である。

2res[2](r1 => 3/2, r2 => 2/2).evalf() |> println
2res[1](r1 => 3/2, r2 => 2/2).evalf() |> println

   1.10707461565662
   4.00000000000000

function draw(r1, r2, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r3, r4, x1) = (r2^2/(r1 - r2), r2^2*sqrt(2 - sqrt(2))/(r1 - r2)/(sqrt(2 - sqrt(2)) + 2), 2*sqrt(r1)*sqrt(r2))
   @printf("春円,夏円の直径が %g, %g のとき,冬円の直径は %g,秋円の直径は %g である。\n", 2r1, 2r2, 2r4, 2r3)
   plot()
   circle(0, 2r2 + r3, r3, :orange)
   for θ in 0:45:359
       (y, x) = (r3 - r4).*sincos(pi*θ/180)
       circle(x, 2r2 + r3 + y, r4, :blue)
   end
   circle2(x1, r1, r1, :green)
   circle(0, r2, r2, :red)
   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(x1, r1, "春円:r1,(x1,r1)", :green, :center, delta=-delta/2)
       point(0, r2, "夏円:r2,(0,r2)", :red, :center, delta=-delta/2)
       point(0, 2r2 + r3, "秋円:r3\n(0,2r2+r3)", :orange, :center, delta=-delta/2)
       point(r3 - r4, 2r2 + r3, "冬円:r4,(r3-r4,2r2+r3)", :blue, :left, delta=-delta/2, deltax=-5delta)
   end
end;

draw(3/2, 2/2, true)

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

算額(その1191)

2024年08月07日 | Julia

算額(その1191)

(14) 京都府城陽市寺田 水度神社 明治18年(1885)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:円7個,長方形

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

甲円の半径と中心座標を r1, (r2 + r1, 0)
乙円の半径と中心座標を r2, (0, 0)
丙円の半径と中心座標を r3, (r3, r1 - r3)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

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

res[1] |> simplify |> println

   r1*(5 - sqrt(17))/2

乙円の半径 r2 は 甲円の半径 r1 の (5 - √17)/2 倍である。
甲円の直径が 17 寸のとき,乙円の直径は 17*(5 - √17)/2 = 7.453602182249885 寸である。

res[2] |> simplify |> println

   r1*(13 - 3*sqrt(17))/2

丙円の半径 r3 は 甲円の半径 r1 の (13 - 3√17)/2 倍である。
甲円の直径が 17 寸のとき,乙円の直径は 17*(13 - 3√17)/2 = 5.360806546749663 寸である。

「答」では,乙円,丙円の直径を 7.135797 寸,5.2469 寸としているが,「術」では丙円の直径を「13 から 153 の平方根を引き甲円の直径の半分を掛ける」,乙円の直径を「甲円の半径から丙円の半径を引き,二乗して丙円の半径の二乗を加えて平方根を求め丙円の半径を引いて二倍する(「小半」は「丙半」の誤記)」と正しい式を与えている。

なお,乙円を求める式は「sqrt(2*丙^2 - 2*丙*甲 + 甲^2) - 丙」と簡約化できるが,丙に前半で求めた (13 - √153)*(甲/2) を代入して簡約化すれば,前述の「甲円*(13 - 3*sqrt(17))/2」 になる。

甲 = 17
丙 = (13 - √153)*(甲/2)

   5.360806546749663

2(sqrt((甲/2 - 丙/2)^2 + (丙/2)^2) - 丙/2)

   7.453602182249876

sqrt(2*丙^2 - 2*丙*甲 + 甲^2) - 丙

   7.453602182249876

@syms 甲::positive, 乙
丙 = (13 - √Sym(153))*(甲/2)
2(sqrt((甲/2 - 丙/2)^2 + (丙/2)^2) - 丙/2) |> simplify |> sympy.sqrtdenest |> simplify |> println

   甲*(5 - sqrt(17))/2

function draw(r1, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r2, r3) = r1 .* ((5 - sqrt(17))/2, (13 - 3*sqrt(17))/2)
   @printf("甲円の直径が %g のとき,乙円の直径は %g,丙円の直径は %g である。\n", 2r1, 2r2, 2r3)
   @printf("r1 = %g;  r2 = %g;  r3 = %g\n", r1, r2, r3)
   plot((r2 + 2r1) .* [1, 1, -1, -1, 1], r1 .* [-1, 1, 1, -1, -1], color=:magenta, lw=0.5)
   circle2(r2 + r1, 0, r1)
   circle(0, 0, r2, :green)
   circle4(r3, r1 - r3, r3, :blue)
   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)
   end
end;

draw(17/2, true)

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

算額(その1190)で略した部分

2024年08月07日 | Julia

略1

   (天, 地, 1/(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天))), 1/(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天))), 1/(1/天 + 4/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天))), 1/(1/天 + 5/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 4/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天))))

略2

   (1/(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(6/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))), 1/(7/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(6/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))))

略3

-32 + 1/(7/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(6/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(5/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(4/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(3/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 2*sqrt(2/天 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(天) + 1/地 + 2/(sqrt(地)*sqrt(天))),  # eq1
-225/2 + 1/(1/天 + 5/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 4/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 3/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2*sqrt(1/天 + 2/地 + 2*sqrt(1/天 + 1/地 + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天)))/sqrt(地) + 2/(sqrt(地)*sqrt(天))),  # eq2

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

算額(その1190)

2024年08月07日 | Julia

算額(その1190)

(12) 京都市伏見区御香宮門前町 御香宮神社(ごこうのみやじんじゃ)文久3年(1863)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:円6個,直線上

直線上に,天円と地円が互いに接して載っている。天円,地円と直線の隙間に,午,未,...子の 11 円が互いに接し,かつ,天円,地円のいずれかとも接してて入っている。
子円,亥円の直径がそれぞれ 64 寸,225 寸のとき,午円の直径はいかほどか。

解が得られるまでの過程が長いので,結論を先に述べておく。

午円の直径は 1427.16049382716 寸である。

---

まず,デカルトの円定理を用いて,それぞれの円の半径の数式解を求める。

include("julia-source.txt");

using SymPy
@syms 天::positive, 地::positive, 午::positive

#(天, 地) = (1854.1323234573401, 4951.3384889946465)
k午 = 1/天 + 1/地 + 2sqrt(1/(天*地))
午 = 1/k午
k未 = 1/地 + 1/午 + 2sqrt(1/(地*午))
未 = 1/k未
k酉 = 1/地 + 1/未 + 2sqrt(1/(地*未))
酉 = 1/k酉
k戌 = 1/地 + 1/酉 + 2sqrt(1/(地*酉))
戌 = 1/k戌
k亥 = 1/地 + 1/戌 + 2sqrt(1/(地*戌))
亥 = 1/k亥;

天, 地, 午, 未, 酉, 戌, 亥

 略1

k巳 = 1/天 + 1/午 + 2sqrt(1/(天*午))
巳 = 1/k巳
k辰 = 1/天 + 1/巳 + 2sqrt(1/(天*巳))
辰 = 1/k辰
k卯 = 1/天 + 1/辰 + 2sqrt(1/(天*辰))
卯 = 1/k卯
k寅 = 1/天 + 1/卯 + 2sqrt(1/(天*卯))
寅 = 1/k寅
k丑 = 1/天 + 1/寅 + 2sqrt(1/(天*寅))
丑 = 1/k丑
k子 = 1/天 + 1/丑 + 2sqrt(1/(天*丑))
子 = 1/k子;

巳,辰,卯,寅,丑,子

 略2

天円と地円の大きさにより,末円(亥円と子円)の大きさが異なる。
そこで,問にあるような,子と亥の直径が 64 寸,225 寸となるのは,天と地がいくつのときか,数値解を求める。

@syms 子2, 亥2
eq1 = 子 - 64//2
eq2 = 亥 - 225//2;
# solve([eq1, eq2], (天, 地))

using NLsolve

function nls(func, params...; ini = [0.0])
   if typeof(ini) <: Number
       r = nlsolve((vout, vin) -> vout[1] = func(vin[1], params..., [ini]), ftol=big"1e-40")
       v = r.zero[1]
   else
       r = nlsolve((vout, vin)->vout .= func(vin, params...), ini, ftol=big"1e-40")
       v = r.zero
   end
   return Float64.(v), r.f_converged
end;

function H(u)
   (天, 地) = u
   return [
略3
   ]
end;
iniv = BigFloat[13000, 7500]./2
res = nls(H, ini=iniv)

   ([1854.1323234573401, 4951.3384889946465], true)

天円の半径は r1 = 1854.1323234573401,地円の半径は r2 = 4951.3384889946465 であることがわかった。

最初に戻り,デカルトの円定理で各円の半径を数値として求めることはできるが,ここでは図を書いて解が正しいことを確認するために,2 円の間の外接関係(ピタゴラスの定理)に基づく連立方程式を解き,半径と位置座標(円の中心の x 座標)を求める。

以下,午,未,酉,戌,亥,および巳,辰,卯,寅,丑,子の半径と中心座標を逐次求める。

天円の半径と中心座標を r1, (x1, r1)
地円の半径と中心座標を r2, (0, r2)
午円の半径と中心座標を r3, (x3, r3)
 :
亥円の半径と中心座標を r7, (x7, r7)
巳円の半径と中心座標を r14, (x14, r14)
 :
子円の半径と中心座標を r19, (x19, r19)
とする。

---

午の半径と中心の x 座標

@syms r1::positive, r2::positive, r3::positive, x1::positive, x3::positive
(r1, r2) = (1854.1323234573401, 4951.3384889946465)
eq1 = x1^2 + (r2 - r1)^2 - (r2 + r1)^2
eq2 = x3^2 + (r2- r3)^2 - (r2 + r3)^2
eq3 = (x1- x3)^2 + (r1 - r3)^2 - (r1 + r3)^2
res3 = solve([eq1, eq2, eq3], (r3, x1, x3))[1]  # 1 of 2

   (713.580246913579, 6059.84710593375, 3759.34959349594)

未の半径と中心の x 座標

@syms r4::positive, x4::positive
(r3, x1, x3) = res3
eq4 = x4^2 + (r2 - r4)^2 - (r2 + r4)^2
eq5 = (x3 - x4)^2 + (r3 - r4)^2 - (r3 + r4)^2
res4 = solve([eq4, eq5], (r4, x4))[1]  # 1 of 2

   (374.902031440026, 2724.89769192995)

酉の半径と中心の x 座標

@syms r5::positive, x5::positive
(r4, x4) = res4
eq6 = x5^2 + (r2 - r5)^2 - (r2 + r5)^2
eq7 = (x4 - x5)^2 + (r4 - r5)^2 - (r4 + r5)^2
res5 = solve([eq6, eq7], (r5, x5))[1]  # 1 of 2

   (230.559556786704, 2136.89345314506)

戌の半径と中心の x 座標

@syms r6::positive, x6::positive
(r5, x5) = res5
eq8 = x6^2 + (r2 - r6)^2 - (r2 + r6)^2
eq9 = (x5 - x6)^2 + (r5 - r6)^2 - (r5 + r6)^2
res6 = solve([eq8, eq9], (r6, x6))[1]  # 1 of 2

   (155.979085849216, 1757.61799176434)

亥の半径と中心の x 座標
問の通り,直径が 225 寸になった。

@syms r7::positive, x7::positive
(r6, x6) = res6
eq10 = x7^2 + (r2 - r7)^2 - (r2 + r7)^2
eq11 = (x6 - x7)^2 + (r6 - r7)^2 - (r6 + r7)^2
res7 = solve([eq10, eq11], (r7, x7))[1]  # 1 of 2

   (112.500000000000, 1492.68292682927)

---

巳の半径と中心の x 座標

@syms r14::positive, x14::positive
eq24 = (x1 - x14)^2 + (r1 - r14)^2 - (r1 + r14)^2
eq25 = (x3 - x14)^2 + (r3 - r14)^2 - (r3 + r14)^2
res24 = solve([eq24, eq25], (r14, x14))[1]  # 1 of 2

   (271.777959183670, 4640.11149825784)

辰の半径と中心の x 座標

@syms r15::positive, x15::positive
(r14, x14) = res24
eq26 = (x1 - x15)^2 + (r1 - r15)^2 - (r1 + r15)^2
eq27 = (x14 - x15)^2 + (r14 - r15)^2 - (r14 + r15)^2
res25 = solve([eq26, eq27], (r15, x15))[1]  # 1 of 2

   (142.121439792364, 5033.17879459785)

卯の半径と中心の x 座標

@syms r16::positive, x16::positive
(r15, x15) = res25
eq28 = (x1 - x16)^2 + (r1 - r16)^2 - (r1 + r16)^2
eq29 = (x15 - x16)^2 + (r15 - r16)^2 - (r15 + r16)^2
res26 = solve([eq28, eq29], (r16, x16))[1]  # 1 of 2

   (87.1712696766909, 5255.78972294575)

寅の半径と中心の x 座標

@syms r17::positive, x17::positive
(r16, x16) = res26
eq29 = (x1 - x17)^2 + (r1 - r17)^2 - (r1 + r17)^2
eq30 = (x16 - x17)^2 + (r16 - r17)^2 - (r16 + r17)^2
res27 = solve([eq29, eq30], (r17, x17))[1]  # 1 of 2

   (58.8727931190581, 5399.06590555266)

丑の半径と中心の x 座標

@syms r18::positive, x18::positive
(r17, x17) = res27
eq31 = (x1 - x18)^2 + (r1 - r18)^2 - (r1 + r18)^2
eq32 = (x17 - x18)^2 + (r17 - r18)^2 - (r17 + r18)^2
res28 = solve([eq31, eq32], (r18, x18))[1]  # 1 of 2

   (42.4114263002606, 5499.00346858998)

子の半径と中心の x 座標
問の通り,子の直径が 64 寸になった。

@syms r19::positive, x19::positive
(r18, x18) = res28
eq33 = (x1 - x19)^2 + (r1 - r19)^2 - (r1 + r19)^2
eq34 = (x18 - x19)^2 + (r18 - r19)^2 - (r18 + r19)^2
res29 = solve([eq33, eq34], (r19, x19))[1]  # 1 of 2

   (31.9999999999989, 5572.68292682926)

各円の直径は以下のとおりである。

天 = 3708.26;  地 = 9902.68;  午 = 1427.16;  未 = 749.804;  酉 = 461.119;  戌 = 311.958;  亥 = 225
巳 = 543.556;  辰 = 284.243;  卯 = 174.343;  寅 = 117.746;  丑 = 84.8229;  子 = 64

午円の直径は 1427.16049382716 寸である。
「術」では 1600 寸としている。そもそも,算額の図では天円のほうが地円より大きいという違いがあるのだが。

function draw(lens, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r1, r2) = (1854.1323234573401, 4951.3384889946465)
   (r3, x1, x3) = (713.580246913579, 6059.84710593375, 3759.34959349594)
   (r4, x4) = (374.902031440026, 2724.89769192994)
   (r5, x5) = (230.559556786703, 2136.89345314506)
   (r6, x6) = (155.979085849216, 1757.61799176433)
   (r7, x7) = (112.499999999999, 1492.68292682927)
   (r14, x14) = (271.777959183669, 4640.11149825784)
   (r15, x15) = (142.121439792360, 5033.17879459787)
   (r16, x16) = (87.1712696766871, 5255.78972294577)
   (r17, x17) = (58.8727931190587, 5399.06590555266)
   (r18, x18) = (42.4114263002605, 5499.00346858998)
   (r19, x19) = (31.9999999999989, 5572.68292682926)
   @printf("天 = %g;  地 = %g;  午 = %g;  未 = %g;  酉 = %g;  戌 = %g;  亥 = %g\n", 2r1, 2r2, 2r3, 2r4, 2r5, 2r6, 2r7)
   @printf("巳 = %g;  辰 = %g;  卯 = %g;  寅 = %g;  丑 = %g;  子 = %g\n", 2r14, 2r15, 2r16, 2r17, 2r18, 2r19)
   plot()
   circlef(0, r2, r2)
   circlef(x1, r1, r1, :blue)
   circlef(x3, r3, r3, 1)
   circlef(x4, r4, r4, 2)
   circlef(x5, r5, r5, 3)
   circlef(x6, r6, r6, 4)
   circlef(x7, r7, r7, 5)
   circlef(x14, r14, r14, 6)
   circlef(x15, r15, r15, 7)
   circlef(x16, r16, r16, 8)
   circlef(x17, r17, r17, 9)
   circlef(x18, r18, r18, 10)
   circlef(x19, r19, r19, 11)
   if more && lens
       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)
       annotate!(x3, r3, text("午", :white, 16))
       annotate!(x4, r4, text("未", :white, 16))
       annotate!(x5, r5, text("酉", :white, 16))
       annotate!(x6, r6, text("戌", :white, 16))
       annotate!(x7, r7, text("亥", :white, 16))
       annotate!(x14, r14, text("巳", :white, 16))
       annotate!(x15, r15, text("辰", :white, 16))
       annotate!(x16, r16, text("卯", :white, 16))
       annotate!(x17, r17 + delta, text("寅", :white, 16))
       annotate!(x18 + delta/4, r18 + delta, text("丑", :white, 16))
       annotate!(x19 + delta/2, r19 + delta, text("子", :white, 16))
   end
   lens && plot!(xlims=(1000, 6000), ylims=(0, 1500), size=(1000, 1000))
end;

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

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

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