以下の内容はhttps://sangaku0418.hatenablog.com/entry/2025/03/06/235806より取得しました。


算額(その1404)

46 岩手県一関市舞川字龍ヶ沢 観福寺観音堂 明治34年(1901)

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


半円の中に 2 個の等円を容れ,半円の周上と弦(直径)の接点を結ぶ直線を 2 本引き,できる三角形の中に同じ大きさの等円 1 個を容れる。
等円の直径が与えられたとき,半円の直径を求める術を述べよ。

円弧の半径と中心座標を \(R, (0, 0)\)
等円の半径と中心座標を \(r, (x, r), (0 - r)\)
円弧と等円の接点座標を \( (x_0, y_0)\)
とおき,以下の連立方程式を解く。

斜線は,\( (x_0, y_0), (x, 0), (0, y_{01})\) を通る。

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

@syms R::positive, r::positive, x::positive, x0::positive, y0::positive
eq1 = dist2(x, 0, x0, y0, 0, -r, r)
eq2 = x^2 + r^2 - (R - r)^2
eq3 = (x0 - x)^2 + (y0 - r)^2 - r^2
eq4 = x0^2 + y0^2 - R^2
res = solve([eq1, eq2, eq3, eq4], (R, x, x0, y0))[1]

    (3*r, sqrt(3)*r, 3*sqrt(3)*r/2, 3*r/2)

円弧の半径 \(R\) は,等円の半径 \(r\) の 3 倍である。
等円の直径が 1 寸のとき,円弧直径は 3 寸である。
x = 0.866025,x0 = 1.29904, y0 = 0.75

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

function draw(r, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (R, x, x0, y0) = (3*r, sqrt(3)*r, 3*sqrt(3)*r/2, 3*r/2)
    @printf("等円の直径が %g のとき,円弧の直径は %g である。ただし,x = %g,x0 = %g, y0 = %g である。\n", 2r, 2R, x, x0, y0)
    plot()
    circle(0, 0, R, beginangle=0, endangle=180)
    circle2(x, r, r, :blue)
    circle(0, -r, r, :blue)
    (x01, y01) = float.(intersection(x0, y0, x, 0, -x0, y0, -x, 0))
    println( (x01, y01))
    segment(x0, y0, 0, y01)
    segment(-x0, y0, 0, y01)
    segment(-R, 0, R, 0, :red)
    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(x0, y0, "(x0,y0)", :blue, :right, :vcenter, deltax=-delta)
        point(x, 0, "x", :blue, :center, delta=-delta)
        point(R, 0, "R", :red, :center, delta=-delta)
        point(x, r, "等円:r,(x,r)", :blue, :center, delta=-delta, deltax=-2delta)
        point(0, -r, "等円:r,(0,-r)", :blue, :center, delta=-delta, deltax=-2delta)
        point(0, y01, "y01", :black, :left, :vcenter, deltax=delta)
    end
end;

draw(1/2, true)


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




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

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