以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/03/18/102338より取得しました。


算額(その0788)

愛媛県松山市桜谷町 伊佐爾波神社 享和3年(1803)

続神壁算法 付録〇一二 豫州湯月八幡宮 享和3年(1803)

丸山良玄門人 豫州松山 大西佐兵衛義全
藤田嘉言(1807):続神壁算法
http://www.wasan.jp/jinpeki/jinpeki.html

平田浩一:愛媛の和算と算額,日本数学会秋季総合分科会市民講演会,2013/9/23.
https://www.mathsoc.jp/publication/tushin/1804/1804hirata.pdf

キーワード:3次元,球
#Julia #SymPy #算額 #和算 #数学


弧環減球に中球 2 個と小球 1 個を除いた体積を求めよ。

弧環減球は円を両側から 2 円でくり抜き,それを回転させて得られる回転体である。図の太い黒で示した図形を \(y\) 軸を中心として回転する。上の図は,それを三次元表示したものである。

曲線が切り替わる点 \( (x_0,\ y_0)\) を求める。

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

using SymPy
@syms R, r1, r2, r3, x0, y0
(r2, r3) = (3, 2) .// 2
R = 2r2 + r3
eq1 = (r1 + r3)^2 + (r3 + r2)^2 - (r1 + r2)^2
eq2 = (x0 - r1 - r3)^2 + y0^2 - r1^2
eq3 = x0^2 + y0^2 - R^2
res = solve( (eq1, eq2, eq3), (r1, x0, y0))

   2-element Vector{Tuple{Sym{PyCall.PyObject}, Sym{PyCall.PyObject}, Sym{PyCall.PyObject}}}:
    (5, 9/4, -5*sqrt(7)/4)
    (5, 9/4, 5*sqrt(7)/4)

\([0,\ 5\sqrt{7}/4]\) で回転体の体積 res1 を求める。

@syms x
res1= integrate(PI*(-sqrt(25 - x^2) + 6)^2, (x, 0, res[2][3]))
res1 |> println
res1.evalf() |> println

   pi*(-150*asin(sqrt(7)/4) + 8365*sqrt(7)/192)
   21.5487629153420

\([5\sqrt{7}/4,\ 4]\)で回転体の体積 res2 を求める。

res2 = integrate(PI*sqrt(16 - x^2)^2, (x, res[2][3], 4))
res2 |> println
res2.evalf() |> println

   -2965*sqrt(7)*pi/192 + 128*pi/3
   5.68345793167528

3 個の球の体積の和 res3 を求める。

res3 = 4PI/3*(2*(3//2)^3 + (2//2)^3)
res3 |> println
res3.evalf() |> println

   31*pi/3
   32.4631240870945

求める立体の体積 res を求める。

res = 2res1 + 2res2 - res3 
res |> println
res |> simplify |> println
res.evalf() |> println

   -2965*sqrt(7)*pi/96 + 2*pi*(-150*asin(sqrt(7)/4) + 8365*sqrt(7)/192) + 75*pi
   75*pi*(-16*asin(sqrt(7)/4) + 4 + 3*sqrt(7))/4
   22.0013176069401

求める体積は,\(75\pi(4 + 3\sqrt{7} - 16\text{asin}(\sqrt{7}/4))/4 = 22.001317606940137\) である。

75π*(4 + 3√7 - 16asin(√7/4))/4

   22.001317606940137

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

function draw(more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r2, r3) = (3, 2) .// 2
   r1 = 5
   R = 2r2 + r3
   println("R = ", R)
   (r1, x0, y0) = (5, 9/4, 5*sqrt(7)/4)
   θ1 = atand(y0, x0)
   θ2 = atand(y0, r1 + r3 - x0)
   plot()
   circle(0, 0, R, :palevioletred1)
   circle(0, 0, R, :black, beginangle=θ1, endangle=90, lw=2)
   circle(0, 0, R, :black, beginangle=270, endangle=360-θ1, lw=2)
   circle22(0, r3 + r2, r2, :magenta)
   circle(0, 0, r3, :orange)
   circle(r1 + r3, 0, r1, :blue)
   circle(r1 + r3, 0, r1, :black, beginangle=180-θ2, endangle=180+θ2, lw=2)
   segment(0, r3 + 2r2, 0, -r3 - 2r2, :black, lw=2)
   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(r1 + r3, 0, "r1+r3")
       point(0, r3, " r3", :black, :left, :bottom, delta=delta)
       point(0, r3+ r2, " r3+r2", :magenta, :left, :vcenter)
       point(x0, y0, " (x0,y0)", :black, :left, :vcenter, mark=false)
   end
end;


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




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

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