裏 RjpWiki

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

算額(その1465)

2024年12月12日 | Julia

算額(その1465)

百二十一 群馬県藤岡市藤岡 龍源寺 明治6年(1873)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.
キーワード:球4個,半球,3次元
#Julia, #SymPy, #算額, #和算

「文面は判読できない」とあるが,「半球の中に,半球に内接し,互いに外接し合う 4 個の等球を容れる。半球の直径が与えられたとき,等球の直径はいかほどか。」でもあろう。

左の図は上から x-y 平面を見た様子,右の図は x 軸の正の位置から y-z 平面を見た様子。

半球の半径と中心座標を r1, (0, 0, 0)
等球の半径と中心座標を r2, (x2, 0, r2), (0, x2, r2)
とおき,以下の連立方程式を解く。

include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cfusing SymPy

using SymPy
@syms r1::positive, r2::positive, x2::positive
eq1 = x2^2 + r2^2 - (r1 - r2)^2
eq2 = 2x2^2 - 4r2^2
res = solve([eq1, eq2], (r2, x2))[1];  # 1 of 2

# r2
res[1] |> simplify |> println

    r1*(-1 + sqrt(3))/2

# x2
res[2] |> sympy.sqrtdenest |> println

    r1*(-sqrt(2)/2 + sqrt(6)/2)

等球の半径は半球の半径の (√3 - 1)/2 倍である。
半球の直径が 10 寸のとき,等球の直径は 3.660254037844386 寸である。

function draw(r1, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    r2= r1*(√3 - 1)/2
    x2 = r1*(√6 - √2)/2
    @printf("r1 = %.15g;  r2 = %.15g;  x2 = %.15g\n", r1, r2, x2)
    p1 = plot()
    circle(0, 0, r1, :blue)
    circle42(0, x2, r2)
    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)
    end
    p2 = plot()
    circle(0, 0, r1, :blue, beginangle=0, endangle=180)
    circle2(x2, r2, r2)
    circle(0, r2, r2)
    plot(p1, p2)
end;

draw(10/2, false)


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

コメントを投稿

Julia」カテゴリの最新記事