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


算額(その0766)

山形県七日町 長源寺観音堂 大正4年(1915)

和算の館
http://www.wasan.jp/yamagata/chogenji.html
キーワード:円7個,正方形
#Julia #SymPy #算額 #和算 #数学


3 個の甲円が交わり,上の甲円には上の甲円に内接し下の2個の甲円に外接する正方形を容れ,下の甲円には上の甲円に外接し,下の甲円に内接する乙円と,乙円と上の甲円に外接し下の甲円に内接する丙円を容れる。それぞれの大きさを求めよ。

甲円の半径と中心座標を \(r_1,\ (0,\ r_1),\ (r_1,\ 0)\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ y_2)\)
丙円の半径と中心座標を \(r_3,\ (x_3,\ y_3)\)
正方形の一辺の長さを \(a\)
として,以下の連立方程式を \(r_1\) を未知数のままとして解く。

一度に解いてもよいが,乙円・丙円を容れるのと正方形を容れるのは独立なので,まずは乙円と丙円を甲円に容れる。

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

using SymPy
@syms r1::positive, r2::positive, x2::positive, y2::negative,
     r3::positive, x3::positive, y3::positive
y2 = r1 - x2
eq1 = (x2 - r1)^2 + y2^2 - (r1 - r2)^2
eq2 = x2^2 + (r1 - y2)^2 - (r1 + r2)^2
eq3 = (x3 - r1)^2 + y3^2 - (r1 - r3)^2
eq4 = (x2 - x3)^2 + (y3 - y2)^2 - (r2 + r3)^2
eq5 = x3^2 + (r1 - y3)^2 - (r1 + r3)^2
solve([eq1, eq2, eq3, eq4, eq5], (r2, x2, r3, x3, y3))[1]

    (sqrt(2)*r1/2, r1*(1 + sqrt(2))/2, sqrt(2)*r1/6, r1*(1 + sqrt(2))/2, r1*(sqrt(2)/6 + 1/2))

右下の甲円の円周上に \( (s_x,\ s_y)\) を取り,\(s_x = a/2\) かつ \( (s_x, s_y + a )\) が上の甲円の円周上にあるような \(s_x,\ s_y\) を求める。

@syms a::positive, sx::positive, sy::positive
a = 2sx
eq6 = (sx - r1)^2 + sy^2 - r1^2
eq7 = sx^2 + (sy + a - r1)^2 - r1^2
solve([eq6, eq7], (sx, sy))[1]

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

乙円,丙円の直径はそれぞれ甲円の直径の \(\sqrt{2}/2,\ \sqrt{2}/6\) 倍であり,正方形の一辺の長さは甲円の半径に等しい。

その他のパラメータは以下のとおり。

\(甲円の直径 = 1;\ 乙円の直径 = 0.707107;\ 丙円の直径 = 0.235702\)
\(正方形の一辺の長さ = 0.5\)

\(r_1 = 0.5;\ a = 0.5;\ r_2 = 0.353553;\ x_2 = 0.603553;\ y_2 = -0.103553\)
\(r_3 = 0.117851;\ x_3 = 0.603553;\ y_3 = 0.367851\)

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r1 = 1//2
   (r2, x2, r3, x3, y3) = (sqrt(2)/4, 1/4 + sqrt(2)/4, sqrt(2)/12, 1/4 + sqrt(2)/4, sqrt(2)/12 + 1/4)
   y2 = r1 - x2
   (sx, sy) = (1/4, sqrt(3)/4)
   a = 2sx
   @printf("甲円の直径 = %g;  乙円の直径 = %g;  丙円の直径 = %g;  正方形の一辺の長さ = %g\n", 2r1, 2r2, 2r3, a)
   @printf("r1 = %g;  a = %g;  r2 = %g;  x2 = %g;  y2 = %g;  r3 = %g;  x3 = %g;  y3 = %g\n", r1, a, r2, x2, y2, r3, x3, y3)
   plot([sx, sx, -sx, -sx, sx], [sy, sy + a, sy + a, sy, sy], color=:green, lw=0.5)
   circle(0, r1, r1, :blue)
   circle2(r1, 0, r1, :blue)
   circle2(x2, y2, r2)
   circle2(x3, y3, r3, :orange)
   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, r1, "甲円:r1,(0,r1)", :blue, :center, :bottom, delta=delta)
       point(r1, 0, "甲円:r1,(r1,0)", :blue, :center, :bottom, delta=delta)
       point(x2, y2, "乙円:r2,(x2,y2)", :red, :center, :bottom, delta=delta)
       point(x3, y3, " 丙円:r3,(x3,y3)", :black, :center, delta=-delta/2)
       point(sx, sy, "(sx,sy)", :green, :left, delta=-delta/2)
       point(sx, sy + a, " (sx,sy+a)", :green, :left, :vcenter)
   end
end;


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




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

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