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


算額(その1685)

70 岩手県川崎村薄衣字諏訪前(現一関市川崎町) 浪分神社 明治35年(1902)

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


2 個の円弧が交わる中に,大円 1 個,中円 4 個,小円 4 個を容れる。小円の直径が与えられたとき,大円の直径を求める術を述べよ。

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

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

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

    (7*r3/3, 14*r3, 5*r3, -8*r3/3)

大円の半径 \(r_1\) は,中円の半径 \(r_2\) の 2 倍である。
中円の半径 \(r_2\) は,小円の半径 \(r_3\) の 7/3 倍である。
すなわち,大円の半径 \(r_1\) は 小円の半径 \(r_3\) の 14/3 倍である。

たとえば,小円の直径が 1 のとき,大円の直径は 14/3 = 4.666666666666667 である。

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

function draw(r3, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (r2, R, x3, y3) = (7*r3/3, 14*r3, 5*r3, -8*r3/3)
    r1 = 2r2
    @printf("小円の直径が %g のとき,大円の直径は %g である。\n", 2r3, 2r1)
    @printf("円弧の半径は %g,中心座標は (0, %g), (0, %g) である。\n", R, R - 2r2, 2r2 - R)
    y = R - 2r2
    x = sqrt(R^2 - y^2)
    θ = atand(y, x)
    plot()
    circle(0, R - 2r2, R, beginangle=180+θ, endangle=360-θ, n=500)
    circle(0, -R + 2r2, R, beginangle=θ, endangle=180-θ, n=500)
    circle(0, 0, r1, :blue)
    circle22(0, r2, r2, :magenta)
    circle2(r1 + r2, 0, r2, :magenta)
    circle4(x3, y3, r3, :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, 0, "大円:r1,(0,0)", :blue, :center, :bottom, delta=delta)
        point(0, r2, "中円:r2\n(0,r2)", :magenta, :center, :bottom, delta=delta)
        point(r1 + r2, 0, "中円:r2\n(r1+r2,0)", :magenta, :center, :bottom, delta=delta)
        point(x3, y3, "小円:r3,(x3,y3)", :green, :left, delta=-10delta, deltax=-3delta)
    end
end;

draw(1/2, true)


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




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

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