埼玉県草加市金明町 旭神社 寛政11年(1799)
山口正義:やまぶき3,第45号
https://yamabukiwasan.sakura.ne.jp/ymbk45.pdf
キーワード:円1個,直角三角形,斜線
#Julia #SymPy #算額 #和算 #数学
鈎股弦(直角三角形)において,弦の二乗と中鈎の和が 27 寸 4 分,股の二乗と内接円の直径の和が 18 寸のとき,弦はいくつか。

直角三角形の直角を挟む二辺の短い方を「鈎」,長い方を「股」,直角の対辺を「弦」と呼ぶ。
中鈎とは直角の頂点から弦へおろした垂線である。
直角三角形に内接する円の直径と鈎・股・弦には eq3 で示す関係がある。鈎・股・弦の間の関係式 eq4 はピタゴラスの定理。未知数が 5 個なので,条件式 eq5 を付け加える。
図を描くために,中鈎と弦の交点(中鈎の脚)の座標を (x, y) として以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms r::positive, 中鈎::positive, x::positive, y::positive,
鈎::positive, 股::positive, 弦::positive
eq1 = 弦^2 + 中鈎 - 274//10
eq2 = 股^2 + 2r - 18
eq3 = 鈎 + 股 - 弦 - 2r
eq4 = 鈎^2 + 股^2 - 弦^2
eq5 = 弦*中鈎 - 鈎*股
res = solve([eq1, eq2, eq3, eq4, eq5], (鈎, 股, 弦, 中鈎, r))[1]
(3, 4, 5, 12/5, 1)
(鈎, 股, 弦, 中鈎, r) = res[1]
eq6 = x^2 + y^2 - 中鈎^2
eq7 = (鈎 - y)/x - 鈎/股
res2 = solve([eq6, eq7], (x, y))[1]
(36/25, 48/25)
甲円の直径は 18 寸である。
その他のパラメータは以下のとおり。
弦 = 5, 鈎 = 3; 股 = 4; 中鈎 = 2.4; \( r = 1; x = 1.44; y = 1.92\)
なお,引用元にも書いてあるが,和算的には以下のような12次方程式を解くことになるそうだが,これでは「弦」しか求まらない。
eq = x^12 - 109.6*x^10 -6x^9 + 4472.56*x^8 + 512.4x^7 - 79881.696*x^6 - 14547.04*x^5 + 504392.2576*x^4 + 137662.816*x^3 + 475181.92*x^2 - 12182.4*x+ 104976
solve(eq)
2-element Vector{Sym{PyCall.PyObject}}:
5.00000000000000
5.46220825640114
描画関数プログラムのソースを見る
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(鈎, 股, 弦, 中鈎, r) = (3, 4, 5, 12/5, 1)
(x, y) = (36/25, 48/25)
@printf("弦 = %g, 鈎 = %g; 股 = %g; 中鈎 = %g; r = %g; x = %g; y = %g\n", 弦, 鈎, 股, 中鈎, r, x, y)
plot([0, 股, 0, 0 ], [0, 0, 鈎, 0], color=:black, lw=0.5)
segment(0, 0, x, y, :green)
circle(r, r, r)
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)
point(0, 鈎, " 鈎", :black, :left, :bottom)
point(股, 0, " 股", :black, :left, :bottom)
point(x, y, "(x,y)", :black, :left, :bottom)
point(0.7, 1.5, "中鈎", :green, mark=false)
point(2.5, 1.3, "弦", :black, mark=false)
end
end;
以下のアイコンをクリックして応援してください