先日公開した斜方投射シミュレータでは、初速・投射角・空気抵抗係数をスライダーで変えながら、ボールが描く放物線をその場で確認できます。
発射する前に「最高点の高さは?」「どこまで飛ぶ?」を予想してから撃つと、教科書の公式がどれくらい当たっているかが体感できて面白いのですが、せっかくなので「なぜその公式になるのか」を、高校で習うニュートン力学だけを使って一歩ずつ導いてみようと思います。
1. 斜方投射を「初期値問題」として立てる
地面から、初速 \(v_0\)、水平から測った角度 \(\theta\) でボールを投げ出す場面を考えます。
空気抵抗を考えない(シミュレータでいう空気抵抗係数 \(k=0\) の)場合、飛んでいる間にボールが受ける力は重力だけです。
ここで大事なのは、
水平方向と鉛直方向は、互いに影響しない2つの別々の運動として扱える
という点です。重力は鉛直下向きにしか働かないので、水平方向には加速度を生みません。この「独立性」こそが、斜方投射を難しくしすぎずに解ける理由です。
初速を成分分解すると、
\[
v_x = v_0 \cos\theta, \qquad v_{y0} = v_0 \sin\theta
\]
となります。あとはこの2方向それぞれに、ニュートンの運動方程式 \(F=ma\) を立てるだけです。
2. 加速度を2回積分して、速度と位置を求める
水平方向は力を受けないので加速度0、鉛直方向は重力加速度 \(g\)(下向き)だけがかかります。
\[
a_x = 0, \qquad a_y = -g
\]
加速度は速度の時間微分なので、これを時刻0から積分すると速度が求まります。
\[
v_x(t) = v_x, \qquad v_y(t) = v_{y0} – g t
\]
さらにもう一度積分すると、位置が求まります。
\[
x(t) = v_x t, \qquad y(t) = v_{y0} t – \frac{1}{2} g t^2
\]
これが、教科書に載っている斜方投射の運動方程式です。数値計算に頼らず、微分方程式 \(a=dv/dt\)、\(v=dx/dt\) をそのまま2回積分するだけで導けます。シミュレータも \(k=0\) のときはこの閉じた式(解析解)をそのまま使っていて、数値積分による誤差が一切乗らないようになっています。
3. 最高点の高さ H を求める
最高点とは、ボールの上昇が止まって落下に転じる瞬間、つまり鉛直方向の速度がちょうど0になる瞬間です。
\[
v_y(t) = v_{y0} – g t = 0
\quad\Longrightarrow\quad
t_{\text{top}} = \frac{v_{y0}}{g}
\]
この時刻を \(y(t)\) の式に代入すれば、最高点の高さが出ます。
\[
H = v_{y0} t_{\text{top}} – \frac{1}{2} g t_{\text{top}}^2 = \frac{v_{y0}^2}{2g}
\]
\(v_{y0} = v_0 \sin\theta\) を戻すと、見慣れた形になります。
\[
H = \frac{v_0^2 \sin^2\theta}{2g}
\]
最高点の高さを決めているのは、初速のうち鉛直成分だけだということが、この式からわかります。水平方向にどれだけ速く投げても、高さには一切関係しません。
4. 水平到達距離 R と、45°で最大になる理由
次に、ボールが地面(\(y=0\))に戻ってくる時刻を求めます。\(y(t)=0\) を解くと、
\[
v_{y0} t – \frac{1}{2}g t^2 = t\left(v_{y0} – \frac{1}{2}g t\right) = 0
\]
\(t=0\)(発射の瞬間)はもちろん解ですが、欲しいのはもう一つの解です。
\[
t_{\text{land}} = \frac{2 v_{y0}}{g} = 2\, t_{\text{top}}
\]
落下時刻が最高点到達時刻のちょうど2倍になるのは、放物線が左右対称だからです。上りにかかる時間と、下りにかかる時間は等しくなります。
この時刻を、水平方向の等速運動の式 \(x(t) = v_x t\) に入れると、水平到達距離が求まります。
\[
R = v_x t_{\text{land}} = v_0\cos\theta \cdot \frac{2 v_0 \sin\theta}{g} = \frac{2 v_0^2 \sin\theta\cos\theta}{g}
\]
ここで、三角関数の倍角公式 \(2\sin\theta\cos\theta = \sin 2\theta\) を使うと、
\[R = \dfrac{v_0^2 \sin 2\theta}{g}\]
という、シミュレータの理論値パネルにも表示される式が出てきます。
この式を見ると、\(R\) が最大になるのは \(\sin 2\theta\) が最大値1を取るとき、つまり \(2\theta = 90°\)、
\[
\theta = 45°
\]
のときだと、すぐにわかります。微分してゼロと置く必要すらなく、\(\sin\) の最大値がどこにあるかを知っていれば導ける結論です。シミュレータの角度スイープモードで角度を0〜90°まで動かすと、到達距離のグラフがちょうど45°で山を作るのは、この式の帰結をそのまま数値で追体験しているわけです。
5. 軌道を \(y = f(x)\) の形で見る — 平方完成で全体を俯瞰する
ここまでは、時刻 \(t\) を経由して \(H\) と \(R\) をそれぞれ別々に求めました。実は、\(t\) を消去して \(y\) を \(x\) だけの関数として書き直すと、最高点と到達距離が1つの式から同時に見えてきます。
\(x(t) = v_x t\) なので、\(t = x / v_x\) です。これを \(y(t)\) の式に代入します。
\[
y(x) = \frac{v_{y0}}{v_x} x – \frac{g}{2 v_x^2} x^2
\]
\(v_{y0}/v_x = \tan\theta\)、\(v_x = v_0\cos\theta\) なので、
\[
y(x) = x\tan\theta – \frac{g}{2v_0^2\cos^2\theta}\,x^2
\]
\(x\) の2次関数、つまり軌道が放物線であることがそのまま式に表れています。この \(x^2\) の係数を \(a = g/(2v_0^2\cos^2\theta)\) と置いて平方完成すると、
\[
y(x) = -a\left(x – \frac{\tan\theta}{2a}\right)^2 + \frac{\tan^2\theta}{4a}
\]
となります。ここで \(\tan\theta/(2a)\) と \(\tan^2\theta/(4a)\) を計算すると、それぞれ前節までに求めた \(R\) と \(H\) にきれいに一致します(\(\tan\theta/(2a) = v_0^2\sin\theta\cos\theta/g = R/2\)、\(\tan^2\theta/(4a) = v_0^2\sin^2\theta/(2g) = H\))。つまり、
\[y(x) = -\dfrac{g}{2v_0^2\cos^2\theta}\left(x – \dfrac{R}{2}\right)^2 + H\]
という、放物線の頂点(最高点)の座標がちょうど \((R/2,\ H)\) になる式が出てきます。
平方完成した式は下に凸な項 \(-a(x-\cdots)^2\) が常に0以下なので、頂点で \(y\) が最大値 \(H\) を取ることが一目でわかります。さらに、放物線は頂点を軸にして左右対称なので、\(x=0\) で \(y=0\)(発射点)であれば、もう一方の \(y=0\) はちょうど頂点の2倍の位置、\(x=R\)(着地点)になることも、方程式を別途解き直さずに読み取れます。第3節・第4節で時刻を経由して別々に求めた \(H\) と \(R\) が、実は同じ1本の放物線の「高さ」と「対称性」という、たった2つの性質から同時に出てくるわけです。
6. 到達距離をθで微分して、π/4 が最大値を与えることを確かめる
第4節では「\(\sin\) の最大値が1であることを知っていれば、\(\theta=45°\) だとすぐわかる」という説明をしました。これは正しいのですが、\(\sin\) の最大値を持ち出さずに、素直に微分でも同じ結論を確かめられます。
到達距離 \(R\) を、\(v_0\) と \(g\) を固定したまま \(\theta\) だけの関数とみなします。
\[
R(\theta) = \frac{v_0^2 \sin 2\theta}{g}
\]
これを \(\theta\) で微分します(合成関数の微分で、\(2\theta\) の微分係数2が前に出てきます)。
\[
\frac{dR}{d\theta} = \frac{2v_0^2}{g}\cos 2\theta
\]
極値の候補は、この導関数が0になるところです。
\[
\cos 2\theta = 0
\quad\Longrightarrow\quad
2\theta = \frac{\pi}{2}
\quad\Longrightarrow\quad
\theta = \frac{\pi}{4}\ (=45°)
\]
ただし、導関数が0になる点は「極値の候補」でしかなく、それが本当に最大値かどうかは別途確認が必要です。そこで2階微分を計算します。
\[
\frac{d^2R}{d\theta^2} = -\frac{4v_0^2}{g}\sin 2\theta
\]
\(\theta=\pi/4\) のとき \(\sin 2\theta = \sin(\pi/2) = 1\) なので、
\[\left.\frac{d^2R}{d\theta^2}\right|_{\theta=\pi/4} = -\frac{4v_0^2}{g} < 0\]
となり、上に凸(=極大)であることが確認できます。\(R'(\theta)=0\) を解くだけでなく \(R”(\theta)<0\) まで確かめて初めて、\(\theta=\pi/4\) が最小値や単なる変曲点ではなく、確かに到達距離を最大にする角度だと言い切れます。
この「微分してゼロと置く」というアプローチは汎用性が高い一方、\(R(\theta)\) が明示的な閉じた式で書けていることが前提です。次節で見るように、空気抵抗が入って \(R(\theta)\) の閉じた式そのものが失われると、この微分アプローチも使えなくなります。シミュレータの角度スイープモードが、角度を虱潰しに数値で走査して最大値を探しているのは、まさに「微分できない」状況を数値的に代替するためです。
7. 空気抵抗を入れると何が起きるか
ここまでの \(H\) と \(R\) の式は、空気抵抗を無視した理想的な世界の話でした。シミュレータの空気抵抗係数 \(k\)(1/m、質量・抗力係数・断面積・空気密度をまとめて1つにした抽象的な係数)を0より大きくすると、様子ががらりと変わります。
空気抵抗は、速度の向きと逆向きに、速さの2乗に比例した力として働きます(2乗抵抗)。加速度の式で書くと、
\[
a_x = -k|v|v_x, \qquad a_y = -g – k|v|v_y, \qquad |v| = \sqrt{v_x^2 + v_y^2}
\]
となります。\(|v|\) の中に \(v_x\)、\(v_y\) の両方が入っているせいで、水平方向と鉛直方向の運動がもう独立ではなくなります。第1節で使った「2つの別々の運動に分解する」というトリックが使えなくなるのです。
この非線形な微分方程式には、\(k=0\) のときのような「積分してハイ終わり」の閉じた式(解析解)が存在しません。そこでシミュレータは、RK4(4次のルンゲ・クッタ法)という数値積分に切り替えます。ごく短い時間刻みごとに加速度を4回評価して重み付き平均を取り、位置と速度を少しずつ前に進めていく方法です。これを繰り返すことで、解析的には解けない軌道を精度よく近似できます。
その結果、理論値パネルに表示される \(H = v_0^2\sin^2\theta / 2g\) や \(R = v_0^2\sin 2\theta / g\) という「空気抵抗なしの公式値」と、実際のシミュレーション結果は意図的にズレます。抵抗があるぶん、ボールは理論値より手前で落ちます。
さらに、角度スイープモードで \(k>0\) にすると、到達距離が最大になる角度が45°よりも小さい方へずれていきます。これも直感的に説明できます。
角度を上げるほど滞空時間が延び、抵抗を受け続ける時間も長くなる
からです。抵抗がない世界では「高く長く飛ばす」ことに何のコストもありませんが、抵抗がある世界では、飛んでいる時間そのものが速度を奪われ続ける代償になります。そのため、45°よりやや低い角度で水平方向の初速を稼いだほうが、結果的に遠くまで飛ぶようになります。
まとめ
| 力学の操作 | 対応する結果 |
| 加速度 \(a_x=0, a_y=-g\) を1回積分 | 速度 \(v_x, v_{y0}-gt\) |
| 速度をもう1回積分 | 位置 \(x(t), y(t)\) |
| \(v_y(t)=0\) を解く | 最高点の高さ \(H=v_0^2\sin^2\theta/2g\) |
| \(y(t)=0\) を解き、倍角公式を使う | 水平到達距離 \(R=v_0^2\sin2\theta/g\) |
| \(t\) を消去して \(y(x)\) を平方完成 | 頂点が \((R/2,\ H)\)。\(H\) と \(R\) を1本の式で同時に確認 |
| \(R(\theta)\) を微分し \(R'(\theta)=0,\ R”(\theta)<0\) を確認 | 最適角 \(\theta=\pi/4\)(45°)を厳密に導出 |
| \(\sin2\theta\) が最大になる角度 | 最適角 \(\theta=45°\)(空気抵抗なしのとき) |
| 抵抗により運動が非線形化・独立性が崩れる | 解析解が使えず、RK4数値積分に切り替え/最適角が45°未満にずれる |
斜方投射のおもしろさは、\(F=ma\) というたった1本の式を2方向に分解して積分するだけで、\(H\) や \(R\) といった教科書の公式が、天下りではなくちゃんと導出できるところにあると思います。しかも、その公式は時間経由・軌道の形(平方完成)・微分による極値探索と、複数の切り口から同じ結論にたどり着けます。そして空気抵抗を1つ加えるだけで、その「きれいな独立性」が崩れ、数値計算に頼らざるを得なくなる過程も、力学の面白さの一部です。
ぜひシミュレータで角度や空気抵抗係数を動かしながら、この記事の式と見比べてみてください。
最後まで読んでいただきありがとうございます。ご質問やコメントはお問い合わせからよろしくおねがいします。