算額(その89)
栃木県足利市家富町 鑁阿寺 明治17年(1884)3月
http://www.wasan.jp/totigi/bannaji2.html
3 種類の円が図のように配置されている。中円,小円の径(直径)が 2 寸,1 寸のとき,大円の径を求めよ。
大円の半径を r とする。中円,小円の半径を 2, 1 とする。
大円と中円が外接していることに基づく方程式を解く。
using SymPy
@syms r::positive;
eq = (1 + r)^2 + (1 + 2)^2 - (2 + r)^2
r = solve(eq)[1]
println(r)
3
using Plots
function circle(ox, oy, r, color=:red; beginangle=0, endangle=360)
θ = beginangle:0.1:endangle
x = r.*cosd.(θ)
y = r.*sind.(θ)
plot!(ox .+ x, oy .+ y, color=color, linewidth=0.5)
end;
function point(x, y, string="", color=:green, position=:left, vertical=:top; fontsize=10, mark=true)
mark && scatter!([x], [y], color=color, markerstrokewidth=0)
annotate!(x, y, text(string, fontsize, vertical, position, color))
end;
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r = 3
println("大円の半径は $r")
plot()
circle(0, 3, 2, :green)
circle(0, -3, 2, :green)
circle(0, 0, 1, :blue)
circle(1 + r, 0, r)
circle(-1 - r, 0, r)
if more
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
point(0, 3, "3 ", :green, :bottom, :right)
point(1 + r, 0, " 1+r", :red, :top, :left)
point(1, 0, " 1", :red, :top, :left)
point(0, 0, " 0", :blue, :top, :left)
end
end;
大円の半径は 3
※コメント投稿者のブログIDはブログ作成者のみに通知されます