背後的物理
忽略空氣阻力時,物體只受重力,水平方向不受力(等速度運動),鉛直方向是加速度為 \(-g\) 的等加速度運動。兩個方向各自獨立:
\[ x = v_0\cos\theta\, t, \qquad y = h_0 + v_0\sin\theta\, t - \tfrac{1}{2} g t^{2} \]
\[ v_x = v_0\cos\theta, \qquad v_y = v_0\sin\theta - g t \]
消去時間 \(t\),軌跡是一條開口向下的拋物線:
\[ y = h_0 + x\tan\theta - \frac{g\,x^{2}}{2 v_0^{2}\cos^{2}\theta} \]
從地面發射(\(h_0 = 0\))時,飛行時間、最大高度與水平射程為:
\[ T = \frac{2 v_0 \sin\theta}{g}, \qquad H = \frac{v_0^{2}\sin^{2}\theta}{2g}, \qquad R = \frac{v_0^{2}\sin 2\theta}{g} \]
從高度 \(h_0\) 發射時,飛行時間是 \(h_0 + v_0\sin\theta\,t - \tfrac12 g t^2 = 0\) 的正根,射程最大的仰角 \(\theta^{*}\) 也有公式:
\[ T = \frac{v_0\sin\theta + \sqrt{v_0^{2}\sin^{2}\theta + 2 g h_0}}{g}, \qquad R = v_0\cos\theta\, T \]
\[ \tan\theta^{*} = \frac{v_0}{\sqrt{v_0^{2} + 2 g h_0}}, \qquad R_{\max} = \frac{v_0}{g}\sqrt{v_0^{2} + 2 g h_0} \]
加入空氣阻力時,阻力與速度反向、大小與速率平方成正比(\(k = \tfrac12 \rho C_D A\)),運動方程式沒有簡單的公式解,只能數值求解:
\[ \vec{a} = -g\,\hat{y} - \frac{k}{m}\,|\vec{v}|\,\vec{v}, \qquad v_t = \sqrt{\frac{mg}{k}} \]
觀察重點
- 互補角射程相等:\(h_0 = 0\)、無阻力時,先用 \(30^\circ\) 發射,再改成 \(60^\circ\) 發射,兩次落點相同,因為 \(\sin 2\theta = \sin(180^\circ - 2\theta)\)。比較紀錄中的最大高度與飛行時間,哪一個比較大?
- 45° 射程最大:\(h_0 = 0\) 時 \(\sin 2\theta\) 在 \(\theta = 45^\circ\) 最大。把 \(h_0\) 調高,看看「射程最大的仰角」怎麼變?(會小於 \(45^\circ\))
- 水平與鉛直運動互相獨立:打開等時距標記,相鄰標記的水平間距都相等(\(v_x\) 不變),鉛直間距則逐漸改變。速度分量 \(v_x\) 的箭頭長度始終不變。
- 水平拋射:把仰角調成 \(0^\circ\)、\(h_0 = 20\ \mathrm{m}\),改變初速多發射幾次——落地時間都是 \(\sqrt{2h_0/g}\),只有射程不同。
- 換一個星球:同樣的初速與仰角,在月球上射程與最大高度約是地球的 \(9.8/1.62 \approx 6\) 倍,因為 \(R\)、\(H\)、\(T\) 都與 \(g\) 成反比。
- 力學能守恆:無阻力時,\(\tfrac12 v^2 + g y\) 在整個飛行過程中保持不變;有阻力時則持續減少,減少的部分轉換為熱能。
- 空氣阻力的影響:射程與最大高度都變小,軌跡不再左右對稱——下降段比上升段陡、也比較久。這時射程最大的仰角會低於 \(45^\circ\),阻力越大偏離越多。(月球沒有大氣,在月球上開啟阻力只是假想比較。)
模擬方法
- 無阻力時,飛行時間、射程、最大高度與最佳仰角直接用上面的公式計算(解析解)。
- 有阻力時,以四階 Runge–Kutta 法(RK4)積分運動方程式,時間步長取理想飛行時間的千分之一(介於 0.1 ms 到 10 ms);最後一步再用二分法找出 \(y = 0\) 的精確落地時刻,最高點則找 \(v_y = 0\) 的時刻。
- 有阻力時,射程最大的仰角以黃金分割搜尋在 \(0^\circ\)~\(90^\circ\) 之間找出。
- 動畫使用同一套 RK4 積分器逐格推進;在等加速度的情況下 RK4 沒有截斷誤差,所以無阻力的動畫會準確落在解析解預測的位置,力學能也保持不變。
- 物體視為質點,不考慮旋轉(馬格努斯效應)與風;\(g\) 視為定值。
參考資料