算額あれこれ

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

算額(その1804)

47 岩手県一関市舞川字原沢 菅原神社 嘉永3年(1850)

安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:円6個
#Julia #SymPy #算額 #和算 #数学


図のように全円 1 個,大円 2 個,中円 1 個,小円 2 個がある。小円の直径が 1 寸のとき,中円の直径はいかほどか。


全円の半径と中心座標を \(R, (0, R - 2r_1)\)
大円の半径と中心座標を \(r_1, (0, r_1), (0, -r_1)\)
中円の半径と中心座標を \(r_1, (0, r_2)\)
小円の半径と中心座標を \(r_3, (x_3, r_3), (-x_3, r_3)\)
とおき,以下の連立方程式を解く。

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

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

    (2*r3, 2*sqrt(r1)*sqrt(r3))

条件式は 2 個で,(未知)変数は 3 個(\(r_1, r_2, x_3\))であるが,\(r_1\) がどんな値であっても,中円の半径 \(r_2\) は小円の半径 \(r_3\) の 2 倍である。

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

function draw(r1, r3=1/2, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (r2, x3) = (2*r3, 2*sqrt(r1)*sqrt(r3))
    R = r1 + r2
    p = plot()
    circle(0, R - 2r1, R, :green)
    circle22(0, r1, r1)
    circle(0, r2, r2, :blue)
    circle2(x3, r3, r3, :orange)
    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)
    if more     
        point(0, R - 2r1, "全円:R,(0,R-2r1)", :green, :center, delta=-delta)
        point(0, r1, "大円:r1,(0,r1)", :red, :center, delta=-delta)
        point(0, r2, "中円:r2\n(0,r2)", :blue, :center, delta=-delta/2)
        point(x3, r3, "小円:r3\n(x3,r3)", :orange, :center, delta=-3delta, deltax=2delta)
    else
        string = @sprintf("r1 = %g\nr2 = %g, r3 = %g", r1, r2, r3)
        point(-R, 2r1, string, :green, :left, :bottom, deltax=delta, mark=false)
        ylims!(-2r1 - 3delta, 2r1 + 8delta) 
    end
    return p
end;

draw(3, 1/2, true)


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