算額(その590)
長崎市 鎮西大社諏訪神社 明治20年(1887)
米光丁: 長崎県の和算の概説
http://hyonemitsu.web.fc2.com/Nagasakiwasan.pdf
問題 7. 外円の中に菱形と正方形を入れる。長矢と短矢の長さが 18 寸,8 寸のとき,外円の直径はいかほどか。
外円の半径と中心座標を R, (0, 0)
正方形の一辺の長さを 2a とする。
菱形の長径と短径を 2x, 2y とする。
長矢,短矢の長さは x - a, y - a である。
以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms R::positive, a::positive, 長矢::positive, 短矢::positive
eq1 = a + 長矢 - R
eq2 = 短矢/a - (a + 短矢)/R
solve([eq1, eq2], (R, a))
1-element Vector{Tuple{Sym, Sym}}:
(sqrt(短矢)*sqrt(長矢) + 長矢, sqrt(短矢)*sqrt(長矢))
外円の半径は「短矢と長矢の積の平方根に長矢を加える」ことで得られる。
長矢と短矢の長さが 18 寸,8 寸のとき,外円の半径は 30 寸,直径は 60 寸である。
(長矢, 短矢) = (18, 8)
sqrt(長矢*短矢) + 長矢
30.0
ちなみに正方形の一辺の長さは「短矢と長矢の積の平方根」= sqrt(長矢*短矢) = sqrt(18*8) = 12 寸である。
using Plots
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(長矢, 短矢) = (18, 8)
(R, a) = (sqrt(短矢)*sqrt(長矢) + 長矢, sqrt(短矢)*sqrt(長矢))
@printf("外円の直径 = %g; R = %g; a = %g\n", 2R, R, a)
plot([0, 30, 0, -30, 0], [-20, 0, 20, 0, -20], color=:green, lw=0.5)
plot!([12, 12, -12, -12, 12], [-12, 12, 12, -12, -12], color=:red, lw=0.5)
circle(0, 0, R, :blue)
segment(0, a, 0, a + 短矢, lw=3)
segment(a, 0, a + 長矢, 0, lw=3)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
point(R, 0, " R", :blue, :left, delta=-delta/2)
point(R, 0, " x", :green, :left, :bottom, delta=delta/2)
point(a, 0, "a ", :red, :right, delta=-delta/2)
point(0, a, " a", :red, :left, :top, delta=-delta/2)
point(0, a + 短矢, " y", :green, :left, :bottom, delta=delta/2)
point(0, a + 短矢/2, " 短矢", :black, :left, :vcenter)
point(a + 長矢/2, 0, " 長矢", :black, :center, :bottom, delta=delta/2)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます