振り子を遠くに飛ばすには

知恵袋で質問された思いつき問題。おもしろそうなので、条件を絞って考察してみた。

【問題】

軽くて伸びない糸で支点につりさげた振り子を水平位置まで持ち上げて放す。途中で糸を切っておもりを放物運動をさせるとして、できる限り遠くに飛ばすにはどこで糸を切ればよいか。ただし、最下点を基準水平面の高さとし、空気抵抗は無視できるものとする。

f:id:yokkun831:20220131214243p:plain
Algodooシミュレーション(振り子は面倒なので円筒面を途中で切った)

Algodooシーンのダウンロード
https://img.atwiki.jp/yokkun/attach/1/1494/tooku-ni-tobasu.phz

【解答】

糸を切る位置を最下点から中心角 \theta の位置とする。
糸の長さを r とすると力学的エネルギー保存により

\displaystyle\frac{1}{2} mv^2 = mgr\cos\theta
 → v = \sqrt{2gr\cos\theta}

最下点を原点として x-y 軸を設定する。
投射される位置 (x_0, y_0) とすると、
x_0 = r \sin\theta\\
y_0 = r(1 - \cos\theta)

投射してから時間 t 後の位置 (x,y)
x = x_0 + v\cos\theta\cdot t\\
y = y_0 + v\sin\theta\cdot t - \displaystyle\frac{1}{2} gt^2

y=0 を解くと
t = \displaystyle\sqrt{\frac{2r\cos\theta}{g}}\cdot\sin\theta\left(1 + \sqrt{\frac{1 - \cos^3\theta}{\cos\theta\sin^2\theta}}\right)

最下点からの水平到達距離 x
\displaystyle\frac{x}{r} = \sin\theta + 2\cos^2\theta\sin\theta\left(1 + \sqrt{\frac{1 - \cos^3\theta}{\cos\theta\sin^2\theta}}\right)

微分するのは面倒なので \theta の関数としてグラフを描かせたところ、
\theta = 41.0°
で最大となった。シミュレーションも概ねこれを支持しているようだ。
f:id:yokkun831:20220131220330p:plain