ボール投げ

Throw a ball

$v_0=$, $\theta=$$\times\dfrac{\pi}{180}$, $g=$, View trajectory:

解説

力学でよくある問題設定の,ボール投げのシミュレーションです.この場合の運動方程式はただの線型常微分方程式になるので,解をそのまま描いているだけに過ぎません.

時刻を $t$, 前方方向を $x$, 鉛直上向きを $y$ として,質量 $m$ のボールの位置 $\boldsymbol r(t)= \begin{pmatrix} x(t)\\ y(t) \end{pmatrix}$ を考えます.原点の位置から初速度 $v_0$ で地平に対して角度 $\theta$ で投げるとすると,初速度を与えて以降のボールにかかる力は(空気抵抗を無視すると)重力だけであることから,ボールの運動は2階の線型常微分方程式 \begin{align} &m\frac{\mathrm{d}^2 \boldsymbol r}{\mathrm{d}t^2} = \begin{pmatrix} 0\\ -mg \end{pmatrix},\\ &\boldsymbol r(0)=\boldsymbol 0,\quad \frac{\mathrm{d}\boldsymbol r}{\mathrm{d}t}(0)= \begin{pmatrix} v_0\cos\theta\\ v_0\sin\theta \end{pmatrix}, \end{align} で記述できます.ここで,$g$ は重力加速度です.この初期値問題は簡単に解けて, \[ \boldsymbol r(t)= \begin{pmatrix} v_0t\cos\theta\\ v_0t\sin\theta-gt^2/2 \end{pmatrix}. \] よって,この $\boldsymbol r(t)$ の位置を各 $t$ 毎に順に描いていけばボール投げのシミュレーション(アニメーション)が完成することになります.よく「最も遠くまで投げられる角度を求めよ」という問題がありますが,実際の運動を見てみればより納得いくことでしょう.

ソースコード