以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/02/25/132311より取得しました。


算額(その0727)

福島県白河市南湖 南湖神社 昭和58年(1983)

http://www.wasan.jp/fukusima/nanko.html

安富有恒:和算を楽しむ,和算研究所だより,第12号,Vol. 7, No.2, 2004.
https://i-wasan.sakura.ne.jp/inst/component/tayori_12.pdf

キーワード:円5個,外円,楕円
#Julia #SymPy #算額 #和算 #数学


外円内に楕円が 3 個入っている。中央部と楕円の中に直径の同じ円(等円)が 4 個入っている。

問題を簡単にするために,半径 \(R\),中心座標 (0, 0) の外円に内接する正三角形と,正三角形の辺上に中心を持ち相互に外接する楕円を考える。更に,楕円に外接する円の半径 \(R_2\) を求める。楕円の長径と円の直径の比を求めれば,任意の楕円の長径に対する求める円の直径がわかる。

求める外円の直径を \(R_2,\ (0,\ 0)\)
仮の外円の半径と中心座標を \(R,\ (0,\ 0)\)
等円の半径と中心座標を \(r,\ (0,\ -R/2);\ r = R/4\)
楕円の長半径と短半径,中心座標を \(a,\ b,\ (0,\ -R/2); b = r\)
楕円同士の接点座標を \( (x_0,\ y_0)\)
楕円と求める外円の接点座標を \( (x_1,\ y_1)\)
とおき,以下の連立方程式を解く。

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

using SymPy
@syms R::positive, a::positive, b::positive, r::positive,
x0::positive, y0::negative, x1::positive, y1::negative, R2::positive

R = 4r
b = r
eq1 = -b^2*x0/(a^2*(y0 + R/2)) + 1/√Sym(3)
eq2 = x0^2/a^2 + (y0 + R/2)^2/b^2 - 1
eq3 = y0/x0 + 1/√Sym(3)
eq4 = -b^2*x1/(a^2*(y1 + R/2)) + x1/y1
eq5 = x1^2/a^2 + (y1 + R/2)^2/b^2 - 1
eq6 = x1^2 + y1^2 - R2^2
res = solve([eq1, eq2, eq3, eq4, eq5, eq6], (R2, a, x0, y0, x1, y1))[1]

    (3*sqrt(6)*r/2, 3*r, 3*sqrt(3)*r/2, -3*r/2, 3*sqrt(15)*r/4, -9*r/4)

等円の半径が \(r\) のとき,外円の半径,楕円の長半径がそれぞれ \(3\sqrt{6}r/2,\ 3r\) なので,外円の直径は楕円の長径の \(\sqrt{6}/2\) 倍である。

div(res[1][1], res[1][2]) |> println

   sqrt(6)/2

その他のパラメータは以下のとおりである。なお,楕円の長径は等円の直径の 3 倍である。

\(R_2 = 3.674234614174767\)
\(R = 4\)
\(r = 1\)
\(a = 3\)
\(b = 1\)
\(x_0 = 2.598076211353316\)
\(y_0 = -1.5\)
\(x_1 = 2.904737509655563\)
\(y_1 = -2.25\)

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r = 1
   R = 4r
   b = r
   (R2, a, x0, y0, x1, y1) = (3√6r/2, 3r, 3√3r/2, -3r/2, 3√15r/4, -9r/4)
   @show(R2, R, r, a, b, x0, y0, x1, y1)
   plot()
   circle(0, 0, R, :gray90)
   plot!([√3R/2, 0, -√3R/2, √3R/2], [-R/2, R, -R/2, -R/2], color=:gray90, lw=0.5)
   circle(0, 0, R2, :orange)
   circle(0, 0, r)
   rotate(0, -2r, r)
   ellipse(0, -R/2, a, r, color=:blue)
   ellipse(R/2*cos(pi/6), R/2*sin(pi/6), a, r, φ=120, color=:blue)
   ellipse(R/2*cos(5pi/6), R/2*sin(5pi/6), a, r, φ=240, color=: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)
       point(a, -2r, "(a,-2r) ", :blue, :right, :vcenter)
       point(x0, y0, "(x0,y0)", :blue, :left, :bottom, delta=delta)
       point(x1, y1, " (x1,y1)", :blue, :left, :vcenter)
       point(0, -R/2, "等円:r,(0,-R/2)", :red, :center, delta=-delta)
       point(r, 0, "r ", :red, :right, :bottom, delta=delta/2)
       point(0, -r, " -r=-R/4", :red, :center, :bottom, delta=delta)
       point(0, -R, " -R", :black, :left, :vcenter)
       point(0, -R2, " -R2", :black, :left, :vcenter)
       # plot!(xlims=(2, 4), ylims=(-2.5, -1))
   end
end;


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




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

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