建國高中特色選修課程 - 物理現象的程式設計與模擬作者:曾靖夫、賴奕帆日期:2018/7/5
4/29/2024建國高中特色選修課程 - 物理現象的程式設計與模擬 作者:曾靖夫、賴奕帆 日期:2018/7/5 一、牛頓第二運動定律與迴圈 在牛頓力學中,牛頓第二運動定律是我們處理所有運動都會使用的定律。原因是你只要知道初始條件,當受力決定了速度就決定了($\Delta \vec{v} = \vec{a}\ \Delta t$),而速度決定了位置就決定了($\Delta \vec{r} = \vec{v}\ \Delta t$)。因此你只要知道物體受了什麼力,就可以預測未來每一瞬間的運動狀態。你也可以說這是力學問題的暴力解法,因為即使作用力再複雜都一定可以算出正確的物體運動狀態,只是不是用手算而是讓電腦幫我們算,即是在科學計算所說的「數值解」。 這裡簡單介紹一下牛頓第二運動定律的基本內容$$\vec{F}{合} = m\vec{a}$$式中的 $\vec{F}{合}$ 為作用在物體的所有外力合,$m$ 為所選定討論的受力物,$\vec{a}$ 為物體的加速度。這裡只要 $\vec{F}_{合}$ 確定了,加速度就決定了,加速度就會造成速度變化,有了速度就會造成位移。所以我們就可以在程式中將作用力寫入,電腦就會自動模擬出之後每一刻的運動狀態。 在這個基礎下,使用迴圈去模擬每個時間間隔所發生的變化是最適當的,只要設定的時間間隔夠短,模擬出來的結果就近似為每一時刻的瞬時狀態。以下簡單分析每個迴圈產生的變化:
9/28/2020建國高中特色選修課程 - 物理現象的程式設計與模擬 作者:曾靖夫、賴奕帆 日期:2018/7/5 一、等速率圓周運動的力學分析 - 微分法 上一堂課的最後,學到了如何利用三角函數在程式中畫出圓周運動,並且紀錄了三個數據點,我們簡單稱為「三點記錄法」。在物理學中,只要三個點我們就可計算出平均速度與平均加速度,如果時間間隔取的夠短,就可以擬真呈現出瞬時速度與瞬時加速度。以下我們簡單利用一維等加速度直線運動進行概念說明: 上方左圖為一物體在直線上做等加速度運動以相同時間間隔記錄下來的三個點,假設經過這三點的瞬間速度分別為 $v_1$、$v_2$、$v_3$ 標示在旁邊,上方右圖為物體運動過程的 $v-t$ 圖。由位置1到位置2的平均速度為:$$\bar{v}{12} = \dfrac{x_2-x_1}{dt}$$ 位置2到位置3的平均速度為:$$\bar{v}{23} = \dfrac{x_3-x_2}{dt}$$ 而我們又可以利用上方前半段和後半段的速度差計算出平均加速度為:$$\bar{a} = \dfrac{v_{23}-v_{12}}{dt} = \dfrac{\left ( x_3-x_2 \right ) - \left ( x_2-x_1 \right )}{dt^{2}}$$
3/21/2020建國高中特色選修課程 - 物理現象的程式設計與模擬 作者:曾靖夫、賴奕帆 日期:2018/7/5 一、list(串列)指令簡介 在前幾堂課中,我們做了非常多的動力學分析,也學會了如何插入物件來模擬動態效果。不過之前插入物件的方式都是「一個一個」放進去,但今天如果我們要一次分析100個物件的動力學,難道需要把插入物件的指令寫100次嗎?這樣程式還沒有任何功能,就已經寫幾百行了,很顯然我們需更聰明一點的寫法。在python的內建指令中,「list」指令正好可以做到這件事。 list為python中可以一次儲存多個「數字」、「字串」和「物件」的資料型態,在程式中的寫法只要用一個中括號把我們想要的東西寫進去並用逗號把每一元素隔開即可,例如:[ a, b, c,... ]。以下我們來做一點簡單的練習: Example 1 : list指令基本練習
2/19/2020or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up