以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/05/12/162421より取得しました。


算額(その0947)

一〇六 神川村新里 光明寺 大正3年(1914)

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


直角三角形の中に斜線を引き,2 個の等円を容れる。鈎(高さ),股(底辺)がそれぞれ 8 寸,15 寸のとき,等円の直径はいかほどか。

鈎,股の長さを \(b,\ a\)
斜線と股の交点座標を \( (c,\ 0)\)
等円の半径と中心座標を \(r,\ (r,\ r),\ (x,\ r)\)
とおき,以下の連立方程式を解く。
SymPy では一括して解けないので,逐次解いていく。

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

@syms a::positive, b::positive, c::positive,
     r::positive, x::positive
@syms a, b, c, r, x
eq2 = dist2(0, b, c, 0, x, r, r)
eq3 = dist2(0, b, a, 0, x, r, r)
eq4 = (b + c - 2r)^2 - (b^2 + c^2);
# res = solve([eq2, eq3, eq4], (c, r, x))

ans_c = solve(eq4, c)[1]
ans_c |> println

   2*r*(-b + r)/(-b + 2*r)

eq2 = eq2(c => ans_c) |> simplify |> numerator
eq2 = eq2/b |> simplify |> numerator;
ans_x = solve(eq2, x)[2] |> simplify
ans_x |> println

   r*(3*b^2 - 6*b*r + 4*r^2)/(b*(b - 2*r))

eq3 = eq3(x => ans_x) |> simplify |> numerator;
ans_r = solve(eq3, r)[3]
ans_r |> println

   b/2 - sqrt(-a*b/4 + b*sqrt(a^2 + b^2)/4)

与えられた \(a,\ b\) から,\(r,\ x,\ c\) を求める関係式

(a, b) = (15, 8)
r = (b - sqrt(b*(sqrt(a^2 + b^2) - a)))/2
x = r*(3b^2 - 6b*r + 4r^2)/(b*(b - 2r))
c = 2r*(r - b)/(2r - b)
(r, x, c)

   (2.0, 7.0, 6.0)

鈎,股がそれぞれ 8 寸,15 寸のとき,等円の半径は 2 寸(直径は 4 寸)である。

\(鈎 = 8;\ 股 = 15;\ 等円の直径 = 4;\ r = 2;\ x = 7;\ c = 6\)

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (a, b) = (15, 8)
   r = (b - sqrt(b*(sqrt(a^2 + b^2) - a)))/2
   x = r*(3b^2 - 6b*r + 4r^2)/(b*(b - 2r))
   c = 2r*(r - b)/(2r - b)
   @printf("鈎 = %g;  股 = %g;  等円の直径 = %g;  r = %g;  x = %g;  c = %g\n", b, a, 2r, r, x, c)
   plot([0, a, 0, 0], [0, 0, b, 0], color=:black, lw=0.5)
   circle(r, r, r)
   circle(x, r, r)
   segment(0, b, c, 0, :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(r, r, "等円:r,(r,r)", :red, :center, delta=-delta/2)
       point(x, r, "等円:r,(x,r)", :red, :center, delta=-delta/2)
       point(0, b, " b", :black, :left, :bottom, delta=delta/2)
       point(a, 0, " a", :black, :left, :bottom, delta=delta/2)
       point(c, 0, "c  ", :black, :right, :bottom, delta=delta/2)
   end
end;


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




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

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