以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/06/27/220235より取得しました。


算額(その1101)

61 岩手県花泉町金沢字大柳 金沢八幡宮 明治29年(1896)

安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:円4個,外円,四分円
#Julia #SymPy #算額 #和算 #数学


全円の中に 四分円を 3 個,等円を 3 個容れる。正三角形の一辺の長さ(四分円の半径)が与えられたとき,等円の直径を求めよ。

全円の半径と中心座標を \(R,\ (0,\ 0);\ R = \sqrt{ (\sqrt{3}a/3 + 2a)^2 + a^2} = 2a\sqrt{3\sqrt{3} + 12}/3\)
四分円の半径と中心座標を \(2a,\ (0,\ 2\sqrt{3}a/3),\ (-a,\ -\sqrt{3}a/3)\)
等円の半径と中心座標を \(r,\ (x,\ y);\ x < 0\)
とおき,以下の連立方程式を解く。

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

using SymPy
@syms R::positive, a::positive,
     x::negative, y::positive, r::positive
R = sqrt( (√Sym(3)a/3 + 2a)^2 + a^2)
eq1 = (x + a)^2 + (y + √Sym(3)a/3)^2 - (2a + r)^2
eq2 = x^2 + y^2 - (R - r)^2
eq3 = dist2(0, 2√Sym(3)a/3, √Sym(3)a, 2√Sym(3)a/3 + a, x, y, r);

function H(u)
   (r, x, y) = u
   return [
       (a + x)^2 - (2*a + r)^2 + (sqrt(3)*a/3 + y)^2,  # eq1
       x^2 + y^2 - (-r + sqrt(a^2 + (sqrt(3)*a/3 + 2*a)^2))^2,  # eq2
       a^2 + a*x - sqrt(3)*a*y - r^2 + x^2/4 - sqrt(3)*x*y/2 + 3*y^2/4,  # eq3
   ]
end;
a = 1/2
iniv = BigFloat[0.38, -0.019, 1]
res = nls(H, ini=iniv)

   ([0.3786461241150318, -0.019277088702774222, 1.0034435202087308], true)

正三角形の一辺の長さが 1 のとき,等円の直径は 2*0.3786461241150318 = 0.7572922482300636 である。

算額の「術」と一致した。

三角面 = 1
天 = √3
地 = √(天 + 4) + 天
誤 A = sqrt( (3*0.732 + 1)*(2地 + 1) + 3) + (地 + 1) 0.732 ではなく 1.732(=√3)
A = sqrt( (3天 + 1)*(2地 + 1) + 3) + (地 + 1)
等円径 = A/地^2*三角面

   0.7572922482300636

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

\(a = 0.5;\  R = 1.38227;\  r = 0.378646;\  x = -0.0192771;\  y = 1.00344\)

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   a = 1/2 #10√3/2
   (r, x, y) = res[1]
   #a = 8.66025;  R = 23.9417;  r = 6.61269;  x = -0.39708;  y = 17.3766
   R = sqrt( (√3a/3 + 2a)^2 + a^2)
   @printf("正三角形の一辺の長さが %g のとき,等円の直径は %.15g である。\n", 2a, 2r)
   @printf("a = %g;  R = %g;  r = %g;  x = %g;  y = %g\n", a, R, r, x, y)
   plot([a, 0, -a, a], [-√3a/3, 2√3a/3, -√3a/3, -√3a/3], color=:magenta, lw=0.5)
   circle(0, 0, R, :blue)
   rotate(x, y, r, :green)
   for i = 0:2 # 90:120:330
       ox = 2√3a/3*cosd(90 + 120i)
       oy = 2√3a/3*sind(90 + 120i)
       ba = -60 + 120i
       ea = -60 + 120i + 90
       circle(ox, oy, 2a, beginangle=ba, endangle=ea)
       x1 = ox + 2a*cosd(ea)
       y1 = oy + 2a*sind(ea)
       segment(ox, oy, x1, y1, :red)
   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(x, y, "(x,y)")
       point(a, -√3a/3, "(a,-√3a/3) ", :magenta, :right, :bottom, delta=delta/2)
       point(0, 2√3a/3, " 2√3a/3", :magenta, :left, :vcenter)
       point(0, R, " R", :blue, :center, :bottom, delta=delta/2)
       point(√3a, 2√3a/3 + a)
   end
end;


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




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

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