## Vpython-加速度運動四部曲
#### by 蘇昱全 Switch
---
## 第四部分:空氣阻力
----
空氣阻力普遍認為與一物體的速度有關,通常是一個常數乘上速度的某個次方,如下(假設\\(\vec{v}=v\hat{v}\\)):
\\(\vec{f}=-bv^{k}\cdot \hat{v}\\)
這個負號代表阻力方向恆與速度方向相反
而\\(\hat{v}\\)是一個單位向量(大小為1),讀做$\text{v-hat}$,
用以表示速度\\(\vec{v}\\)的方向
----
### 「質量」的重要性
你會發現,此時空氣阻力\\(\vec{f}\\)就不再與質量有關了,
所以根據牛頓第二運動定律\\(\vec{F}=m\vec{a}\\),
$\vec{a}=\dfrac{\vec{F}}{m}=\dfrac{-bv^k}{m}\hat{v}$,即質量與加速度成反比。
----
### 物理小教室:終端速度
一個鉛直下落的物體,你可以拿起討厭記者麥克風
(肯定有人懂我在講甚麼)問問他的受力,他會受到:
重力$mg$向上以及空氣阻力$-bv^k$向下,
若達到兩力平衡\\(mg=b{v_f}^k\\),即無加速度
則此時的速度(為一定值)$v_f$稱為終端速度
----
若是對應到上周的**斜拋**,則水平方向會一直受到
一個與速度方向相反的加速度,故最終
(\\(t=\infty\\),如果未觸地)仍會變成鉛直向下的運動。
---
## 實作技巧
----
先說好囉,我們今天的模擬統一使用
\\(\vec{f_{air}}=-bv^2\cdot \hat{v}\\)
----
### 歸一化(Normalize)
----
神魔之塔的六封王路西法
潛能解放後就有一個技能叫魔力歸一(誤)

----
歸一化是指將一個向量$\vec{a}$化為單位向量,
即使得\\(\abs{\vec{a}}=1\\)
在VPython中有一個對應的語法叫做$\texttt{norm()}$
```python
a = vec(3, 4 ,0)
b = norm(a)
#b = vec(0.6, 0.8, 0)
```
對於歸一化的數學定義,我們說:
將$\vec{a}$歸一化後得到的向量$\hat{b}$
將滿足\\(\hat{b}=\dfrac{\vec{a}}{\abs{\vec{a}}}\\)
----
你可能會問:什麼是\\(\abs{\vec{a}}\\)?
\\(\abs{\vec{a}}\\)就是向量\\(\vec{a}\\)的長度,
\\(
\text{If }\vec{a}=(a,b,c)\text{ ,then }\abs{\vec{a}}=\sqrt{a^2+b^2+c^2}
\\)
(不是\\((\abs{a},\abs{b},\abs{c})\\)喔)
對應的語法叫做$\texttt{mag()}$
\\({\abs{\vec{a}}}^2\\)叫做$\texttt{mag2()}$
----
所以,對於力的計算,我們可以這樣做
**量值計算 $\to$ 賦予方向**
```python!
v = vec(15, 8, 7)
F = -b * mag2(v) * norm(v)
```
---
## 實作部分
----
### 實作一:觀測終端速度
----
前提:
想要觀察到明顯的終端速度,有三點注意事項:
* 不要有地板
* 質量 $m$ 與常數 $b$ 數量集不要相差太大
* 初速度 $v$ 不要太大
----
想要具體的觀察「速度」這個物理量,
我們可以用「畫圖」的方式展示出來。
複習一下:
```
vtg = graph(title = "v-t", width = 400, height = 400, xtitle = "t(s)", ytitle = "v(m/s)") #還可定義xmin,xmax,ymin,ymax
vt = gcurve(graph = vtg, color = color.blue)
while ...:
rate(1000)
.
.
.
vt.plot(pos = (t,mag(ball.v)))
t += dt
```
----
[展示一]( https://www.glowscript.org/#/user/andysu960816/folder/MyPrograms/program/Tutorial-airR)
----
## 實作二:大雜燴
----
把這四堂課學的全部放在一起,就是一個
[比較貼近真實的模擬啦](https://www.glowscript.org/#/user/andysu960816/folder/MyPrograms/program/Tutorial-FreeFallevery)
---
# 謝謝大家
{"title":"Vpython-空氣阻力","contributors":"[{\"id\":\"084e105f-92be-4605-b399-8d3c0ef40c64\",\"add\":2998,\"del\":773}]"}