曲線 y = x^3 上に,点 A(-1, -1),B(1, 1),P(t, t^3) を置く。ただし,0 < t < 1。
直線 AP と x 軸のなす角を α,直線 PB と x 軸のなす角を β とする。
tan α,tan β を t を用いて表せ。ただし,0 < α < π/2, 0 < β < π/2 とする。
tan∠APB を t を用いて表せ。
tan∠APB を最小にする t の値を求めよ。
using Plots
x = -1.1:0.01:1.1
y = x .^ 3;
p = plot(x, y, xlabel="\$x\$", ylabel="\$y\$", label="",
xlims=(-1.5, 1.5), ylims=(-1.1, 1.1),
size=(600, 400), aspect_ratio=1);
x2 = [-1, 0.5, 1];
y2 = x2 .^ 3;
plot!(x2, y2, label="", linecolor=:black);
scatter!(x2, y2, label="", markercolor=:black);
annotate!(-0.65, -1, text("\$A(-1, -1)\$", 10));
annotate!(1.2, 1, text("\$B(1, 1)\$", 10));
annotate!(0.7, 0.4^3, text("\$P(t, t^3)\$", 10));
annotate!(-0.25, 0.15, text("\$y = x^3\$", :blue, 15));
display(p)
例のごとく,詰めが甘い。
問題 1 は,図を描いて,tangent の定義をそのまま書けばよいと。
α = atan((1-t^3)/(1-t))
β = atan((1+t^3)/(1+t))
simplify() してもよいけど...
問題2 は,求める θ を 問題 1 の α,β を用いて表すだけ(ちょっと,混乱するけど)
その後は,手計算でやるんだろうけど,SymPy を使ってずるをする。
using SymPy
@syms θ α β t
# 問題 1
# α = atan((1-t^3)/(1-t)) 後に示すように,simplify してもよいけどそのまま
# β = atan((1+t^3)/(1+t))
# 問題 2
θ = π + atan((1-t^3)/(1-t)) - atan((1+t^3)/(1+t))
# 導関数
diff(θ)
# 導関数 = 0 つまり,接線が 0 になるところを求める
solve(diff(θ))
# 以下の内 0 < t < 1 を満たすのは
sqrt(6)/3
# 上のでもよいが,単に数値計算して
0.8164965809277259
# α,βを簡約して,以下のようにも
simplify((t^3+1)/(t+1))
# α = t^2-t+1
simplify((1-t^3)/(1-t))
# β = t^2-t+1
θ = π + atan(t^2-t+1) - atan(t^2+t+1)
diff(θ)
a = solve(diff(θ))
a[1].evalf()
# −0.816496580927726
a[2].evalf()
# 0.816496580927726
数値計算で解を示すなら,二分法かニュートンラフソン法で求解するのが常套手段かな?