以下の内容はhttps://sangaku0418.hatenablog.com/entry/2024/10/02/234508より取得しました。


算額(その1332)

37 岩手県一関市真柴字境田 牧沢八幡神社 明治8年(1875)

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


直角三角形の中に甲円を容れ,中鈎(直角の頂点から斜辺への垂線)で区切られた領域に乙円と丙円を容れる。鈎,股が 7 寸,24 寸のとき,3 円の直径の和はいかほどか。

上の図は,「問」とは異なり,「鈎,股が 3 寸,4 寸」のときのものである。問の場合の図は下の方に示す。

なお,それぞれの円の直径だけを求める場合には,算額(その1204)を参照のこと。

直角三角形の 3 辺を,「鈎」,「股」,「弦」
中鈎と斜辺の交点座標を \( (x_0,\ y_0)\)
甲円の半径と中心座標を \(r_1,\ (r_1,\ r_1)\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ r_2)\)
丙円の半径と中心座標を \(r_3,\ (r_3,\ y_3)\)
とおき,以下の連立方程式を解く。

まず,\(r_1,\ x_0,\ y_0\) を求める。
\(弦 = \sqrt{鈎^2 + 股^2}\) である。

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

using SymPy
@syms 鈎::positive, 股::positive, 弦::positive,
     x0::positive, y0::positive,
     r1::positive,
     r2::positive, x2::positive,
     r3::positive, y3::positive;
弦 = sqrt(鈎^2 + 股^2)
eq1 = (鈎 - y0)/x0 - 鈎/股
# eq2 = y0/(股 - x0) - 鈎/股
eq3 = sqrt(x0^2 + y0^2)/鈎 - 股/弦
eq4 = 鈎 + 股 - 弦 - 2r1
res = solve([eq1, eq3, eq4], (r1, x0, y0))[1]

   (股/2 + 鈎/2 - sqrt(股^2 + 鈎^2)/2, 股*鈎^2/(股^2 + 鈎^2), 股^2*鈎/(股^2 + 鈎^2))

甲円の半径は \(股/2 + 鈎/2 - 弦/2\) である。

(x0, y0) = (股*鈎^2/(股^2 + 鈎^2), 股^2*鈎/(股^2 + 鈎^2))
eq5 = dist2(0, 鈎, 股, 0, x2, r2, r2)
eq6 = dist2(0, 鈎, 股, 0, r3, y3, r3)
eq7 = dist2(0, 0, x0,  y0, x2, r2, r2)
eq8 = dist2(0, 0, x0,  y0, r3, y3, r3)
res2 = solve([eq5, eq6, eq7, eq8], (r2, x2, r3, y3))[7];  # 7 of 16;

甲円,乙円の半径 \(r_2,\ r_3\) は以下のように簡略化できる。

res2[1] |> simplify |> println
res2[3] |> simplify |> println

   股*(股 + 鈎 - sqrt(股^2 + 鈎^2))/(2*sqrt(股^2 + 鈎^2))
   鈎*(股 + 鈎 - sqrt(股^2 + 鈎^2))/(2*sqrt(股^2 + 鈎^2))

甲円,乙円,丙円の直径の和(径和とする)は,以下のようになる。

径和 = 2(res[1] + res2[1] + res2[3]) |> simplify
径和 |> println

   2*股*鈎/sqrt(股^2 + 鈎^2)

鈎,股が 7 寸,24 寸のとき,径和は 336/25 = 13.44 寸である。

径和(鈎 => 7, 股 => 24) |> println
径和(鈎 => 7, 股 => 24).evalf() |> println

   336/25
   13.4400000000000

ちなみに,甲円,乙円,丙円の直径は 6 寸,144/25 寸, 42/25 寸である。

res[1](鈎 => 7, 股 => 24) * 2 |> println
res2[1](鈎 => 7, 股 => 24) * 2 |> println
res2[3](鈎 => 7, 股 => 24) * 2 |> println

   6
   144/25
   42/25

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

function draw(鈎, 股, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   弦 = sqrt(股^2 + 鈎^2)
   (r1, x0, y0) = (股/2 + 鈎/2 - 弦/2, 股*鈎^2/(股^2 + 鈎^2), 股^2*鈎/(股^2 + 鈎^2))
   r2 = 股*(股 + 鈎 - 弦)/(2弦)
   x2 = (-股^2 + 股*鈎 + 股*弦)/(2弦)
   r3 = 鈎*(股 + 鈎 - 弦)/(2弦)
   y3 = (股*鈎 - 鈎^2 + 鈎*弦)/(2弦)
   println("径和 = ", 2(r1+r2+r3))
   plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:green, lw=0.5)
   segment(0, 0, x0, y0, :blue)
   circle(r1, r1, r1)
   circle(x2, r2, r2, :magenta)
   circle(r3, 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, 鈎, " 鈎", :green, :left, :bottom, delta=delta/2)
       point(股, 0, " 股", :green, :left, :bottom, delta=delta/2)
       point(x0, y0, " (x0,y0)", :blue, :left, :bottom)
       point(r1, r1, "甲円:r1,(r1,r1)", :red, :left, :bottom, delta=delta)
       point(x2, r2, "乙円:r2,(x2,r2)", :magenta, :right, delta=-delta/2, deltax=8delta)
       point(r3, y3, "丙円:r3\n(r3,y3)", :orange, :center, delta=-delta/2)
   end  
end;

draw(7, 24, false)


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




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

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