村松茂清: 『算俎』,寛文3年(1663)
一関市博物館>>和算に挑戦>>平成23年度出題問題&解答例>>平成23年度出題問題(2)[中級問題]
https://www.city.ichinoseki.iwate.jp/museum/wasan/h23/normal.html
キーワード:円3個,正三角形
#Julia #SymPy #算額 #和算 #数学
正三角形内に等円 3 個が内接している。等円の直径が 10 のとき,黒積 A, B の面積を求めよ。

等円の半径を \(r\),正三角形の一辺の長さを \(2a\) とする。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms a, r
eq = r - (a - r)/sqrt(Sym(3))
a = solve(eq, a)[1]
a |> println
r*(1 + sqrt(3))
正三角形の一辺の長さは等円の半径の \(1 + \sqrt{3}\) 倍である。
\(r = 5;\ a = 13.6603;\ 等円の直径 = 10;\ 正三角形の一辺の長さ = 27.3205\)
黒積 A は,「底辺 \(a - r\),高さ \(r\) の直角三角形から,半径 \(r\) の円の面積の 1/6 を引いたもの」の 2 倍である。
\(-r^2(\pi - 3\sqrt{3})/3 = (\sqrt{3} - \pi/3)r^2\)
2( (a - r)r/2 - PI*r^2/6) |> factor |> println
-r^2*(pi - 3*sqrt(3))/3
(-r^2*(pi - 3*sqrt(3))/3)(r => 10/2) |> println
17.1213314093070
黒積 B は,3個の等円の中心を結んでできる正三角形の面積から,半径が \(r\) の円の面積の半分(円/6 の 3 個分)を引いたものである。
\(-r^2(\pi - 2\sqrt{3})/2 = (\sqrt{3} - \pi/2)r^2\)
2r * √Sym(3)r/2 - PI*r^2/2 |> factor |> println
-r^2*(pi - 2*sqrt(3))/2
(-r^2*(pi - 2*sqrt(3))/2)(r => 10/2) |> println
4.03136201934952
描画関数プログラムのソースを見る
function black(r, a)
x = vcat([cosd(θ)r for θ in 240:300], [cosd(θ)r + r for θ in 120:180], [cosd(θ)r - r for θ in 0:60])
y = vcat([sind(θ)r + (1 + √3)r for θ in 240:300], [sind(θ)r + r for θ in 120:180], [sind(θ)r + r for θ in 0:60])
plot!(x, y, color=:black, lw=0.5, seriestype=:shape, fillcolor=:black, alpha=0.5)
x = vcat([cosd(θ)r + r for θ in 270:390], [a, r])
y = vcat([sind(θ)r + r for θ in 270:390], [0, 0])
plot!(x, y, color=:black, lw=0.5, seriestype=:shape, fillcolor=:black, alpha=0.5)
end;
function draw(more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r = 10//2
a = (1 + √3)r
@printf("r = %g; a = %g; 等円の直径 = %g; 正三角形の一辺の長さ = %g\n", r, a, 2r, 2a)
plot([a, 0, -a, a], [0, √3a, 0, 0], color=:blue, lw=0.5)
circle(r, r, r)
circle(-r, r, r)
circle(0, (1 + √3)r, r)
black(r, a)
plot!([r, 0, -r, r], r .+ [0, √3r, 0, 0], color=:green, lw=0.5)
plot!([r, r, a, r], [0, r, 0, 0], color=:magenta, lw=0.5)
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.15r, 1.5r, "B", :black, mark=false)
point(1.6r, 0.5r, "A", :black, mark=false)
point(a, 0, " a", :blue, :left, :bottom, delta=delta/2)
point(0, √3a, " √3a", :blue, :left, :vcenter)
point(0, (1 + √3)r, " (1+√3)r", :red, :left, :vcenter)
point(r, r, " (r,r)", :red, :left, :vcenter)
end
end;
以下のアイコンをクリックして応援してください