算額(その1597)
宮城県角田市小田字斗蔵 斗蔵寺 明治42年(1909)
https://tajin.shiriagari.com/framepage5000.htm
(リンク先の左のインデックスから選択)
深川英俊,トニー・ロスマン:聖なる数学:算額,p. 116,森北出版株式会社,2010年4月22日.
キーワード:面積,最大値
#Julia, #SymPy, #算額, #和算, #数学
直角三角形において,鈎を一辺として,股の一部を共有する正方形を描く。弦と正方形の一辺の交点を一つの頂点とする直角三角形の面積(黒積と呼ぼう)を考える。股が 12 寸のとき,黒積が最大となるときの鈎はいかほどか。
鈎,股,黒積をそのまま変数名とする。
正方形の一辺と弦の交点座標を (鈎, y) とする。
include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf
using SymPy
@syms 股, 鈎, y, 黒積
eq1 = (股 - 鈎)*y/2 - 黒積
eq2 = y/(股 - 鈎) - 鈎/股
res = solve([eq1, eq2], (黒積, y));
res[黒積] |> println # 黒積は鈎と股の関数
(股^2*鈎 - 2*股*鈎^2 + 鈎^3)/(2*股)
股が 12 のときの,鈎と黒積の関係は下図のようになる。
pyplot(size=(300, 200), grid=false, aspectratio=:none, label="", fontfamily="IPAMincho")
plot(res[黒積](股 => 12), xlims=(0, 12), xlabel="鈎", ylabel="黒積")
g = diff(res[黒積], 鈎); # 導関数
g |> println
(股^2 - 4*股*鈎 + 3*鈎^2)/(2*股)
ans_g = solve(g, 鈎)[1]; # 1 of 2 # 導関数 = 0 (黒積が最大)になる 鈎 を求める
ans_g |> println
股/3
鈎が股の 1/3 になるとき,黒積は最大となる。
股 = 12, 鈎 = 股/3 = 4 のとき,黒積は最大値 32/3 となる。
res[黒積](鈎 => 股/3, 股 => 12) |> println # 黒積の最大値
res[黒積](鈎 => 股/3, 股 => 12).evalf() |> println
股^3/648 - 股^2/9 + 2*股
0.00154320987654321*股^3 - 0.111111111111111*股^2 + 2.0*股
function draw(股, more=false)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
鈎 = 股/3
plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:green, lw=0.5)
plot!([0, 鈎, 鈎, 0, 0], [0, 0, 鈎, 鈎, 0], color=:blue, lw=0.5)
segment(0, 鈎, 股, 0, :black)
y = (股*鈎 - 鈎^2)/股
plot!([鈎, 股, 鈎, 鈎], [0, 0, y, 0], seriestype=:shape, color=:gray80, fillcolor=:gray80, 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(鈎, 鈎, " (鈎,鈎)", :red, :left, :vcenter)
point(鈎, y, " (鈎,y)", :red, :left, :bottom, delta=delta/2)
point(股, 0, "鈎", :red, :left, :bottom, delta=delta/2, deltax=0.7delta)
end
end;
draw(12, true)