發表文章

目前顯示的是 1月, 2021的文章

紙蜻蜓的受風面積與紙蜻蜓落地時間的關係 #2 [可視化使用VPython]

圖片
作品的網址在這裡:( https://www.glowscript.org/#/user/DCtime/folder/MyPrograms/program/MyFirstVPython )  一開始,我是使用 Python + Matplotlib 畫出有空氣阻力落體的x-t圖和v-t圖。( Python + Matplotlib 設計流程請看 https://dctimelearninghowtocode.blogspot.com/2021/01/python-matplotlib.html )老師看完我的專案後,提議可以使用VPython將得到的數據用3D模型"直接看到"東西在移動,不只以圖表呈現。因此我就開始製作這個專案。 一、學習VPython 學習國英數,課本、習作、講義、學校授課配合政策很輕易的成為我們學生的學習資源,但學校沒有自動提供VPython的學習資源,因此學習VPython的第一步,就是尋找可使用的學習資源。老師在推薦VPython,有提到可以去Google搜尋 "VPython石明豐教授" 關鍵字。沿著這個線索,找到了一個NTU做的網站( https://tcjd71.wixsite.com/vpython ),裡面有許多教學文章提供下載。再搭配一些Youtube的資源,和先前學的一些Python的知識,不到一天就把我需要的知識全部學完了。 VPython是一個數據可視化的一個工具,簡單來說,就是一個3D動畫製作工具,而非一個物理模擬工具。VPython只提供圖形渲染的工具,移動只能透過直接設定位置的方式,而不是製造環境去使物件動起來。 二、製作物理動畫 正式使用VPython前,要先設定VPython的開發環境。我試著用終端機下載VPython,但她總是跳出一些奇怪的錯誤訊息,可能是因為我的設備太老舊,導致有不相容的問題。為了解決這個問題,我將錯誤碼貼上Google,希望可以找到解決方法。就在此時,我找到了GlowScript,一個可在線上開發的VPython編輯器。雖然沒有像Pycharm那麼好用,但至少解決環境的問題。 (圖一:GlowScript 主頁面, 資料來源:螢幕截圖) 接下來,就是產生出物體有空氣阻力之落體之相關數據(速度與位移)。在上一篇的文章,我們已經完成這個步驟,Ctrl+C

紙蜻蜓的受風面積與紙蜻蜓落地時間的關係 #1 [實驗歷程與Python Matplotlib]

圖片
一、問題: 最近在探究與實作中,我和我同學要以紙蜻蜓為實驗研究主題,完成一個實驗報告。為了簡單且方便,我和我的組員研究紙蜻蜓的受風面積與紙蜻蜓落地時間。 甚麼是紙蜻蜓? 紙蜻蜓是一個古時候的玩具,可自行用紙摺出來,當從高處往下掉,紙蜻蜓會旋轉且緩慢地掉落。 最後我們做出的實驗數據如下圖: ▲圖1:實驗數據( 紙蜻蜓的受風面積與紙蜻蜓落地時間之關係圖) 從上圖看,當受風面積越大,落下時間越長。一切看起來合理,但是我們要以公式來論證時,出現了問題。先來看一下公式: 空氣阻力的公式:F=(1/2)CρSV^2 牛頓第二運動定律:F=ma 等加速度第一公式:V = Vo + at 等加速度第二公式: Δx = Vot + (1/2)at^2 假想有一個長方體,一次是直立起來自由落體,另一次是橫躺的自由落體。一開始因為初速都是0,所以利用空氣阻力公式,空氣阻力正比於受風面積,再利用牛頓第二運動定律,得到受風面積與加速度呈負相關(因為阻力的方向與速度方向一定相反,不論阻力多大,速度一定是向下,也就是與阻力方向相反)所以可以推測直立自由落體的長方體會比橫躺的掉下去比較多( Δx),但隨著時間的推移,直立的因一開始的加速度比較大,速度較大。空氣阻力的公式告訴我們,速度越大,阻力越大,而且還是二次方,所以直立的阻力會比橫躺的阻力比較大。阻截一下:直立的長方體受風面積較小,但速度較大,無法知道誰落下時間較久(阻力影響速度,速度影響阻力)。 二、解決方法: 一年級下學期的自主學習時間,我學Python物件導向程式設計。因為物件導向是Python入門的其中一部份,沒有一本書只寫物件導向,所以我直接買一本Python的入門書。在這本書裡,有提到matplotlib模組,這模組是專門將資料轉成圖表的。 ▲圖2:我的Python入門書 既然腦袋想不出來,那就給電腦做吧。電腦一開始的目的也是用來計算一些軍事的東西,也就是物理的東西。 首先,因為他是變加速度運動,所以會用到微分..應該吧。我們可以把整個運動的x軸切成好多個部分,並把每一個小部分當成等加速度運動去處理。 三、遇到的困難: 我一開始做這個作品時,已經是晚上一點了。照理來講,如果受風面積是0,那應該是自由落體,也就是x-t圖是某種彎曲向上的直線,v-t圖則是通過原點的斜直線,但運行後的結果如下圖: 很明顯的,怎麼可能是鉛直線?即使x-t當