以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/07/25/173244より取得しました。


算額(その1166)

六四 埼玉県加須市不動岡 総願寺 慶應2年(1866)

埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:楕円,長方形,対角線
#Julia #SymPy #算額 #和算 #数学


長方形の中に対角線を引き,分割された区画に,合同な楕円を 4 個容れる。楕円の短径が 1 寸のとき,長径はいかほどか。

注:対角線を引いてできる三角形のうち,長方形の短辺を一辺とする三角形は正三角形である。

二等辺三角形に内接する楕円の長径,短径については算法助術の公式97による(「和算の心(005)」参照)。

長方形の中心を原点とし,長方形の長辺,短辺を \(2a, 2b\) とする。
正三角形の底辺と高さは,\(2b, \sqrt{3}b\)
二等辺正三角形の底辺と高さは,\(2a, b\)
以上に基づき,
(1) 2 つの楕円の長径を求め,それが等しいこと
(2) a, b の関係式
の連立方程式を解く。

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

using SymPy
@syms a::positive, b::positive, side_a::positive, height::positive, q::positive
p = side_a*sqrt( (height - 2*q)/height)/2
p1 = p(side_a => 2b, height => √Sym(3)b);
p1 |> println

   3^(3/4)*sqrt(b)*sqrt(sqrt(3)*b - 2*q)/3

p2 = p(side_a => 2a, height => b)
p2 |> println

   a*sqrt(b - 2*q)/sqrt(b)

eq1 = p1 - p2
eq2 = 4b^2 - (a^2 + b^2);
res = solve([eq1, eq2], (a, b))[1]

   (q*(-1 + 3*sqrt(3)), q*(9 - sqrt(3))/3)

@syms q
side_a = 2q*(9 - √Sym(3))/3
height = √Sym(3)side_a/2
p = side_a*sqrt( (height - 2*q)/height)/2 |> simplify
p |> println

   3^(3/4)*q*sqrt(-12 + 10*sqrt(3))/3

手計算で簡約化すると,以下のように若干簡単になる。

p = q*sqrt(10 - 4*sqrt(Sym(3)))
p |> println

   q*sqrt(10 - 4*sqrt(3))

長半径 \(p\) は短半径 \(q\) の \(\sqrt{10 - 4\sqrt{3}}\) 倍である。
短径が 1 寸のとき,長径は \(\sqrt{10 - 4\sqrt{3}} = 1.7526542071168778\) 寸である。

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

function draw(q, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (a, b) = (q*(-1 + 3√3), q*(9 - √3)/3)
   p = q*sqrt(10 - 4√3)
   @printf("a = %g;  b = %g;  q = %g;  p = %g\n", a, b, q, p)
   plot([a, a, -a, -a, a], [-b, b, b, -b, -b], color=:blue, lw=0.5)
   segment(a, b, -a, -b, :magenta)
   segment(-a, b, a, -b, :magenta)
   ellipse(a - q, 0, q, p, color=:red)
   ellipse(q - a, 0, q, p, color=:red)
   ellipse(0, q - b, p, q, color=:green)
   ellipse(0, b - q, p, q, color=:green)
   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(a - q, 0, "(a-q,0)", :red, :center, delta=-delta/2)
       point(0, b - q, "(0,b-q,0)", :green, :center, delta=-delta/2)
       point(a, 0, " a", :red, :left, :bottom, delta=delta/2)
       point(0, b, " b", :blue, :left, :bottom, delta=delta/2)
       point(-0.3a, -0.5b, @sprintf(" a=%g, b=%g\np=%g, q=%g", a, b, p, q), :black, mark=false)
   end
end;


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




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

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