岐阜県不破郡垂井町宮代 南宮大社 弘化2年(1845)
http://ryugen3.sakura.ne.jp/toukou3/wasankibousya.PDF
キーワード:円2個,楕円
#Julia #SymPy #算額 #和算 #数学
第五問 交差する合同な 3 個の楕円に接するように,合同な 2 個の円を描く。楕円の短径と円の直径を知って,楕円の長径を求めよ。

楕円の長半径,短半径を \(a,\ b\)
円の半径を \(r\)
円と楕円の接点座標を \( (x_0,\ y_0)\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms a, b, r, x0, y0
eq1 = x0^2 + (b - r - y0)^2 - r^2
eq2 = (x0 -a)^2*b^2 + y0^2*a^2 - a^2*b^2
eq3 = -b^2*(x0 - a)*(b - r - y0) - x0*(a^2*y0);
res = solve([eq1, eq2, eq3], (a, x0, y0))[4] # 4 of 6
(sqrt(2)*sqrt(b*(8*b^3 - 20*b^2*r + 15*b*r^2 - 3*b*sqrt(r^3*(8*b - 7*r)) - 2*r^3 + 2*r*sqrt(r^3*(8*b - 7*r)))/(4*b^4 - 8*b^3*r + 8*b^2*r^2 - 4*b*r^3 + r^4))*(4*b^2*r - 6*b*r^2 + 2*b*sqrt(r^3*(8*b - 7*r)) + 5*r^3 - r*sqrt(r^3*(8*b - 7*r)))/(8*(b^2 - 4*b*r + 4*r^2)), sqrt(2)*r*sqrt(b*(8*b^3 - 20*b^2*r + 15*b*r^2 - 3*b*sqrt(r^3*(8*b - 7*r)) - 2*r^3 + 2*r*sqrt(r^3*(8*b - 7*r)))/(4*b^4 - 8*b^3*r + 8*b^2*r^2 - 4*b*r^3 + r^4))/2, b*(4*b^2 - 8*b*r + 3*r^2 - sqrt(r^3*(8*b - 7*r)))/(2*(2*b^2 - 2*b*r + r^2)))
# a: 長半径
@show(res[1])
res[1] = sqrt(2)*sqrt(b*(8*b^3 - 20*b^2*r + 15*b*r^2 - 3*b*sqrt(r^3*(8*b - 7*r)) - 2*r^3 + 2*r*sqrt(r^3*(8*b - 7*r)))/(4*b^4 - 8*b^3*r + 8*b^2*r^2 - 4*b*r^3 + r^4))*(4*b^2*r - 6*b*r^2 + 2*b*sqrt(r^3*(8*b - 7*r)) + 5*r^3 - r*sqrt(r^3*(8*b - 7*r)))/(8*(b^2 - 4*b*r + 4*r^2))
\(\displaystyle \frac{\sqrt{2} \sqrt{\frac{b \left(8 b^{3} - 20 b^{2} r + 15 b r^{2} - 3 b \sqrt{r^{3} \left(8 b - 7 r\right)} - 2 r^{3} + 2 r \sqrt{r^{3} \left(8 b - 7 r\right)}\right)}{4 b^{4} - 8 b^{3} r + 8 b^{2} r^{2} - 4 b r^{3} + r^{4}}} \left(4 b^{2} r - 6 b r^{2} + 2 b \sqrt{r^{3} \left(8 b - 7 r\right)} + 5 r^{3} - r \sqrt{r^{3} \left(8 b - 7 r\right)}\right)}{8 \left(b^{2} - 4 b r + 4 r^{2}\right)}\)
円の半径 = 1, 楕円の短半径 = 3 のとき,楕円の(長半径ではなく)長径は 14.5478243546329 となる。
2*res[1](r => 1, b => 3).evalf() |> println
14.5478243546329
術の式は,一時変数をすべて展開するとかなり長い式になる。
@syms 円径, 短径
天 = 短径 - 円径
地 = 4(天 - 円径)
人 = (地 + 14円径)*2天 - 円径^2
長径 = sqrt(8天*短径/(人 - sqrt(人^2 - 地^3*天)))*円径
@show(長径)
長径 = 円径*sqrt(短径*(-8*円径 + 8*短径)/(-円径^2 + (-2*円径 + 2*短径)*(6*円径 + 4*短径) - sqrt(-(-8*円径 + 4*短径)^3*(-円径 + 短径) + (-円径^2 + (-2*円径 + 2*短径)*(6*円径 + 4*短径))^2)))
\(\displaystyle 円径 \sqrt{\frac{短径 \left(- 8 円径 + 8 短径\right)}{- 円径^{2} + \left(- 2 円径 + 2 短径\right) \left(6 円径 + 4 短径\right) - \sqrt{- \left(- 8 円径 + 4 短径\right)^{3} \left(- 円径 + 短径\right) + \left(- 円径^{2} + \left(- 2 円径 + 2 短径\right) \left(6 円径 + 4 短径\right)\right)^{2}}}}\)
円径 = 1*2, 短径 = 3*2 のとき,長径は 14.5478243546329 となり,上述の値に一致する。
@SymPy では十分に簡約化できないが,実質的に同じ式であることがわかった。
長径(円径 => 2, 短径 => 6) |> display
長径(円径 => 2, 短径 => 6).evalf() |> println
\(\displaystyle \frac{16 \sqrt{3}}{\sqrt{284 - 68 \sqrt{17}}}\)
14.5478243546329
描画関数プログラムのソースを見る
function draw(r, b, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
a = √2sqrt(b*(8b^3 - 20b^2*r + 15b*r^2 - 3b*sqrt(r^3*(8b - 7r)) - 2r^3 + 2r*sqrt(r^3*(8b - 7r)))/(4b^4 - 8b^3*r + 8b^2*r^2 - 4b*r^3 + r^4))*(4b^2*r - 6b*r^2 + 2b*sqrt(r^3*(8*b - 7*r)) + 5*r^3 - r*sqrt(r^3*(8b - 7r)))/(8(b^2 - 4b*r + 4r^2))
x0 = √2r*sqrt(b*(8b^3 - 20b^2*r + 15b*r^2 - 3b*sqrt(r^3*(8b - 7r)) - 2r^3 + 2r*sqrt(r^3*(8b - 7r)))/(4b^4 - 8b^3*r + 8b^2*r^2 - 4b*r^3 + r^4))/2
y0 = b*(4b^2 - 8b*r + 3r^2 - sqrt(r^3*(8b - 7r)))/(2(2b^2 - 2b*r + r^2))
plot()
ellipse(0, 0, a, b, color=:blue)
ellipse(a, 0, a, b, color=:blue)
ellipse(-a, 0, a, b, color=:blue)
circle22(0, b - r, r)
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(a, 0, "楕円:a,b,(a,0)", :blue, :left, delta=-delta, deltax=delta)
point(0, b, "b", :blue, :center, :bottom, delta=3delta)
point(2a, 0, "2a", :blue, :left, :bottom, delta=delta)
point(0, b - r, "円:r,(0,b-r)", :red, :left, delta=-9delta, deltax=6delta)
end
end;
draw(1, 3, true)
以下のアイコンをクリックして応援してください