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


算額(その1204)

(三-復元) 兵庫県伊丹市伊丹桜崎 猪名野神社 嘉永6年(1853)

近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.
キーワード:円3個,直角三角形,斜線
#Julia #SymPy #算額 #和算 #数学


直角三角形の中に大円を容れ,(鈎と股が挟む)直角の頂点から対辺(弦)へ垂線(中鈎)をおろす。できた小さな直角三角形の中に中円と小円を容れる。鈎,股,弦が 21 寸,28 寸,35 寸,大円の直径が 14 寸のとき,中円,小円の直径はいかほどか。

類題は多いが,素直な「問」である。

元の直角三角形と,中鈎で区分けされた2つの直角三角形は相似であり,その中にある円もまた相似である。相似比は \(1 : 28/35 : 21/35\) である。
大円の直径が 14 寸なので,中円,小円の直径は \(14\cdot 28/35 = 11.2 \)寸,\(14\cdot 21/35 = 8.4\) 寸である。

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

using SymPy

@syms 鈎::positive, 股::positive, 弦::positive,
     中鈎::positive, 短弦::positive, 長弦::positive,
     r1::positive, r2::positive, x2::positive,
     r3::positive, y3::positive, x0::positive, y0::positive
eq1 = 鈎 + 股 - 弦 - 2r1
eq2 = 弦 - sqrt(鈎^2 + 股^2)
res1 = solve([eq1, eq2], (弦, r1))
弦 = res1[弦]
r1 = res1[r1]
弦 |> println
弦(鈎 => 21, 股 => 28) |> println
r1 |> println
r1(鈎 => 21, 股 => 28) |> println

   sqrt(股^2 + 鈎^2)
   35

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

eq4 = y0/(股 - x0) - 鈎/股
eq5 = (鈎 - y0)/x0 - 鈎/股
eq6 = 中鈎 - sqrt(x0^2 + y0^2)
eq7 = 弦*中鈎 - 股*鈎
(中鈎, x0, y0) = solve([eq4, eq6, eq7], (中鈎, x0, y0))[1];

中鈎 |> println
中鈎(鈎 => 21, 股 => 28) |> println
x0 |> println
x0(鈎 => 21, 股 => 28) |> println
y0 |> println
y0(鈎 => 21, 股 => 28) |> println

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

   股*鈎^2/(股^2 + 鈎^2)
   252/25

   股^2*鈎/(股^2 + 鈎^2)
   336/25

eq8 = 短弦 - sqrt(鈎^2 - 中鈎^2)
eq9 = 長弦 + 短弦 - 弦
res3 = solve([eq8, eq9], (短弦, 長弦))
短弦 = res3[短弦]
短弦 |> println
短弦(鈎 => 21, 股 => 28) |> println
長弦 = res3[長弦]
長弦 |> println
長弦(鈎 => 21, 股 => 28) |> println

   鈎^2/sqrt(股^2 + 鈎^2)
   63/5

   股^2/sqrt(股^2 + 鈎^2)
   112/5

eq10 = dist2(股, 0, 0, 鈎, r3, y3, r3)
eq11 = dist2(股, 0, 0, 鈎, x2, r2, r2)
eq12 = 中鈎 + 短弦 - 鈎 - 2r3
eq13 = 中鈎 + 長弦 - 股 - 2r2
solve([eq10, eq11, eq12, eq13], (r2, x2, r3, y3))[1];

(r2, x2, r3, y3) = solve([eq10, eq11, eq12, eq13], (r2, x2, r3, y3))[1]
r2 |> println
r2(鈎 => 21, 股 => 28).evalf() |> println
x2 |> println
x2(鈎 => 21, 股 => 28).evalf() |> println
r3 |> println
r3(鈎 => 21, 股 => 28).evalf() |> println
y3 |> println
y3(鈎 => 21, 股 => 28).evalf() |> println

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

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

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

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

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

function draw(鈎, 股, more)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   t = 鈎^2 + 股^2
   弦 = sqrt(t)
   r1 = 股/2 + 鈎/2 - 弦/2
   中鈎 = 股*鈎/弦
   x0 = 股*鈎^2/t
   y0 = 股^2*鈎/t
   短弦 = 鈎^2/弦
   長弦 = 股^2/弦
   r2 = 股*(股 + 鈎 - 弦)/(2弦)
   x2 = -股*sqrt(-2*鈎*t*(2股^3 + 股^2*鈎 - 2股^2*弦 + 股*鈎^2 - 股*鈎*弦 + 鈎^3 + 鈎^2*弦) + (股^3 + 2股^2*鈎 - 股^2*弦 + 股*鈎^2 - 股*鈎*弦 + 2鈎^3)^2)/(2鈎*t) + 股*(股^3 + 2股^2*鈎 - 股^2*弦 + 股*鈎^2 - 股*鈎*弦 + 2鈎^3)/(2鈎*t)
   r3 = 鈎*(股 + 鈎 - 弦)/(2弦)
   y3 = -鈎*sqrt(-2股*t*(股^3 + 股^2*鈎 + 股^2*弦 + 股*鈎^2 - 股*鈎*弦 + 2鈎^3 - 2鈎^2*弦) + (2股^3 + 股^2*鈎 + 2股*鈎^2 - 股*鈎*弦 + 鈎^3 - 鈎^2*弦)^2)/(2股*t) + 鈎*(2股^3 + 股^2*鈎 + 2股*鈎^2 - 股*鈎*弦 + 鈎^3 - 鈎^2*弦)/(2股*t)
   plot([0, 股, 0, 0, x0], [0, 0, 鈎, 0, y0], color=:green, lw=0.5)
   circle(r1, r1, r1, :magenta)
   circle(x2, r2, r2)
   circle(r3, y3, r3, :blue)
   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)", :green, :left, :bottom, delta=delta/2)
       point(r1, r1, " 大円:r1\n (r1,r1)", :magenta, :left, :vcenter)
       point(x2, r2, "中円:r2\n(x2,r2)", :red, :center, delta=-delta/2)
       point(r3, y3, "小円:r3\n(r3,y3)", :blue, :center, delta=-delta/2)
   end
end;

draw(21, 28, true)


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




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

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