算額(その1381)
一七 大里郡岡部村岡 稲荷社 文化13年(1816)
埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.
キーワード:直角三角形,菱形
#Julia, #SymPy, #算額, #和算
直角三角形の中に,甲,乙,丙の菱形を容れる。甲,乙の菱形の一辺の長さ(菱面)が 4 寸,2 寸のとき,丙菱面はいかほどか。
菱形の下にできる直角三角形の底辺と高さ(記号は図を参照)について,関係式を記述する。
甲菱面 = 鈎 - y1; 乙菱面 = 甲菱面 - y2; 丙菱面 = 乙菱面 - y3 である。
include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms 鈎::positive, 股::positive, x1::positive, y1::positive,
x2::positive, y2::positive, x3::positive, y3::positive,
K1::positive, K2::positive
eq1 = y1/x1 - 鈎/股
eq2 = y2/(x2 - x1) - 鈎/股
eq3 = y3/(x3 - x2) - 鈎/股
eq4 = 鈎 - y1 - sqrt(x1^2 + y1^2)
eq5 = 鈎 - y1 - y2 - sqrt((x2 - x1)^2 + y2^2)
eq6 = 鈎 - y1 - y2 - y3 - sqrt((x3 - x2)^2 + y3^2)
eq7 = 鈎 - y1 - K1
eq8 = 鈎 - y1 - y2 - K2;
res = solve([eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8], (鈎, 股, x1, y1, x2, y2, x3, y3))[1]
(K1^2/K2, K1^(5/2)*sqrt(-K1 + 2*K2)/(K2*(K1 - K2)), K1^(3/2)*sqrt(-K1 + 2*K2)/K2, K1*(K1 - K2)/K2, sqrt(K1)*sqrt(-K1 + 2*K2)*(K1^2 - K2^2)/(K2*(K1 - K2)), K1 - K2, sqrt(K1)*sqrt(-K1 + 2*K2)*(K1^2*K2 + K1^2*Abs(K1 - K2) - K2^3)/(K2*(K1*K2 + K1*Abs(K1 - K2) - K2^2 - K2*Abs(K1 - K2))), K2*Abs(K1 - K2)/(K2 + Abs(K1 - K2)))
菱面は,初項 = 甲菱面,公比 = 乙菱面/甲菱面 の等比数列になる。
問のように甲菱面 = 4 寸,乙菱面 = 2 寸とすると, 丙菱面は 1 寸にはなるが,x1 = x2 = x3 = 0 で,もはや菱形ではなく,線分である。
上に描いた図は,甲菱面 = 4,乙菱面 = 3 の場合であり,丙菱面 = 2.25 になる。
全てのパラメータは,以下の通りである。
鈎 = 5.33333; 股 = 15.0849; x1 = 3.77124; y1 = 1.33333; x2 = 6.59966; y2 = 1; x3 = 8.72098; y3 = 0.75
function draw(K1, K2, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
Abs = abs
(鈎, 股, x1, y1, x2, y2, x3, y3) = (K1^2/K2, K1^(5/2)*sqrt(-K1 + 2*K2)/(K2*(K1 - K2)), K1^(3/2)*sqrt(-K1 + 2*K2)/K2, K1*(K1 - K2)/K2, sqrt(K1)*sqrt(-K1 + 2*K2)*(K1^2 - K2^2)/(K2*(K1 - K2)), K1 - K2, sqrt(K1)*sqrt(-K1 + 2*K2)*(K1^2*K2 + K1^2*Abs(K1 - K2) - K2^3)/(K2*(K1*K2 + K1*Abs(K1 - K2) - K2^2 - K2*Abs(K1 - K2))), K2*Abs(K1 - K2)/(K2 + Abs(K1 - K2)))
@printf("甲菱面 = %g; 乙菱面 = %g; 丙菱面 = %g\n", 鈎 - y1, 鈎 - y1 - y2, 鈎 - y1 - y2 - y3)
@printf("鈎 = %g; 股 = %g; x1 = %g; y1 = %g; x2 = %g; y2 = %g; x3 = %g; y3 = %g\n", 鈎, 股, x1, y1, x2, y2, x3, y3)
plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:blue, lw=0.5)
segment(0, y1, x1, 0)
segment(x1, y2, x2, 0)
segment(x2, y3, x3, 0)
segment(x1, 0, x1, 鈎 - y1)
segment(x2, 0, x2, 鈎 - y1 - y2)
segment(x3, 0, x3, 鈎 - y1 - y2 - y3)
if more == true
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, y1, " (0,y1)", :red, :left, :bottom)
point(x1, y2, " (x1,y2)", :red, :left, :bottom)
point(x2, y3, " (x2,y3)", :red, :left, :bottom)
point(x3, 0, " (x3,0)", :red, :left, :bottom)
point(0, 鈎, " (0,鈎)", :red, :left, :bottom)
point(股, 0, " (股,0)", :red, :left, :bottom)
xlims!(-5delta, 股 + 25delta)
end
end;
draw(4, 3, true)
※コメント投稿者のブログIDはブログ作成者のみに通知されます