以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/08/23/152239より取得しました。


算額(その1240)

新潟県小千谷市 小千谷二荒神社 天保4年(1833)

涌田和芳,外川一仁:小千谷二荒神社の紛失算額,長岡工業高等専門学校研究紀要,第 51 巻,p.35-40,2015
https://kinpoku.nagaoka-ct.ac.jp/lib/kiyo/vol_51/51_35wakuta.pdf
キーワード:円4個,外円,弦
#Julia #SymPy #算額 #和算 #数学


弧の中に等円 3 個を容れる。弦が 4.8 寸,矢が 1.2 寸のとき,等円の直径はいかほどか。

注:問で「弦が矢の 2 倍」ということは,弧は半円である。上の図は弦が 4.8 寸,矢が 1.2 寸の場合のものである。

円弧の半径と中心座標を \(R,\ (0,\ 0)\)
等円の半径と中心座標を \(r,\ (0,\ R - r),\ (x,\ y + r);\ y = R - 矢\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース

using SymPy
@syms R::positive, r::positive, x::positive, y::positive,
     矢::positive, 弦::positive
eq1 = x^2 + (y + r)^2 - (R - r)^2
eq2 = x^2 + (R - 2r - y)^2 - 4r^2
eq3 = R - y - 矢
eq4 = y^2 + (弦/2)^2 - R^2
res = solve([eq1, eq2, eq3, eq4], (R, r, x, y))[1]

   ( (弦^2 + 4*矢^2)/(8*矢), 矢*(弦^2 + 4*矢^2)/(2*(弦^2 + 8*矢^2)), 弦*矢/sqrt(弦^2 + 8*矢^2), (弦 - 2*矢)*(弦 + 2*矢)/(8*矢))

res[2] |> println
2res[2](弦 => 4.8, 矢 => 1.2) |> println

   矢*(弦^2 + 4*矢^2)/(2*(弦^2 + 8*矢^2))
   1.00000000000000

等円の半径 \(r\) は\(\frac{矢(弦^2 + 4矢^2)}{2(弦^2 + 8矢^2)}\) である。
弦が 4.8 寸,矢が 1.2 寸のとき,等円の直径は 1 寸である。

「術」は,\(角 = 4矢^2; \displaystyle\frac{矢}{\frac{角}{角 + 弦^2} + 1}\)である。

@syms 矢, 弦
角 = 4矢^2
矢/(角/(角 + 弦^2) + 1);

角を最終式に代入し,simplify で簡約化すると,前述した式(半径)の 2 倍(直径)になる。

術 = 矢/(4矢^2/(4矢^2 + 弦^2) + 1)
術 |> simplify |> println
術(弦 => 4.8, 矢 => 1.2) |> println

   矢*(弦^2 + 4*矢^2)/(弦^2 + 8*矢^2)
   1.00000000000000

描画関数プログラムのソースを見る

function draw(弦, 矢, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   弦 /= 2
   (R, r, x, y) = ( (弦^2 + 4*矢^2)/(8*矢), 矢*(弦^2 + 4*矢^2)/(2*(弦^2 + 8*矢^2)), 弦*矢/sqrt(弦^2 + 8*矢^2), (弦 - 2*矢)*(弦 + 2*矢)/(8*矢))
   @printf("弦,矢が %g, %g のとき,等円の直径は %g である。\n", 弦, 矢, 2r)
   @printf("R = %g;  r = %g;  x = %g;  y = %g\n", R, r, x, y)
   plot()
   circle(0, 0, R)
   circle(0, R - r, r, :blue)
   circle2(x, y + r, r, :blue)
   y0 = R - 矢
   x0 = sqrt(R^2 - y0^2)
   segment(-x0, y0, x0, y0, :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, R, " R", :red, :left, :bottom, delta=delta/2)
       point(0, y, " y", :blue, :left, :bottom, delta=delta/2)
       point(0, R - r, "等円:r,(0,R-r)", :blue, :center, delta=-delta/2)
       point(x, y + r, "等円:r,(x,y+r)", :blue, :center, delta=-delta/2)
   end
end;

draw(4.8, 1.2, true)


以下のアイコンをクリックして応援してください




以上の内容はhttps://sangaku0418.hatenablog.com/entry/2024/08/23/152239より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14