以下の内容はhttps://sangaku0418.hatenablog.com/entry/2025/01/13/215229より取得しました。


算額(その1537)

京都府京都市東山区清水 清水寺 明治25年(1892)

近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:半円,扇,斜線
#Julia #SymPy #算額 #和算 #数学


1/3 円でできる扇に,半円 1 個と斜線 2 本を容れる。扇長(要から扇の先端までの長さ)が 20 寸,骨径(見えている骨の長さ)が 8寸のとき,斜線の長さ,半円の直径はいかほどか。

扇長を \(R\), 骨長を \(r_2\)
半円の半径と中心座標を \(r_1, (0, R - r_1)\)
とおき,以下の方程式を解いて \(r_1\) を求める。

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

using SymPy
@syms R, r1, r2
eq1 = r1/(√Sym(3)*R/2) - (R - r1 - r2)/(R/2 - r2);

ans_r1 = solve(eq1, r1)[1]
ans_r1 |> println

    3*R*(R - r2)/(sqrt(3)*R + 3*R - 2*sqrt(3)*r2)

半円の半径は \(\displaystyle \frac{3R(R - r_2)}{\sqrt{3}R + 3R - 2\sqrt{3}r_2}\) である。

2*ans_r1(R => 20, r2 => 8).evalf() |> println

    21.5155932850234

扇長が 20 寸,骨長が 8 寸のとき,半円の直径は 21.5155932850234 寸である。

斜線の端点は \( (0,\ r_2), (\sqrt{3}R/2,\ R/2)\) なので,直接計算できる。

sqrt( (√Sym(3)R/2)^2 + (R/2 - r2)^2)(R => 20, r2 => 8).evalf() |> println

    17.4355957741627

斜線の長さは 17.4355957741627 寸である。

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

function draw(R, r2, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    r1 = 3R*(R - r2)/(√3R + 3R - 2√3r2)
    plot([-√3R/2, 0, √3R/2], [R/2, r2, R/2], color=:green, lw=0.5)
    circle(0, 0, R, beginangle=30, endangle=150)
    plot!([-√3R/2, 0, √3R/2], [R/2, 0, R/2], color=:red, lw=0.5)
    circle(0, 0, r2, :magenta, beginangle=30, endangle=150)
    circle(0, R - r1, r1, :blue, beginangle=0, endangle=180)
    segment(-r1, R - r1, r1, R - r1, :blue)
    for θ = 30:15:150
        segment(0, 0, r2*cosd(θ), r2*sind(θ), :black, lw=2)
    end
    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)
        point(0, R - r1, "R-r1", :blue, :center, :bottom, delta=delta)
        point(0, r2, "r2", :magenta, :center, :bottom, delta=delta/2)
        circle(0, 0, r2/3, beginangle=0, endangle=30, lw=2)
        point(√3r2/6, 0, "30°", :red, :left, :bottom, delta=delta, deltax=4delta, mark=false)
    end
end;

draw(20, 8, true)


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




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

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