算額(その246)
中村信弥「改訂増補 長野県の算額」
http://www.wasan.jp/zoho/zoho.html
県内の算額3(229)
長野県諏訪市下諏訪 諏訪大社下社 慶応4年(1868)
部分円の中に,大円,小円が 2 個ずつ入っている。大円の径が 147 寸,元の長さが 294 寸のとき,小円の径を求めよ。
弦を x 軸上に取り,その中点を原点とする。弦の右端の x 座標を (x, 0) とする。x = 294/2 である。
部分円の半径を R 中心座標を (0, y) とする。
右の大円の半径,中心座標を r2, (r2, r2) とする。r2 = 147/2 である。
右の小円の半径,中心座標を r1, (x1, r1) とする。
以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms x::positive, y::positive, r1::positive, x1::positive, r2::positive, R::positive;
x = 294 // 2
r2 = 147 // 2
eq1 = x^2 + y^2 - R^2
eq2 = r2^2 + (r2 - y)^2 - (R - r2)^2
eq3 = x1^2 + (y - r1)^2 - (R - r1)^2
eq4 = (x1 - r2)^2 + (r2 - r1)^2 - (r1 + r2)^2;
res = solve([eq1, eq2, eq3, eq4], (r1, x1, R, y))
1-element Vector{NTuple{4, Sym}}:
(27/2, 273/2, 1225/8, 343/8)
r1 = 13.50000; x1 = 136.50000; R = 153.12500; y = 42.87500
小円の半径は 13.5。元の単位で直径は 27 寸である。
eq1 ~ eq4 を x, r2 も未知数(変数)として解くと,r1 は以下の式で求めることができる。
x = 294 // 2
r2 = 147 // 2
num = r2 * (x - r2)^2 * (x + r2)^2
den = (3r2^2 + x^2)^2
r1 = num / den
println(r1)
27//2
using Plots
using Printf
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
# (r1, x1, R, y) = res[1]
(r1, x1, R, y) = (27/2, 273/2, 1225/8, 343/8)
x = 294 // 2
r2 = 147 // 2
@printf("r1 = %.5f; x1 = %.5f; R = %.5f; y = %.5f\n", r1, x1, R, y)
θ = atan(y/x)/pi*180
plot()
circle(0, y, R, :blue, beginangle=-θ, endangle=180+θ, n=200)
circle(x1, r1, r1)
circle(-x1, r1, r1)
circle(r2, r2, r2, :green)
circle(-r2, r2, r2, :green)
segment(x, 0, -x, 0, :blue)
if more == true
point(0, y, " y", :blue)
point(x1, r1, "小円 \n(x1,r1) ", :red, :right, :bottom)
point(r2, r2, " 大円\n (r2,r2)", :green, :left, :bottom)
point(x, 0, "x", :blue)
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5, ylims=(-12, 200))
else
plot!(showaxis=false)
end
end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます