03014 岩手県一関市釣山 八幡神社 天保9年(1838)
今有如図
https://w.atwiki.jp/sangaku/pages/198.html
キーワード:円5個,楕円
#Julia #SymPy #算額 #和算 #数学
楕円の中に甲円 1 個,乙円 2 個,丙円 2 個を容れる。丙円は楕円の周端で接する(曲率円である)。甲円の直径が与えられたとき楕円の長径を求める術を述べよ。

楕円の長半径,短半径と中心座標を \(a,\ b,\ (0,\ 0);\ b = r_1\)
甲円の半径と中心座標を \(r_1,\ (0,\ 0)\)
乙円の半径と中心座標を \(r_2,\ (r_1 + r_2,\ 0)\)
丙円の半径と中心座標を \(r_3,\ (a - r_3,\ 0)\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms a::positive, b::positive, r1::positive, r2::positive, r3::positive
b = r1
eq1 = r3 - b^2/a # 丙円は曲率円
eq2 = (r1 + r2)^2 - (a^2 - b^2)*(b^2 - r2^2)/b^2 # 算法助術-公式84
eq3 = (r1 + 2r2 + 2r3) - a # 長径の内訳
res = solve([eq1, eq2, eq3], (a, r2, r3))[1];
# a 長半径
res[1]
\( \displaystyle r_{1} \left(1 + \sqrt{5}\right)\)
長半径 \(a\) は,甲円の半径 \(r_1\) の \(1 + \sqrt{5}\) 倍である。
甲円の直径が 1 寸のとき,楕円の長径は \(1 + \sqrt{5} = 3.23606797749979\) 寸である。
# r2 乙円の半径
res[2] |> factor
\( \displaystyle \frac{r_{1} \left(1 + \sqrt{5}\right)}{4}\)
# r3 丙円の半径
res[3] |> factor
\( \displaystyle \frac{r_{1} \left(-1 + \sqrt{5}\right)}{4}\)
描画関数プログラムのソースを見る
function draw(r1, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
b = r1
(a, r2, r3) = (√5 + 1, (√5 + 1)/4, (√5 - 1)/4)
plot()
ellipse(0, 0, a, b, color=:green)
circle(0, 0, r1)
circle2(r1 + r2, 0, r2, :blue)
circle2(a - r3, 0, r3, :magenta)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) / 3 # size[2] * fontsize * 2
vline!([0], color=:gray80, lw=0.5)
hline!([0], color=:gray80, lw=0.5)
point(0, 0, "甲円:r1,(0,0)", :red, :center, delta=-2delta)
point(r1 + r2, 0, "乙円:r2\n(r1+r2,0)", :blue, :center, :bottom, delta=2delta)
point(a - r3, 0, "丙円:r3,(a-r3,0)", :magenta, :right, delta=-2delta)
point(a, 0, "a", :green, :left, :bottom, delta=2delta)
point(0, b, "b=r1", :green, :center, :bottom, delta=2delta)
end
end;
draw(1, true)
以下のアイコンをクリックして応援してください