琴平町 宗家 金毘羅饂飩 狸屋 レストラン 狸屋
雰囲気のある店
「金比羅饂飩」がいちおしメニュー
中細麺
算額(その1586)
岡山県瀬戸内市長船町土師宮森 片山日子神社 明治6年(1873)
深川英俊,トニー・ロスマン:聖なる数学:算額,p. 104,森北出版株式会社,2010年4月22日.
キーワード:直角三角形の区分法
#Julia, #SymPy, #算額, #和算, #数学
AC = 30m,BC = 40m の直角三角形状の畑がある。この畑に,幅が 2 メートルのあぜ道 DEFGHIJ を残りの面積が等しくなるように作りたい。BE, DE, HC, JC, AI, FG の長さを求めよ。
A の座標を (Ax, Ay) などとし,A ~ J までの合計 20 変数と,面積を S とおき,以下の連立方程式を解く。
いくつかの変数値は自明であるが,方程式の本数としては 7 本,変数は Dy, Ex, Fy, Hx, Iy, Jy, S の 7 個なので,過不足ない。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms Ax, Bx, Cx, Dx, Ex, Fx, Gx, Hx, Ix, Jx,
Ay, By, Cy, Dy, Ey, Fy, Gy, Hy, Iy, Jy,
S
Ax = Ix = Jx = Cx = 40
Ay = 30
Dx = Ex
Fx = Gx = Hx
Bx = By = Ey = Hy = Cy = 0
Gy = Iy
eq1 = Hx - Ex - 2
eq2 = Iy - Jy - 2
eq3 = (30*40//2 - 2(Ix - Gx) - ((Dy - Ey) + (Fy - Hy)))/3 - S
eq4 = (Dy - Ey)/(Ex - Bx) - 3//4
eq5 = (Ay - Fy)/(Cx - Hx) - 3//4
eq6 = ((Fy - Gy)+(Ay - Iy))*(Ix - Gx)/2 - S
eq7 = (Ex - Bx)*(Dy - Ey)/2 - S;
res = solve([eq1, eq2, eq3, eq4, eq5, eq6, eq7],
(Dy, Ex, Fy, Hx, Iy, Jy, S))[2] # 2 of 2
(1/6 + sqrt(9406)/6, 2/9 + 2*sqrt(9406)/9, 5/3 + sqrt(9406)/6, 20/9 + 2*sqrt(9406)/9, sqrt(9406)/24 + 107/12, sqrt(9406)/24 + 83/12, sqrt(9406)/27 + 9407/54)
このあと,該当する線分の長さは座標点から計算される。
3 区画の面積 = 177.79572351294942
BE = Ex - Bx = 21.77434107769659
DE = Dy - By = 16.330755808272443
HC = Cx - Hx = 16.22565892230341
JC = Jy - Cy = 10.95768895206811
AI = Ay - Iy = 17.04231104793189
FG = Fy - Gy = 4.873066856204332
深川は以下のように解いている。
小数点以下4桁までで示しているが本文(P.104)と解答編(P.125)で四捨五入の誤りなどがあるが,正確な値は上に示したものと同じである。
@syms t
eq = 3//8*t^2 - (38 - t)*((3t + 110)/16)
BE = t = solve(eq, t)[2].evalf()
DE = (3/4)*t
CH = x = 38 - t
JC = y = (3t +110)/16
AI = 28 - y
FG = (3/4)t + (3/4)*2 - (y + 2);
(BE, 21.7743, 21.7743) |> println
(DE, 16.331, 16.331) |> println
(CH, 16.2255, 16.2257) |> println
(JC, 10.9577, 10.9576) |> println
(AI, 17.0423, 17.0424) |> println
(FG, 4.873, 4.873125) |> println
(21.7743410776966, 21.7743, 21.7743)
(16.3307558082724, 16.331, 16.331)
(16.2256589223034, 16.2255, 16.2257)
(10.9576889520681, 10.9577, 10.9576)
(17.0423110479319, 17.0423, 17.0424)
(4.87306685620433, 4.873, 4.873125)
function draw(more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(Dy, Ex, Fy, Hx, Iy, Jy, S) = (1/6 + sqrt(9406)/6, 2/9 + 2*sqrt(9406)/9, 5/3 + sqrt(9406)/6, 20/9 + 2*sqrt(9406)/9, sqrt(9406)/24 + 107/12, sqrt(9406)/24 + 83/12, sqrt(9406)/27 + 9407/54)
Ax = Ix = Jx = Cx = 40
Ay = 30
Dx = Ex
Fx = Gx = Hx
Bx = By = Ey = Hy = Cy = 0
Gy = Iy
println("3 区画の面積 = $S")
println("BE = Ex - Bx = $(Ex - Bx)")
println("DE = Dy - By = $(Dy - By)")
println("HC = Cx - Hx = $(Cx - Hx)")
println("JC = Jy - Cy = $(Jy - Cy)")
println("AI = Ay - Iy = $(Ay - Iy)")
println("FG = Fy - Gy = $(Fy - Gy)")
plot([Bx, Cx, Ax, Bx], [By, Cy, Ay, By], seriestype=:shape, color=:goldenrod, fillcolor=:goldenrod, lw=0.5)
plot!([Bx, Ex, Dx, Bx], [By, Ey, Dy, By], seriestype=:shape, color=:green, fillcolor=:green, lw=0.5)
plot!([Hx, Cx, Jx, Hx, Hx], [Hy, Cy, Jy, Jy, Hy], seriestype=:shape, color=:green, fillcolor=:green, lw=0.5)
plot!([Gx, Ix, Ax, Fx, Gx], [Gy, Iy, Ay, Fy, Gy], seriestype=:shape, color=:green, fillcolor=:green, lw=0.5)
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(Ax, Ay, " A")
point(Bx, By, "B", :green, :left, delta=-delta)
point(Cx, Cy, " C", :green, :left, delta=-delta)
point(Dx, Dy, " D", :green, :right, :bottom, delta=delta)
point(Ex, Ey, "E", :green, :left, delta=-delta)
point(Fx, Fy, "F", :green, :right, :bottom, delta=delta)
point(Gx, Gy, "G", :green, :left, delta=-delta/2)
point(Hx, Hy, "H", :green, :left, delta=-delta)
point(Ix, Iy, " I")
point(Jx, Jy, " J")
ylims!(-5delta, Ay + 5delta)
end
end;
draw(true)
算額(その1585)
愛知県名古屋市 熱田神宮 天保13年(1842)
深川英俊,トニー・ロスマン:聖なる数学:算額,p. 103,森北出版株式会社,2010年4月22日.
キーワード:円4個,接線4本
#Julia, #SymPy, #算額, #和算, #数学
左円と右円が外接しており,左円内には左小円が内接し,右円内には右小円が内接している。左円と右小円,右円と左小円の共通接線を 2 本ずつ引く。左小円と右小円の直径は,左円と右円の直径でどのように表されるか。
左円の半径と中心座標を r1, (r1, 0)
右円の半径と中心座標を r2, (2r1 + r2, 0)
左小円の半径と中心座標を r31, (r1 + r31, 0)
右小円の半径と中心座標を r32, (2r1 + r32, 0)
とおき,以下の連立方程式を解き,r31, r32 を求める。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms r1, r2, r31, r32
eq1 = r31/(2r1 - r31) - r2/(2r1 + r2)
eq2 = r1/(2r2 + r1) - r32/(2r2 - r32)
res = solve([eq1, eq2], (r31, r32));
res[r31] |> println
res[r32] |> println
r1*r2/(r1 + r2)
r1*r2/(r1 + r2)
左円と右円がどんな値をとっても,左小円の半径と,右小円の半径は等しい値 r1*r2/(r1 + r2) になる。
たとえば,
左円,右円の直径が 18, 14 のとき,左小円,右小円の直径は 7.875, 7.875 である。
左円,右円の直径が 18, 16 のとき,左小円,右小円の直径は 8.47059, 8.47059 である。
左円,右円の直径が 18, 6 のとき,左小円,右小円の直径は 4.5, 4.5 である。
左円,右円の直径が 8, 16 のとき,左小円,右小円の直径は 5.33333, 5.33333 である。
左円,右円の直径が 10, 18 のとき,左小円,右小円の直径は 6.42857, 6.42857 である。
function draw(r1, r2, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
r31 = r32 = r1*r2/(r1 + r2)
@printf("左円,右円の直径が %g, %g のとき,左小円,右小円の直径は %g, %g である。\n", 2r1, 2r2, 2r31, 2r32)
p = plot()
circle(r1, 0, r1)
circle(2r1 + r2, 0, r2, :magenta)
circle(2r1 - r31, 0, r31, :blue)
circle(2r1 + r32, 0, r32, :green)
θ1 = asind(r2/(2r1 + r2))
abline(0, 0, tand(θ1), 0, 2r1 + 2r2)
abline(0, 0, -tand(θ1), 0, 2r1 + 2r2)
θ2 = asind(-r1/(r1 + 2r2))
abline(2r1 + 2r2, 0, tand(θ2), 0, 2r1 + 2r2)
abline(2r1 + 2r2, 0, -tand(θ2), 0, 2r1 + 2r2)
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
str = @sprintf("r1=%d, r2=%d", r1, r2)
#point(r1 + r2, max(r1, r2), str, :black, :center, :bottom, delta=delta, mark=false)
point(2r1, max(r1, r2), str, :black, :center, :bottom, delta=delta, mark=false)
if more
hline!([0], color=:gray80, lw=0.5)
vline!([0], color=:gray80, lw=0.5)
point(r1, 0, "左円:r1,(r1,0)", :red, :center, delta=-delta)
point(2r1 + r2, 0, " 右円:r2,(2r1+r2,0)", :magenta, :center, delta=-delta)
point(2r1 - r31, 0, " 左小円", :blue, :center, :bottom, delta=delta)
point(2r1 + r32, 0, " 右小円", :green, :center, :bottom, delta=delta)
end
return p
end;
draw(9, 7, true)
算額(その1584)
福島県田村市 安倍文殊菩薩堂 明治10年(1877)
深川英俊,トニー・ロスマン:聖なる数学:算額,p. 103,森北出版株式会社,2010年4月22日.
キーワード:円6個,接線2本
#Julia, #SymPy, #算額, #和算, #数学
大円 2 個が外接しており,上の大円内に中円 2 個が内接している。2 個の中円の共通接線は上の大円の中心を通る。中円と共通接線に接する小円を容れる。また,上の大円の中心を通り,下の大円が内接する外円を描く。小円の直径を 1 としたとき,大円,中円,外円の直径はいかほどか。
外円の半径と中心座標を R, (0, r3 - R); R = 3r3/2
大円の半径と中心座標を r3, (0, r3), 0, -r3)
中円の半径と中心座標を r2, (0, r2), (0, 2r3 - r2)
小円の半径と中心座標を r1, (0, 2r3, - 2r2, -r1)
とおき,以下の連立方程式を解く。
eq2 の中に,"r3/2r3" があるのでわかるように,二本の共通接線のなす角は 60° である。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r1, r2, r3
R = 3r3/2
eq1 = r2/(r3 - r2) - r1/(r3 - 2r2 - r1)
eq2 = r2/(r3 - r2) - r3/2r3
res = solve([eq1, eq2], (r2, r3))[1]
(3*r1, 9*r1)
中円の直径は小円の直径の 3 倍,大円の直径は小円の直径の 9 倍である。
外円の直径は大円の直径の 3/2 倍なので,小円の 27/2 倍である。
小円の直径が 1 寸のとき,外円,大円,中円の直径はそれぞれ 27/2 寸,9 寸,3 寸 である。
function draw(r1, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, r3) = (3*r1, 9*r1)
R = 3r3/2
@printf("小円の直径が %g のとき,外円,大円,中円の直径は %g, %g, %g である。\n", 2r1, 2R, 2r3, 2r2)
plot()
circle22(0, r3, r3)
circle(0, 2r3 - r2, r2, :blue)
circle(0, r2, r2, :blue)
circle(0, 2r3 - 2r2 - r1, r1, :green)
circle(0, r3 - R, R, :magenta)
segment(R*cosd(30), r3-R-R*sind(30), -r3*sind(30), r3+r3*cosd(30))
segment(-R*cosd(30), r3-R-R*sind(30), r3*sind(30), r3+r3*cosd(30))
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:gray80, lw=0.3)
vline!([0], color=:gray80, lw=0.3)
point(0, -r3, "大円:r3,(0,-r3)", :red, :center, delta=-delta)
point(0, r3, " 大円:r3,(0,r3)", :red, :left, :vcenter)
point(0, 2r3 - r2, " 中円:r2,(0,2r3-r2)", :blue, :left, :vcenter)
point(0, r2, " 中円:r2,(0,r2)", :blue, :left, :vcenter)
point(0, 2r3 - 2r2 - r1, " 小円:r1,(0,2r3-2r2-r1)", :green, :left, :vcenter)
point(0, r3 - R, "外円,R,(0,r3-R)", :magenta, :center, delta=-delta)
point(R*cosd(30), r3-R-R*sind(30))
point(-r3*sind(30), r3+r3*cosd(30))
point(-R*cosd(30), r3-R-R*sind(30))
point(r3*sind(30), r3+r3*cosd(30))
end
end;
draw(1/2, true)
算額(その21)改訂版
本来の題意に沿った解を求めるように改訂した。
福島県田村郡三春町御木沢 厳島神社 明治18年(1885)
http://www.wasan.jp/fukusima/miharuitukusima3.html
キーワード:円5個,半円2個,長方形
#Julia, #SymPy, #算額, #和算, #数学
長方形の中に,半円 2 個,甲円 1 個,乙円 2 個,丙円 2 個を容れる。丙円の直径が与えられたとき,黒積を求める術を述べよ。
半円の半径と中心座標を R, (0, R/2)
甲円の半径と中心座標を r1, (0, 0)
丙円の半径と中心座標を r3, (R - r3, 0)
乙円の半径と中心座標を r2, (r2, 0)
とおく。
黒積は,「半径 R の円の面積の 1/8 の扇形の面積 ACB から,三角形の面積 OBC と乙円の面積の 1/2 を引いたものの 4 倍である」。
以下の連立方程式を解く。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r1, r2, r3, 黒積
eq1 = r2^2 + r1^2 - (R - r2)^2
eq2 = (R - r3)^2 + r1^2 - (R + r3)^2
eq3 = 2r1^2 - R^2
eq4 = 4(PI*R^2/8 - r1^2/2 - PI*r2^2/2) - 黒積
res = solve([eq1, eq2, eq3, eq4], (r1, r2, R, 黒積))[3] # 3 of 3
(4*sqrt(2)*r3, 2*r3, 8*r3, r3^2*(-64 + 24*pi))
# r1
res[1] |> println
4*sqrt(2)*r3
# r2
res[2] |> println
2*r3
# r3
res[3] |> println
8*r3
# 黒積
res[4] |> println
r3^2*(-64 + 24*pi)
黒積は,円周率の 24 倍から 64 を引き,丙円の半径の二乗を掛けることで得られる。
乙円の直径が 1 のとき,黒積は 2.84955592153876 である。
res[4](r3 => 1/2).evalf() |> println
2.84955592153876
術は以下のようで,一致する。
円周率 = PI
丙円径 = 1
((6円周率 - 16)*丙円径^2).evalf() |> println
2.84955592153876
function draw(r3, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r1, r2, R, 黒積) = (4*sqrt(2)*r3, 2*r3, 8*r3, r3^2*(-64 + 24*pi))
@printf("半円の半径が %g のとき,甲円,乙円,丙円の半径は %g, %g, %g,黒積は %g である。\n", R, r1, r2, r3, 黒積)
plot([R, R, -R, -R, R], [-r1, r1, r1, -r1, -r1], seriestype=:shape, color=:powderblue, lw=0.5, fillcolor=:powderblue)
circlef(0, r1, R, :tomato, beginangle=180, endangle=360)
circlef(0, -r1, R, :tomato, beginangle=0, endangle=180)
circlef(0, 0, r1, :moccasin)
x = [R*cosd(z) for z in 45:0.01:135]
y = [R*sind(z) - r1 for z in 45:0.01:135]
append!(x, reverse(x))
append!(y, -reverse(y))
plot!(x, y, seriestype=:shape, color=:gray60, fcolor=:gray60, lw=0.5, )
circle2f(R - r3, 0, r3, :white)
circle2f(r2, 0, r2, :moccasin)
circle(0, r1, R, :black, beginangle=180, endangle=360)
circle(0, -r1, R, :black, beginangle=0, endangle=180)
circle(0, 0, r1, :black)
circle2(R - r3, 0, r3, :black)
circle2(r2, 0, r2, :black)
rect(-R, -r1, R, r1, :black)
plot!([0, 0, r1, 0], [R - r1, -r1, 0, 0], color=:black, lw=0.5)
if more
delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3 # size[2] * fontsize * 2
hline!([0], color=:gray80, lw=0.3)
vline!([0], color=:gray80, lw=0.3)
point(0, r1, "半円:R,(0,R/2)", :black, :center, :bottom, delta=delta)
point(R - r3, 0, "丙円:r2,(R-r3,0)", :black, :right, :bottom, delta=2delta, deltax=4delta)
point(r2, 0, "乙円:r2,(r2,0)", :black, :center, delta=-delta)
point(0, R - r1, "A", :black, :center, :bottom, delta=delta)
point(r1, 0, "B ", :black, :right, :vcenter)
point(0, 0, "O ", :black, :right, :vcenter)
point(0, -r1, "C ", :black, :right, :bottom, delta=delta)
ylims!(-r1 - 2delta, r1 + 2delta)
end
end;
draw(1/2, true)
算額(その1583)
福島県田村郡三春町御木沢 厳島神社
三春まちなか寺子屋:厳島神社新算額
https://miharukoma.com/wp-content/uploads/2018/11/12.22厳島神社-新算額.pdf
https://miharukoma.com/wp-content/uploads/2018/12/寺子屋12.22 問題解説.pdf
キーワード:円5個,半円2個,長方形
#Julia, #SymPy, #算額, #和算, #数学
長方形の中に,半円 2 個,甲円 1 個,乙円 2 個,丙円 2 個を容れる。半円の半径が 48 寸のとき,乙円,丙円の半径はいかほどか。
半円の半径と中心座標を R, (0, R/2)
甲円の半径と中心座標を r1, (0, 0)
丙円の半径と中心座標を r3, (R - r3, 0)
乙円の半径と中心座標を r2, (r2, 0)
とおき,以下の連立方程式を解く。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r1, r2, r3
eq1 = r2^2 + r1^2 - (R - r2)^2
eq2 = (R - r3)^2 + r1^2 - (R + r3)^2
eq3 = 2r1^2 - R^2
res = solve([eq1, eq2, eq3], (r1, r2, r3))[2] # 2 of 2
(sqrt(2)*R/2, R/4, R/8)
# r1
res[1] |> println
sqrt(2)*R/2
# r2
res[2] |> println
R/4
# r3
res[3] |> println
R/8
甲円,乙円,丙円の半径は,半円の直径の 1/√2, 1/4, 1/8 倍である。
半円の半径が 48 寸のとき,甲円,乙円,丙円の半径は 33.94112549695428 寸, 12 寸,6 寸である。
using Colors
function draw(R, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r1, r2, r3) = R .* (1/√2, 1/4, 1/8)
@printf("半円の半径が %g のとき,甲円,乙円,丙円の半径は %g, %g, %g である。\n", R, r1, r2, r3)
plot()
circlef(0, r1, R, parse(Colorant, "#FFF565"), beginangle=180, endangle=360)
circlef(0, -r1, R, parse(Colorant, "#FFF565"), beginangle=0, endangle=180)
circlef(0, 0, r1, parse(Colorant, "#FF8B3E"))
x = [R*cosd(z) for z in 45:0.01:135]
y = [R*sind(z) - r1 for z in 45:0.01:135]
append!(x, reverse(x))
append!(y, -reverse(y))
plot!(x, y, seriestype=:shape, color=parse(Colorant, "#FFFCC4"), fcolor=parse(Colorant, "#FFFCC4"), lw=0.5)
circle2f(R - r3, 0, r3, parse(Colorant, "#F02F22"))
circle2f(r2, 0, r2, parse(Colorant, "#757CF7"))
circle(0, r1, R, :black, beginangle=180, endangle=360)
circle(0, -r1, R, :black, beginangle=0, endangle=180)
circle(0, 0, r1, :black)
circle2(R - r3, 0, r3, :black)
circle2(r2, 0, r2, :black)
rect(-R, -r1, R, r1, :black)
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(0, r1, "半円:R,(0,R/2)", :black, :center, :bottom, delta=delta)
point(R - r3, 0, "丙円:r2,(R-r3,0)", :black, :right, delta=-2delta, deltax=4delta)
point(r2, 0, "乙円:r2,(r2,0)", :black, :center, :bottom, delta=delta)
ylims!(-r1 - 2delta, r1 + 2delta)
end
end;
draw(48, true)
算額(その1582)
福島県田村郡三春町御木沢 厳島神社
三春まちなか寺子屋:厳島神社新算額
https://miharukoma.com/wp-content/uploads/2018/11/12.22厳島神社-新算額.pdf
https://miharukoma.com/wp-content/uploads/2018/12/寺子屋12.22 問題解説.pdf
キーワード:円4個,半円2個,長方形
#Julia, #SymPy, #算額, #和算, #数学
長方形の中に,半円 2 個,乙円 2 個,丙円 2 個を容れる。半円の半径が 48 寸のとき,乙円,丙円の半径はいかほどか。
半円の半径と中心座標を R, (0, R/2)
丙円の半径と中心座標を r3, (R - r3, 0)
乙円の半径と中心座標を r2, (r2, 0)
とおき,以下の連立方程式を解く。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r2, r3
eq1 = r2^2 + (R/2)^2 - (R - r2)^2
eq2 = (R - r3)^2 + (R/2)^2 - (R + r3)^2;
res = solve([eq1, eq2], (r2, r3));
# r2
res[r2] |> println
3*R/8
# r3
res[r3] |> println
R/16
乙円,丙円の半径は,半円の直径の 3/8, 1/16 倍である。
半円の半径が 48 寸のとき,乙円,丙円の半径は 18 寸,3 寸である。
using Colors
function draw(R, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, r3) = (3R/8, R/16)
@printf("半円の半径が %g のとき,乙円,丙円の半径は %g, %g である。\n", R, r2, r3)
plot()
circlef(0, R/2, R, parse(Colorant, "#FFF565"), beginangle=180, endangle=360)
circlef(0, -R/2, R, parse(Colorant, "#FFF565"), beginangle=0, endangle=180)
circle2f(R - r3, 0, r3, parse(Colorant, "#F02F22"))
circle2f(r2, 0, r2, parse(Colorant, "#757CF7"))
circle(0, R/2, R, :black, beginangle=180, endangle=360)
circle(0, -R/2, R, :black, beginangle=0, endangle=180)
circle2(R - r3, 0, r3, :black)
circle2(r2, 0, r2, :black)
rect(-R, -R/2, R, R/2, :black)
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(0, R/2, "半円:R,(0,R/2)", :black, :center, :bottom, delta=delta/2)
point(R - r3, 0, "丙円:r2,(R-r3,0)", :black, :right, delta=-2delta, deltax=-2delta)
point(r2, 0, "乙円:r2,(r2,0)", :black, :center, :bottom, delta=delta/2)
ylims!(-R/2 - 2delta, R/2 + 2delta)
end
end;
draw(48, true)
算額(その1581)
福島県田村郡三春町御木沢 厳島神社
三春まちなか寺子屋:厳島神社新算額
https://miharukoma.com/wp-content/uploads/2018/11/12.22厳島神社-新算額.pdf
https://miharukoma.com/wp-content/uploads/2018/12/寺子屋12.22 問題解説.pdf
キーワード:円4個,半円2個,長方形
#Julia, #SymPy, #算額, #和算, #数学
長方形の中に,半円 2 個,正三角形 4 個,乙円 2 個,丙円 2 個を容れる。半円の半径が 48 寸のとき,乙円,丙円の半径はいかほどか。
半円の半径と中心座標を R, (0, √3R/2)
丙円の半径と中心座標を r3, (R - r3, 0)
乙円の半径と中心座標を r2, (r2, 0)
とおき,以下の連立方程式を解く。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R, r2, r3
eq1 = (R - r3)^2 + (√Sym(3)*R/2)^2 - (R + r3)^2
eq2 = r2^2 + (√Sym(3)*R/2)^2 - (R - r2)^2;
# r2
ans_r2 = solve(eq2, r2)[1]
ans_r2 |> println
R/8
# r3
ans_r3 = solve(eq1, r3)[1]
ans_r3 |> println
3*R/16
乙円,丙円の半径は,半円の直径の 1/8, 3/16 倍である。
半円の半径が 48 寸のとき,乙円,丙円の半径は 6 寸,9 寸である。
using Colors
function draw(R, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, r3) = (R/8, 3R/16)
@printf("半円の半径が %g のとき,乙円,丙円の半径は %g, %g である。\n", R, r2, r3)
plot()
circlef(0, √3R/2, R, parse(Colorant, "#FF8B3E"), beginangle=180, endangle=360)
circlef(0, -√3R/2, R, parse(Colorant, "#FF8B3E"), beginangle=0, endangle=180)
polygon(R/2, R/√3, R/√3, 3, φ=30, color=parse(Colorant, "#FFF565"), fcolor=parse(Colorant, "#FFF565"))
polygon(-R/2, R/√3, R/√3, 3, φ=30, color=parse(Colorant, "#FFF565"), fcolor=parse(Colorant, "#FFF565"))
polygon(R/2, -R/√3, R/√3, 3, φ=210, color=parse(Colorant, "#FFF565"), fcolor=parse(Colorant, "#FFF565"))
polygon(-R/2, -R/√3, R/√3, 3, φ=210, color=parse(Colorant, "#FFF565"), fcolor=parse(Colorant, "#FFF565"))
x = [R*cosd(z) for z in 60:0.01:120]
y = [R*sind(z) - √3R/2 for z in 60:0.01:120]
append!(x, reverse(x))
append!(y, -reverse(y))
circle2f(R - r3, 0, r3, parse(Colorant, "#F02F22"))
plot!(x, y, seriestype=:shape, color=parse(Colorant, "#FFFCC4"), fcolor=parse(Colorant, "#FFFCC4"), lw=0.5)
circle2f(r2, 0, r2, parse(Colorant, "#757CF7"))
circle(0, √3R/2, R, :black, beginangle=180, endangle=360)
circle(0, -√3R/2, R, :black, beginangle=0, endangle=180)
circle2(R - r3, 0, r3, :black)
circle2(r2, 0, r2, :black)
rect(-R, -√3R/2, R, √3R/2, :black)
plot!([-R, 0, R], √3R/2 .* [-1, 1, -1], color=:black, lw=0.5)
plot!([-R, 0, R], √3R/2 .* [1, -1, 1], color=:black, lw=0.5)
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(0, √3R/2, "半円:R,(0,√3R/2)", :black, :center, :bottom, delta=delta/2)
point(R - r3, 0, "丙円:r2\n(R-r3,0)", :black, :center, delta=-delta/2)
point(r2, 0, "乙円:r2,(r2,0)", :black, :left, delta=-5delta)
end
end;
draw(48, true)
算額(その1580)
福島県田村郡三春町御木沢 厳島神社
三春まちなか寺子屋:厳島神社新算額
https://miharukoma.com/wp-content/uploads/2018/11/12.22厳島神社-新算額.pdf
https://miharukoma.com/wp-content/uploads/2018/12/寺子屋12.22 問題解説.pdf
キーワード:円4個,半円2個,正方形
#Julia, #SymPy, #算額, #和算, #数学
正方形の中に半円 2 個,乙円 2 個,丙円 2 個を容れる。半円の半径が 48 寸のとき,乙円,丙円の半径はいかほどか。
半円の半径と中心座標を R, (0, R)
丙円の半径と中心座標を r3, (R - r3, 0)
乙円の半径と中心座標を r2, (R - 2r3 - r2, 0)
とおき,以下の連立方程式を解く。
include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms R::positive, r2::positive, r3::positive
eq1 = (R - r3)^2 + R^2 - (R + r3)^2
eq2 = (R - 2r3 - r2)^2 + R^2 - (R + r2)^2
res = solve([eq1, eq2], (r2, r3))[1]
(R/12, R/4)
乙円,丙円の半径は,半円の半径の 1/12, 1/4 倍である。
半円の半径が 48 寸のとき,乙円,丙円の半径は 4 寸,12 寸である。
using Colors
function draw(R, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(r2, r3) = (R/12, R/4)
@printf("半円の半径が %g のとき,乙円,丙円の半径は %g, %g である。\n", R, r2, r3)
plot()
circlef(0, R, R, parse(Colorant, "#FFF565"), beginangle=180, endangle=360)
circlef(0, -R, R, parse(Colorant, "#FFF565"), beginangle=0, endangle=180)
circle2f(R - r3, 0, r3, parse(Colorant, "#F02F22"))
circle2f(R - 2r3 - r2, 0, r2, parse(Colorant, "#757CF7"))
circle(0, R, R, :black, beginangle=180, endangle=360)
circle(0, -R, R, :black, beginangle=0, endangle=180)
circle2(R - r3, 0, r3, :black)
circle2(R - 2r3 - r2, 0, r2, :black)
rect(-R, -R, R, R, :black)
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(0, R, "半円:R,(0,R)", :black, :center, :bottom, delta=delta/2)
point(R - r3, 0, "丙円:r2\n(R-r3,0)", :black, :center, delta=-delta/2)
point(R - 2r3 - r2, 0, "乙円:r2,(R-2r3-r2,0)", :black, :right, delta=-3delta)
end
end;
draw(48, true)