算額(その1339)
岐阜県垂井町 西法寺 令和6年(2024)
http://www.wasan.jp/gifu/saihoji.html
算法点竄指南録 百丗一
https://kokusho.nijl.ac.jp/biblio/100301503/60?ln=ja
キーワード:直角三角形,正方形,面積
#Julia, #SymPy, #算額, #和算
直角三角形の中に正方形を容れる。甲積が54歩(平方寸),乙積が 96 歩のとき,鈎,股はいかほどか。
鈎,股を「鈎」,「股」
正方形の一辺の長さを a
とおき,以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms 鈎::positive, 股::positive, a::positive,
甲積::positive, 乙積::positive;
eq1 = a*(鈎 - a)/2 - 甲積
eq2 = a*(股 - a)/2 - 乙積
eq3 = (甲積 + 乙積 + a^2) - 股*鈎/2
res = solve([eq1, eq2, eq3], (鈎, 股, a))[1]
(sqrt(2)*甲積^(1/4)*(sqrt(乙積) + sqrt(甲積))/乙積^(1/4), sqrt(2)*乙積^(1/4)*(sqrt(乙積) + sqrt(甲積))/甲積^(1/4), sqrt(2)*乙積^(1/4)*甲積^(1/4))
甲積,乙積が 54 歩,96 歩 のとき,鈎は 21 寸,股は 28 寸である。
res[1](甲積 => 54, 乙積 => 96).evalf() |> N |> println
res[2](甲積 => 54, 乙積 => 96).evalf() |> N |> println
21.0
28.0
ちなみにこのとき,正方形の一辺の長さは 12 寸である。
res[3](甲積 => 54, 乙積 => 96).evalf() |> N |> println
12.0
function draw(甲積, 乙積, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(鈎, 股, a) = (sqrt(2)*甲積^(1/4)*(sqrt(乙積) + sqrt(甲積))/乙積^(1/4), sqrt(2)*乙積^(1/4)*(sqrt(乙積) + sqrt(甲積))/甲積^(1/4), sqrt(2)*乙積^(1/4)*甲積^(1/4))
plot([0, 股, 股, 0], [0, 0, 鈎, 0], color=:blue, lw=0.5)
rect(股 - a, 0, 股, a, :red)
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(股 - a/3, (3a + 鈎)/4, "甲積", :blue, :center, :vcenter, mark=false)
point(2(股 - a)/3, a/4, "乙積", :blue, :center, :vcenter, mark=false)
point(股 - a, 0, " a", :red, :left, :bottom, delta=delta)
point(股, a, "(股,a) ", :red, :right, :bottom, delta=delta)
point(股, 0, "股 ", :red, :right, :bottom, delta=delta)
point(股, 鈎, "(股,鈎) ", :blue, :right, :bottom, delta=delta)
end
end;
draw(54, 96, true)
※コメント投稿者のブログIDはブログ作成者のみに通知されます