和算の心(その002)
算額の問題を解くための定石をまとめておく。
山形県南原町 熊野神社
山形算額勝負-湯殿山神社を目指せ-
https://www.sci.yamagata-u.ac.jp/wasan/pdf/20180711SSEP.pdf
直線の上に直径 9寸の大円,直径 4寸の小円があり,互いに接している。大円と小円の接点間の距離(子*1)はいくつか。
注1: 和算では変数名として,子,丑,寅... を使う。
大円と小円の半径および中心の x 座標をそれぞれ r_big,r_small, x_big,x_small とおく。二円が外接することに関する方程式を解く。
include("julia-source.txt")
using SymPy
@syms r_big::positive, x_big::positive, r_small::positive, x_small::positive, ne::positive
eq = ne^2 + (r_big - r_small)^2 - (r_big + r_small)^2
res = solve(eq, ne)[1]
println("距離(子) = $(res)")
r_big = 9//2
r_small = 4//2
距離 = 2*sqrt(r_big)*sqrt(r_small)
距離 |> println
6.0
求める距離は 2√(大円の半径 * 小円の半径) である。すなわち,直径 9寸の大円,直径 4寸の小円の場合は 2√(4.5*2) = 6 である。元の単位では 6 寸。
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r_big, r_small) = (9, 4) .// 2
x_big = 0
ne = 2√(r_big * r_small)
x_small = x_big + ne
@printf("r_big = %.7f; r_small = %.7f\n", r_big, r_small)
@printf("子 = %.7f\n", 2√(r_big * r_small))
plot()
circle(0, r_big, r_big)
circle(ne, r_small, r_small, :blue)
hline!([0], color=:black, lw=0.5)
if more == true
point(0, r_big, " r_big")
point(x_small, r_small, "(x_small,r_small)", :blue, :center)
point(x_small, 0, "子\n", :blue, :center, :bottom)
vline!([0], color=:black, lw=0.5)
else
plot!(showaxis=false)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます