算額あれこれ

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

算額(その1658)

天生法百景・付録和算用字和解(小寺裕(二代目福田理軒))

http://www.wasan.jp/zemi2/tenseiho100.pdf
キーワード:円3個,円弧,弦
#Julia #SymPy #算額 #和算 #数学


[1] 円弧(全円)の中に,甲円 1 個,乙円 2 個を容れる。円弧,甲円の直径が与えられたとき,乙円の直径を求めよ。

全円の半径と中心座標を \(R, (0, 0)\)
甲円の半径と中心座標を \(r_1, (0, R - r_1)\)
乙円の半径と中心座標を \(r_2, (x_2), r_2)\)
弦と \(y\) 軸の交点座標を \( (0, y)\)
とおき,以下の連立方程式を解く。

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

using SymPy
@syms R::positive, r1::positive, r2::positive, x2::positive
y = R - 2r1
eq1 = x2^2 + ( (R - r1) - (y + r2))^2 - (r1 + r2)^2
eq2 = x2^2 + (y + r2)^2 - (R - r2)^2
res = solve([eq1, eq2], (r2, x2))[1]

# r2
res[1] |> println

    -r1*(-R + r1)/R

全円,甲円の半径が 10, 3 のとき,乙円の半径は 2.1 である。

\(R = 10;  r_1 = 3;  r_2 = 2.1;  x_2 = 5.01996;  y = 4\)

res[1](R => 10, r1 => 3) |> println

    21/10

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

function draw(R, r1, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (r2, x2) = (-r1*(-R + r1)/R, 2*r1*sqrt(R - r1)/sqrt(R))
    y = R - 2r1
    @printf("R = %g;  r1 = %g;  r2 = %g;  x2 = %g;  y = %g\n", R, r1, r2, x2, y)
    plot()
    x = sqrt(R^2 - y^2)
    θ = atand(R - 2r1, x)
    circle(0, 0, R, :green, beginangle=θ, endangle=180 - θ)
    circle(0, R - r1, r1)
    circle2(2sqrt(r1*r2), R - 2r1 + r2, r2, :blue)
    segment(-x, y, x, y, :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", :green, :center, :bottom, delta=delta)
        point(0, 0, "全円:R,(0,0)", :green, :center, :bottom, delta=delta)
        point(0, y, "y", :green, :center, delta=-delta)
        point(0, R - r1, "甲円:r1\n(0,R-r1)", :red, :center, delta=-delta)
        point(x2, y + r2, "乙円:r2\n(x2,y+r2)", :blue, :center, delta=-delta)
    end
end;

draw(10, 3, true)


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