宮城県丸森町小斎日向 小斎鹿島神社 大正年間
徳竹亜紀子,谷垣美保: 2022年度の算額調査,仙台高等専門学校名取キャンパス 研究紀要,第 59 号, p.9-47, 2022.
https://www.sendai-nct.ac.jp/natori-library/wp-content/uploads/2023/05/kiyo2023-2.pdf
キーワード:円5個,外円,正三角形
#Julia #SymPy #算額 #和算 #数学
算額の破損のため,図以外の情報は殆どない。
団扇の中に正三角形と大円,中円,小円が入っている。

外円の半径と中心座標を \(r_0,\ (0,\ 0)\)
大円の半径と中心座標を \(r_1,\ (0,\ 0);\ r_1 = r_0\sin(\pi/6)\)
中円の半径と中心座標を \(r_2,\ (0,\ r_0 - r_2);\ r_2 = r_0(1 - \sin(\pi/6))/2\)
小円の半径と中心座標を \(r_3,\ (x_3,\ y_3)\)
下部の円弧の半径と中心座標を \(r_4,\ (0,\ -r_0);\ r_4 = r_0 - r_1\)
とおき,以下の連立方程式を解く。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms r0::positive, r1::positive, r2::positive,
r3::positive, x3::positive, y3::negative, r4::positive;
x = r0*cos(PI/6)
y = r0*sin(PI/6)
r1 = y
r2 = (r0 - y)/2
r4 = r0 - r1
eq1 = distance(0, -r0, x, y, x3, y3) - r3^2
eq2 = x3^2 + (y3 + r0)^2 - (r3 + r4)^2
eq3 = x3^2 + y3^2 - (r0 - r3)^2
res = solve([eq1, eq2, eq3], (r3, x3, y3))[1]
(r0*(1 + 3*sqrt(5))/32, r0*(5*sqrt(3) + 7*sqrt(15))/64, r0*(-53/64 + 9*sqrt(5)/64))
# r3 = res[1]
\(\displaystyle \frac{r_{0} \left(1 + 3 \sqrt{5}\right)}{32}\)
# r1
\(\displaystyle \frac{r_{0}}{2}\)
# r2
\(\displaystyle \frac{r_{0}}{4}\)
# r4
\(\displaystyle \frac{r_{0}}{2}\)
外円と円弧の交点座標 \( (x_0,\ y_0)\) を求める。
@syms x0::positive, y0::negative
eq1 = x0^2 + y0^2 - r0^2
eq2 = x0^2 + (r0 + y0)^2 - (r0 - y)^2
res2 = solve([eq1, eq2], (x0, y0))[1]
(sqrt(15)*r0/8, -7*r0/8)
\(r_0 = 1\) のとき,各パラメータは以下のようになる。
\(r_1 = 0.5;\ r_2 = 0.25;\ r_3 = 0.240881\)
\(x_3 = 0.558924;\ y_3 = -0.513678;\ r_4 = 0.5\)
描画関数プログラムのソースを見る
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r0 = 1
x = r0*cos(pi/6)
y = r0*sin(pi/6)
r1 = y
r2 = (r0 - y)/2
r4 = r0 - r1
(r3, x3, y3) = (r0*(1 + 3*sqrt(5))/32, r0*(5*sqrt(3) + 7*sqrt(15))/64, r0*(-53/64 + 9*sqrt(5)/64))
(x0, y0) = (sqrt(15)*r0/8, -7*r0/8)
θ = atand( (r0 + y0)/x0)
@printf("r0 = %g; r1 = %g; r2 = %g; r3 = %g; x3 = %g; y3 = %g; r4 = %g\n",
r0, r1, r2, r3, x3, y3, r4)
plot([0, x, -x, 0], [-r0, y, y, -r0], color=:black, lw=0.5)
circle(0, 0, r0, :blue)
circle(0, 0, r1, :green)
circle(0, r0 - r2, r2, :orange)
circle(x3, y3, r3, :magenta)
circle(-x3, y3, r3, :magenta)
circle(0, -r0, r4, beginangle=θ, endangle=181-θ)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
point(x, y, "(x,y) ", :blue, :right, :bottom, delta=delta/2)
point(x0, y0, "(x0,y0)")
point(r0, 0, "r0 ", :blue, :right, :bottom, delta=delta/2)
point(0, r1, " r1", :green, :left, delta=-delta/2)
point(0, -r1, " -r1", :green, :left, :bottom, delta=delta)
point(0, r0 - r2, " 中円:r2,(0,r0-r2)", :black, :left, :vcenter)
point(r1/2, r1/2, "大円:r1,(0,0)", :green, :center, delta=-2delta, mark=false)
point(x3, y3, "小円:r3,(x3,y3)", :magenta, :center, delta=-delta/2)
end
end;
以下のアイコンをクリックして応援してください