算額(その484)
宮城県丸森町小斎日向 鹿島神社 明治13年
徳竹亜紀子,谷垣美保: 2021年度の算額調査,仙台高等専門学校名取キャンパス 研究紀要,第 58 号, p.7-28, 2022.
https://www.sendai-nct.ac.jp/natori-library/wp/wp-content/uploads/2022/03/kiyo2022-2.pdf
外円内に甲円,乙円,丙円が入っている。3 個の円の中心は鈎股弦(直角三角形)を作る。鈎が 3 寸,股が 4 寸のとき,外円の直径はいかほどか。
外円の半径と中心座標を r0, (0, 0); r0 = 6r2
甲円の半径と中心座標を r1, (0, r1 - r0)
乙円の半径と中心座標を r2, (r1 + r3, r1 - r0 + r2 + r3)
丙円の半径と中心座標を r3, (r1 + r3, r1 - r0)
とおき,以下の連立方程式を解く。
include("julia-source.txt");
using SymPy
@syms r0::positive, r1::positive, r2::positive,
r3::positive, 鈎::positive, 股::positive;
eq1 = r2 + r3 - 鈎
eq2 = r1 + r3 - 股
eq3 = (r1 + r2)^2 -(鈎^2 + 股^2)
eq4 = (r1 + r3)^2 + (r1 - r0)^2 - (r0 - r3)^2
solve([eq1, eq2, eq3, eq4], (r0, r1, r2, r3))
2-element Vector{NTuple{4, Sym}}:
(股/2 + 鈎/2 - sqrt(股^2 + 鈎^2)/2, 股/2 - 鈎/2 - sqrt(股^2 + 鈎^2)/2, -股/2 + 鈎/2 - sqrt(股^2 + 鈎^2)/2, 股/2 + 鈎/2 + sqrt(股^2 + 鈎^2)/2)
(股/2 + 鈎/2 + sqrt(股^2 + 鈎^2)/2, 股/2 - 鈎/2 + sqrt(股^2 + 鈎^2)/2, -股/2 + 鈎/2 + sqrt(股^2 + 鈎^2)/2, 股/2 + 鈎/2 - sqrt(股^2 + 鈎^2)/2)
2 組の解が求まるが,2 番目のものが適解である。
外円の半径は 股/2 + 鈎/2 + sqrt(股^2 + 鈎^2)/2 なので,直径は 鈎 + 股 + sqrt(鈎^2 + 股^2) である。さらに,sqrt(鈎^2 + 股^2) = 弦 なので,外円の直径は鈎,股,弦の和になる。
鈎 = 3, 股 = 4 のとき,弦 = 5 なので,外円の直径は 12 である。
その他,(r1, r2, r3) = ((股 - 鈎 + 弦)/2, (-股 + 鈎 + 弦)/2, (股 + 鈎 - 弦)/2)
r0 = 6; r1 = 3; r2 = 2; r3 = 1
鈎 = 3; 股 = 4; 弦 = 5; 外円の直径 = 12
外円の直径(鈎, 股) = 鈎 + 股 + sqrt(鈎^2 + 股^2) # 鈎,股を与えて外円の直径を求める関数
外円の直径(3, 4) |> println
外円の直径(3, 7) |> println
12.0
17.61577310586391
using Plots
function draw(鈎, 股, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
弦 = sqrt(鈎^2 + 股^2)
(r0, r1, r2, r3) = ((股 + 鈎 + 弦)/2, (股 - 鈎 + 弦)/2, (-股 + 鈎 + 弦)/2, (股 + 鈎 - 弦)/2)
@printf("r0 = %g; r1 = %g; r2 = %g; r3 = %g\n", r0, r1, r2, r3)
@printf("鈎 = %g; 股 = %g; 弦 = %g; 外円の直径 = %g\n", 鈎, 股, 弦, 2r0)
plot()
circle(0, 0, r0, :black)
circle(0, r1 - r0, r1, :blue)
circle(r1 + r3, r1 - r0 + r2 + r3, r2, :green)
circle(r1 + r3, r1 - r0, r3)
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(0, r1 - r0, "甲円:r1 \n(0,r1-r0) ", :blue, :right, :vcenter)
point(r1 + r3, r1 - r0 + r2 + r3, "乙円:r2 \n(r1+r3,r1-r0+r2+r3) ", :green, :center, :vcenter)
point(r1 + r3, r1 - r0, "丙円:r2 \n(r1+r3,r1-r0) ", :black, :right, :vcenter)
point(r0, 0, " r0", :black, :left, :bottom, delta=delta/3)
else
plot!(showaxis=false)
end
end;
draw(3, 4, true)
r0 = 6; r1 = 3; r2 = 2; r3 = 1
鈎 = 3; 股 = 4; 弦 = 5; 外円の直径 = 12
draw(3, 7, true)
r0 = 8.80789; r1 = 5.80789; r2 = 1.80789; r3 = 1.19211
鈎 = 3; 股 = 7; 弦 = 7.61577; 外円の直径 = 17.6158
※コメント投稿者のブログIDはブログ作成者のみに通知されます