以下の内容はhttps://sangaku0418.hatenablog.com/entry/2025/04/01/123540より取得しました。


算額(その1643)

三四 武蔵国埼玉郡下忍村遍照院境内 金毘羅社(神楽堂) 天保11年(1840)

埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:外円,楕円,二等辺三角形
#Julia #SymPy #算額 #和算 #数学


円弧の中に等楕円 3 個を容れる。楕円は短径で円弧に接し,長径が最長のものである。円弧の直径が 5 寸,短径が 1 寸のとき,矢の長さ(弦の中点から円弧への最短線分の長さ)を求めよ。

円弧の直径と中心座標を \(R, (0, 0)\)
中央の楕円の長半径,短半径を \(a, b, (0, R - b)\)
円弧の中心を通る楕円の接線の楕円との接点を \( (x_0, y_0)\)
接線と円弧の弦がなす角を \(\theta\)
とおく。

「楕円は短径で円弧に接し,長径が最長のもの」とは,円弧は曲率円の一部であり \(a^2/b = R\) が成り立つ。

接点 \( (x_0, y_0)\) を求める。

接線と弦のなす角は \(\theta = \text{atand}(y_0, x_0) = 60°\) である。

中央の楕円を見込む角も 60° であり,弦と接線の間にも等楕円が入り,\(y\) 軸を線対称として反対側にも等楕円が入る。

3 つの楕円を見込む角は合計 180° で,弦は円弧をなす円の直径である。

よって,矢は円の半径に当たるので 2.5 寸である。

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

using SymPy
@syms R::positive, a::positive, b::positive,
      x0::positive, y0::positive
a = sqrt(b*R)
eq1 = x0^2/a^2 + (y0 - (R - b))^2/b^2 - 1
eq2 = -b^2*x0/(a^2*(y0 - (R - b))) - y0/x0
res = solve([eq1, eq2], (x0, y0))[2]

    (R*sqrt(b)*sqrt(R - 2*b)/(R - b), R*(R - 2*b)/(R - b))

\(\tan(\theta) = y_0/x_0\) から \(\theta\) を求めると \(\theta = 60°\) である。

atand(res[2]/res[1])(R => 5/2, b => 1/2).evalf() |> println

    60.0000000000000

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

function draw(R, b, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    a = sqrt(b*R)
    (x0, y0) = (R*sqrt(b)*sqrt(R - 2*b)/(R - b), R*(R - 2*b)/(R - b))
    θ = atand(y0, x0)
    plot(showaxis=false)
    circle(0, 0, R, beginangle=0, endangle=180)
    segment(-R, 0, R, 0, :red)
    circle(0, 0, R, :gray, beginangle=180, endangle=360)
    ellipse(0, R - b, a, b, color=:blue)
    ellipse(0, b - R, a, b, color=:gray80)
    ellipse( (R - b)*cosd(θ/2), (R - b)*sind(θ/2), a, b, color=:gray80, φ=2θ)
    ellipse(-(R - b)*cosd(θ/2), (R - b)*sind(θ/2), a, b, color=:gray80, φ=θ)
    ellipse( (R - b)*cosd(θ/2), -(R - b)*sind(θ/2), a, b, color=:gray80, φ=-2θ)
    ellipse(-(R - b)*cosd(θ/2), -(R - b)*sind(θ/2), a, b, color=:gray80, φ=-θ)
    segment(0, 0, R*cosd(θ), R*sind(θ), :green)
    segment(0, 0, -R*cosd(θ), R*sind(θ), :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(x0, y0, "(x0,y0)", :blue, :left, delta=-delta/2)
        point(0, R - b, "楕円:a,b\n(0,R-b)", :blue, :right, :vcenter, deltax=-delta)
        circle(0, 0, 0.1R, beginangle=0, endangle=θ)
        circle(0, 0, 0.12R, beginangle=0, endangle=θ)
        point(0.12R, 0.1R, "θ", :red, mark=false)
        dimension_line(0, 0, 0, R, " 矢", :magenta, :left, :vcenter)
    end
end;

draw(5/2, 0.5, true)


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




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

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