以下の内容はhttps://sangaku0418.hatenablog.com/entry/2023/02/14/092029より取得しました。


算額(その0132)

岐阜県大垣市西外側町 大垣八幡神社(大垣八幡宮) 天保年間

和算の館
http://www.wasan.jp/gifu/ogakihatiman.html

キーワード:円7個,円弧
#Julia #SymPy #算額 #和算 #数学


外円の中に 2 個の甲円,1 個の乙円と 4 個の丙円を容れる。両脇の半円の直径は 2 つの甲円の中心間の距離に等しい。乙径を知って,丙径を求めよ。

外円の半径と中心座標を \(R,\ (0,\ 0)\)
甲円の半径と中心座標を \(r_1,\ (0,\ R - r_1)\)
乙円の半径と中心座標を \(r_2,\ (0, 0,\ r_2)\)
半円の半径と中心座標を \(r_3,\ (r_1 + 2r_2,\ 0);\ r_3 = r_1 + r_2\)
丙円の半径と中心座標を \(r_4,\ (x_4,\ y_4)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive, r2::positive, r3::positive,
      r4::positive, x4::positive, y4::positive;
r3 = r1 + r2
eq1 = (r1 + 2r2)^2 + r3^2 - (r1 + r3)^2  # 甲円と半円が接する
eq2 = 2r1 + r2 - R  # 外円の半径との関係
eq3 = x4^2 + (R - r1 - y4)^2 - (r1 + r4)^2;  # 甲円と丙円が接する
eq4 = (r1 + 2r2 - x4)^2 + y4^2 - (r4 + r3)^2  # 半円と丙円が接する
eq5 = x4^2 + y4^2 - (r2 + r4)^2;  # 乙円と丙円が接する

res = solve([eq1, eq2, eq3, eq4, eq5], (R, r1, r4, x4, y4))[1]

    (5*r2, 2*r2, 6*r2/23, 20*r2/23, 21*r2/23)

# r4: 丙円の半径
res[3]

    \(\displaystyle \frac{6 r_{2}}{23}\)

丙円の半径 \(r_4\) は 乙円の半径 \(r_2\) の 6/23 倍である。

   乙円の直径が 1 のとき,
   外円の直径 = 5; 甲円の直径 = 2; 半円の直径 = 3
   丙円の直径 = 0.260869565217391
   丙円の中心座標 = (0.434782608695652, 0.456521739130435)

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

function draw(r2, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (R, r1, r4, x4, y4) = r2 .* (5, 2, 6/23, 20/23, 21/23)
    r3 = r1 + r2
    @printf("乙円の直径 = %.15g; 外円の直径 = %.15g; 甲円の直径 = %.15g; 半円の直径 = %.15g\n丙円の直径 = %.15g\n丙円の中心座標 = (%.15g, %.15g)\n",
        2r2, 2R, 2r1, 2r3, 2r4, x4, y4)
    plot()
    θ = asind( (r1 + r2) / (2r1 + r2))
    (ba, ea) = round.(Int, [θ, 180 - θ])
    circle(0, 0, R, :black, beginangle=ba, endangle=ea)
    circle(0, 0, R, :black, beginangle=180+ba, endangle=180+ea)
    circle22(0, R - r1, r1)
    circle(0, 0, r2, :blue)
    circle4(x4, y4, r4, :darkorange)
    circle(r1 + 2r2, 0, r1 + r2, :green, beginangle=90, endangle=270)
    circle(-r1 - 2r2, 0, r1 + r2, :green, beginangle=270, endangle=450)
    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, :center, :bottom, delta=delta/2)
        point(0, R-r1, "甲円:r1,(0,R-r1)", :red, :center, delta=-delta)
        point(0, 0, "乙円:r2\n(0,0)", :blue, :center, delta=-delta)
        point(r2+r3, 0, "半円:r3,(r2+r3,0)", :green, :center, :bottom, delta=delta, deltax=-4delta)
        point(x4, y4, "丙円:r4,(x4,y4)", :darkorange, :left, :vcenter, deltax=3delta)
    end
end;
draw(1/2, true)


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




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

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