算額(その645)
長野県小諸市八幡町 八幡神社 寛政11年(1799)
中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
鈎股弦(直角三角形)内に内接円があり,中鈎(直角の頂点から斜辺(弦)への垂線)を引く。短弦と円の直径の積が 3.6 平方寸,中鈎と円の直径の積が 4.8 平方寸のとき,円の直径を求めよ。
直角三角形の 3 辺を鈎,股,弦,弦 = 短弦 + 長弦,中鉤と弦の交点座標を (x, y),円の直径を円径として以下の連立方程式を解く。
include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms 鈎::positive, 股::positive, 弦::positive,
中鈎::positive, 短弦::positive, 長弦::positive,
円径::positive, x::positive, y ::positive
eq1 = 短弦^2 + 中鈎^2 - 鈎^2
eq2 = 短弦 * 円径 - 3.6
eq3 = 中鈎 * 円径 - 4.8
eq4 = 鈎 + 股 - 弦 - 円径
eq5 = 鈎^2 + 股^2 - 弦^2
eq6 = 長弦^2 + 中鈎^2 - 股^2
eq7 = 長弦 + 短弦 - 弦
eq8 = (x^2 + y^2) + (x^2 + (鈎 - y)^2) - 鈎^2
eq9 = (x^2 + y^2) + ((股 - x)^2 + y^2) - 股^2
res = solve([eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9], (円径, 鈎, 股, 弦, 中鈎, 短弦, 長弦, x, y))
1-element Vector{NTuple{9, Sym}}:
(2.00000000000000, 3.00000000000000, 4.00000000000000, 5.00000000000000, 2.40000000000000, 1.80000000000000, 3.20000000000000, 1.44000000000000, 1.92000000000000)
円の直径は 2 寸である。
その他のパラメータは以下の通りである。
鈎 = 3; 股 = 4; 弦 = 5; 中鈎 = 2.4; 短弦 = 1.8; 長弦 = 3.2; x = 1.44; y = 1.92
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(円径, 鈎, 股, 弦, 中鈎, 短弦, 長弦, x, y) = res[1]
@printf("円径 = %g; 鈎 = %g; 股 = %g; 弦 = %g; 中鈎 = %g; 短弦 = %g; 長弦 = %g; x = %g; y = %g\n",
円径, 鈎, 股, 弦, 中鈎, 短弦, 長弦, x, y)
r = 円径/2
plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:black, lw=0.5)
circle(r, r, r, :blue)
segment(0, 0, x, y, :red)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
vline!([0], color=:black, lw=0.5)
hline!([0], color=:black, lw=0.5)
point(x, y, " (x,y)", :red, :left, :vcenter)
point(0, 鈎, " 鈎", :black, :left, :vcenter)
point(股, 0, "股", :black, :left, :bottom, delta=delta/2)
point(r, r, " (r,r)", :blue, :left, :vcenter)
point(0.6, 2.7, "短弦", mark=false)
point(2.8, 1.05, "長弦", mark=false)
point(0.75, 1.5, "中鈎", mark=false)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます