天生法百景・付録和算用字和解(小寺裕(二代目福田理軒))
http://www.wasan.jp/zemi2/tenseiho100.pdf
キーワード:円3個,円弧,弦
#Julia #SymPy #算額 #和算 #数学
[1] 円弧(全円)の中に,甲円 1 個,乙円 2 個を容れる。円弧,甲円の直径が与えられたとき,乙円の直径を求めよ。

全円の半径と中心座標を \(R, (0, 0)\)
甲円の半径と中心座標を \(r_1, (0, R - r_1)\)
乙円の半径と中心座標を \(r_2, (x_2), r_2)\)
弦と \(y\) 軸の交点座標を \( (0, y)\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms R::positive, r1::positive, r2::positive, x2::positive
y = R - 2r1
eq1 = x2^2 + ( (R - r1) - (y + r2))^2 - (r1 + r2)^2
eq2 = x2^2 + (y + r2)^2 - (R - r2)^2
res = solve([eq1, eq2], (r2, x2))[1]
# r2
res[1] |> println
-r1*(-R + r1)/R
全円,甲円の半径が 10, 3 のとき,乙円の半径は 2.1 である。
\(R = 10; r_1 = 3; r_2 = 2.1; x_2 = 5.01996; y = 4\)
res[1](R => 10, r1 => 3) |> println
21/10
描画関数プログラムのソースを見る
function draw(R, r1, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, x2) = (-r1*(-R + r1)/R, 2*r1*sqrt(R - r1)/sqrt(R))
y = R - 2r1
@printf("R = %g; r1 = %g; r2 = %g; x2 = %g; y = %g\n", R, r1, r2, x2, y)
plot()
x = sqrt(R^2 - y^2)
θ = atand(R - 2r1, x)
circle(0, 0, R, :green, beginangle=θ, endangle=180 - θ)
circle(0, R - r1, r1)
circle2(2sqrt(r1*r2), R - 2r1 + r2, r2, :blue)
segment(-x, y, x, y, :green)
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(0, R, "R", :green, :center, :bottom, delta=delta)
point(0, 0, "全円:R,(0,0)", :green, :center, :bottom, delta=delta)
point(0, y, "y", :green, :center, delta=-delta)
point(0, R - r1, "甲円:r1\n(0,R-r1)", :red, :center, delta=-delta)
point(x2, y + r2, "乙円:r2\n(x2,y+r2)", :blue, :center, delta=-delta)
end
end;
draw(10, 3, true)
以下のアイコンをクリックして応援してください