裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その1475)

2024年12月16日 | Julia

算額(その1475)

三十一 一関市舞川 観福寺内地蔵堂前額 明治34年(1901)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html
キーワード:円1個,外円,菱形多数
#Julia, #SymPy, #算額, #和算

外円の中に合同な菱形を容れる。外円の直径と菱形の個数が与えられたとき,菱形の対角線の長い方の長さを求める術を述べよ。

外円の半径と中心座標を R, (0, 0)
菱形の対角線の長い方,短い方を 2a, 2b
菱形の個数を n
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms R, n, a, b
b = R/n
eq = a - sqrt(R^2 - (R - b)^2)
res = solve(eq, a)[1]
res |>  println

    sqrt(R^2*(2*n - 1)/n^2)

菱形の長い方の対角線の長さは 2R*sqrt(2n - 1)/n である。
R = 1, n = 7 のとき,1.0301575072754254 である。

function draw(n, R, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    a = sqrt(R^2*(2*n - 1)/n^2)
    b = R/n
    @printf("n = %d;  R = %g;  対角線の長さは %g, %g である。\n", n, R, 2a, 2b)
    plot()
    circle(0, 0, R)
    for i = 1:n
        plot!([a, 0, -a, 0, a], (R - b*(2i - 1)) .+ [0, b, 0, -b, 0], color=:blue, lw=0.5)
    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/2)
        point(a, R - b, "(a,R-b)", :green, :left, :bottom, delta=delta/2)
    end
end;

draw(7, 1, true)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 算額(その1474) | トップ | 算額(その1476) »
最新の画像もっと見る

コメントを投稿

Julia」カテゴリの最新記事