裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

数学問題を解きましたということなんだが

2021年02月19日 | ブログラミング

曲線 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

数値計算で解を示すなら,二分法かニュートンラフソン法で求解するのが常套手段かな?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村