銃弾は真上に撃つとどの位の高さまで届くか

とあるまとめサイトでピストルを真上に撃つと銃弾がどのくらいまでの高さまでいくのかというスレがまとめられていたが明確な回答がなかったので、その高さとついでに地面に戻った時にどのくらいの速さなのかというのを考えていきたい。

ただ漫然と考えても答えにたどり着かなさそうなのでいくつかの仮定をする

1. 空気抵抗は速さの二乗に比例して、その係数 kk = Cd ρ S/ 2 で与えられる。ここで ρ は空気の密度、Cd は抗力係数、S は銃弾の断面積である。

2. 銃弾は直径 9mm の球 ( S = πr^2, r = 4.5 mm となる) で質量 m は 8.5 gとする。上記の抗力係数は Cd ≃ 0.5 とする。 

3. 銃弾の初速 v0 は 360 m/s とする。

4. 重力加速度は一定 ( g = 9.80665 m/s^2 ) とする。(もし銃弾の到達距離が地球の半径に対して無視できないときにはU(r)=-GmM/rを使って考え直す)

5. 空気の密度は高さによらず一定で ρ = 1.166 kg/m^3とする (参考 : 

■ 各種物質の性質: 気体の性質 )

 

さて、このような条件のもとで、まずは銃弾を真上に撃つときを考える。銃弾を真上に撃った時に頂上に届くまでの運動方程式

\begin{align*}
m\frac{{\rm d}v}{{\rm d} t} = -kv^2-mg
\end{align*}

となる。ここで v は銃弾の速度、t は時間で、 t = 0 のときは v = v0 であり、速度は上向きが正になっている。この微分方程式積分して解くと

\begin{align*}
\frac{1}{v_f}\arctan(v/v_f) = -\frac{k}{m}t+C
\end{align*}

となる。ここで C積分定数、 \begin{align*}
v_f =\sqrt{mg/k}
\end{align*} である (これは落下する際の終端速度になっている)。t = 0 のときは v = v0 なので

と求められる。上記の方程式を v について解くと

 

さて、銃弾が頂点についたときの時刻を T とすると、その時 v = 0 となるので T は次のように求められる。

 

v を時間 t に関して 0 から T まで積分すると求めるべき高さ h が計算でき、その表式は

\begin{align*}
h = \int_0^Tv \ {\rm d} t = -\frac{m}{k}\log\left(\cos\left(\arctan(v_0/v_f\right)\right)
\end{align*}

となる。この式の右辺に上で仮定した諸々の値を代入すると h = 778.19 mとなる(この大きさなら地球の半径 R ≃ 6371km に比べて無視できるので重力加速度は一定という近似でも良いことがわかる) 。また、T ≃ 9.48 s となっていて、このくらいの時間で頂点に到達する。 ちなみに、空気抵抗がない場合は h = v0^2 / 2g で与えられその値は 6.6 km 程度なので空気抵抗が大きな役割をはたしていることがわかる。

 

次に銃弾が頂上に行ってから地面に戻ってくるまでの運動について考える。ここで簡単のために銃弾が頂上にいるときの時刻を t = 0 と取り直す。このときの運動方程式

\begin{align*}
m\frac{{\rm d}v}{{\rm d} t}=mg-kv^2
\end{align*}

である。ここで速度は下向きを正になるように取り直している。t = 0 のとき v = 0 であることに注意してこの微分方程式を解くと

\begin{align*}
\log\left(\frac{v_f-v}{v+v_f}\right) & =-2v_f\frac{k}{m}t 
\end{align*}

となり (ここで vf > v を使っている。実際 x-v 図で微分方程式のフローを描くと v > 0 のときには v = vf がアトラクタになっていて v vf を超えることがないことが理解できる)、これを v について解くと

\begin{align*}
v = v_f\tanh\left(v_f\frac{k}{m}t\right)
\end{align*}

となる。これを時間について積分することで変位 x が計算でき、その表式は

\begin{align*}
x = \int_0^tv_f\tanh\left(v_f\frac{k}{m}s\right){\rm d}s = \frac{m}{k}\log\cosh\left(v_f\frac{k}{m}t\right) \label{calcx}
\end{align*}

となる。銃弾が地面にもどってくる時間が Tg であるとすると t = Tgx = h となるのでこれから Tg を計算することができ、その表式は

\begin{align*}
T_g = \frac{m}{v_fk}\mathrm{arccosh}\left(\frac{1}{\cos\left(\arctan(v_0/v_f)\right)}\right)
\end{align*}

となる。これを v の表式に代入すると、銃弾が戻ってきたときの速さを求めることができる。諸々の値を代入すると Tg ≃16.29 sとなり、銃弾が戻ってきたときの速さは v ≃ 65.91 m/s となる。これは時速に直すと 237 km/h となる。元々の初速が360 m/s だったので、空気抵抗でかなり速さが小さくなることがわかる。ちなみに、上で求めた距離や速さの値はRunge-Kutta法を使った数値計算でも同じ値になることを確かめた。

 

以上の計算から銃弾を真上に撃つと上記のパラメータでは到達する高さは 778.19 m であり、初速 360 m/s で撃つと 66 m/s で戻ってくることが分かった。ちなみに銃弾を撃ってから戻ってくるまでに 25.77 s ほどかかる。実際は銃弾は球体でないし、上記で考えたこと以外にも横風など様々な要因が関わるので値はずれるがそこまで大きくは変わらないと思うので参考程度にはなるように思う。また、空気の粘性による速度に比例する空気抵抗が入っても、変数変換すると同じように解析的な計算ができる(たいして数式も変わらず、数値計算したパラメータだと値があまり変わらず、面倒臭いからやらないが…)。