算額あれこれ

算額問題をコンピュータで解きます

算額(その1703)

百八 群馬県板倉町板倉 雷電神社 慶應3年(1867)

群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:円2個,楕円,長方形,対角線
#Julia #SymPy #算額 #和算 #数学


長方形内に内接する楕円を設け,対角線で区切られた領域に等円 2 個を容れる。楕円の長径が 3 寸,短径が 2 寸のとき,等円の直径はいかほどか。

楕円の長半径,短半径,中心座標を \(a,\ b,\ (0,\ 0)\)
等円の半径と中心座標を \(r,\ (a - r,\ 0)\)
とおき,以下の方程式を解く。

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

using SymPy

@syms a, b, r
eq = dist2(-a, -b, a, b, a - r, 0, r)
ans_r = solve(eq, r)[2];  # 2 of 2

# r 等円の半径
ans_r |> println
ans_r |> display

    b*(-b + sqrt(a^2 + b^2))/a

    \(\displaystyle \frac{b \left(- b + \sqrt{a^{2} + b^{2}}\right)}{a}\)

長径が 3 寸,短径が 2 寸のとき,等円の直径は 1.07036751697599 寸である。

2 * ans_r(a => 3/2, b => 2/2) |> println

    1.07036751697599

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

function draw(a, b, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    r = b*(-b + sqrt(a^2 + b^2))/a
    plot([a, a, -a, -a, a], [-b, b, b, -b,  -b], color=:green, lw=0.5)
    ellipse(0, 0, a, b, color=:blue)
    circle2(a - r, 0, r)
    segment(-a, -b, a, b, :black, lw=0.5)
    segment(a, -b, -a, b, :black, 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 - r, 0, "等円:r,(a-r,0)", :red, :center, delta=-delta)
        point(0, b, "b", :blue, :center, :bottom, delta=delta/2)
        point(a, 0, "a", :blue, :left, :bottom, delta=delta/2, deltax=delta/2)
    end
end;

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


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