---
# System prepended metadata

title: 拋體運動

---

# 拋體運動
鄭兆村於2017年代表中華隊出賽台北世大運男子標槍項目，於決賽中擲出91公尺36的成績勇奪金牌，想起助教當時看著電視直播時也是熱血沸騰。由於台北世大運的優異表現，令鄭兆村獲得「亞洲標槍王」的美名。

想必同學都知道，擲標槍所套用到的原理便是平拋運動，然而看似複雜的平拋運動並不難理解。由於運動的獨立性，我們可以分開成水平運動與鉛直運動來討論。

首先我們從水平運動來著手，由於水平方向物體沒有加速度，故水平速度永遠保持初水平速度。我們可以寫成：
![](https://i.imgur.com/wrh6R1w.png)

(其中x為末水平位置，x0為初水平位置，v0為初速度，θ0為初角度，t為所經時間)

接著是鉛直運動，因其加速度恆等於重力加速度，故可視為自由落體運動。我們可以寫成：
![](https://i.imgur.com/bCOixy8.png)

(其中y為末鉛直位置，y0為初鉛直位置，v0為初速度，θ0為初角度，t為所經時間，g為重力加速度)

有了以上的充要條件，我們便可以開始進行模擬平拋運動(不考慮空氣阻力，初始高度為100m，初速為20m/s)：
```python
import matplotlib.pyplot as plt

g = 9.8
vx = 20
vy = 0

x = 0
y = 100
t = 0
dt = 0.001

xx = []
yy = []
tt = []
```

設定好初始參數後，進入模擬部分：
```python
while y >= 0:
    vy -= g*dt
    x += vx*dt
    y += vy*dt
    xx.append(x)
    yy.append(y)
    t += dt

```
接著將最終結果顯示出來：
```python
print('水平距離為：',end='')
print(x,end='')
print('(m)')

plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.grid()
plt.plot(xx, yy)
plt.show()
```
我們便能得到此平拋運動之軌跡圖：
![](https://i.imgur.com/d8yASvz.png)

同時將水平末位置(意即水平射程)給打印出來：

`水平距離為：90.35999999999916(m)`

## 延伸學習：非理想拋體運動
現在我們學會了拋體運動模擬的基礎概念，然而例題中我們是將空氣阻力忽略不計，進而得到理想化的狀況。

想必各位同學也曉得，真實世界中是無法將空氣阻力省略的，因此接下來我們將要學習如何將空氣阻力考慮進拋體運動。

若考慮空氣阻力，則我們同樣以水平及鉛直方向來討論，以水平方向而言：
![](https://i.imgur.com/n61mirK.png)


(其中Fx為水平方向合力，vx為水平速度)

以鉛直方向而言：
![](https://i.imgur.com/Zogdx6s.png)

(其中Fy為鉛直方向合力，vy為鉛直速度)

將以上兩式取其微分方程可得：
![](https://i.imgur.com/7AUJJxZ.png)


得到以上的關係式後我們便能進行模擬，首先同樣將參數先設定好：
```python
import matplotlib.pyplot as plt

p = 1.29   #空氣密度
A = 0.01   #物體截面積
m = 1   #物體質量
C = 0.47   #阻力係數
g = 9.8   #重力加速度
vx = 20   #水平初速
vy = 0   #鉛直初速

x = 0   #水平初位置
y = 100   #鉛直初位置
t = 0
dt = 0.0001

xx = []
yy = []
tt = []
```
接著進行模擬：
```python
while y >= 0:
    ax = C*p*A*vx**2/(2*m)
    ay = g - C*p*A*vy**2/(2*m)
    vx -= ax*dt
    vy -= ay*dt
    x += vx*dt
    y += vy*dt
    xx.append(x)
    yy.append(y)
    t += dt
```
最後設定顯示：
```python
print('水平距離為：', end='')
print(x, end='')
print('(m)')

plt.grid()
plt.xlabel('x (m)')
plt.ylabel('y (m)')
plt.plot(xx, yy)
plt.show()
```
得到軌跡圖：
![](https://i.imgur.com/oGLF57N.png)

並將水平距離打印出來：

`水平距離為：83.46764993694984(m)`

我們可以發現考慮空氣阻力後，水平距離更短了，而這也符合我們的理論與期望！

## 課後練習
現設有一質量1kg的小球由50公尺高進行斜向拋射，初速為25m/s，試求小球落地前之運動軌跡圖(x-y圖)。(空氣密度為1.29kg/m3，重力加速度為9.8m/s，拋射仰角為45度，阻力係數為0.47，小球截面積為0.01m2)