彭 亮
(武漢鐵路職業(yè)技術學院,湖北 武漢 430205)
物理學是一門實驗科學,單純從數(shù)學角度來記憶公式是無法深入理解物理規(guī)律的。在物理教學過程中,傳統(tǒng)的以粉筆和黑板作為媒介的教學方式比較死板,通過借助計算機技術,將物理運動過程制作成多媒體課件,形象、直觀的展示出來,能夠加深學生對物理規(guī)律的感性認識,從而提高教學的效果。
Flash是常用的動畫軟件之一,具有使用方便、動畫效果好的優(yōu)點,最為重要的是內(nèi)置一套Action Script編程語言,能夠通過程序的方式實現(xiàn)其他軟件難以實現(xiàn)的動態(tài)效果。在物理學課件的制作過程中,傳統(tǒng)靜態(tài)動畫制作方式過程繁瑣,而且難以精確的再現(xiàn)物理運動過程。借助Flash提供的Action Script編程語言,制作過程得到了簡化,還具有精確、通用性強的優(yōu)點。
Flash采用幀的方式運行,通過改變圖形在不同幀的位置、大小等屬性來實現(xiàn)動畫的效果,屬于時間離散的過程,而真實的物理運動過程則是時間連續(xù)的。為了在Flash中精確的再現(xiàn)物理運動過程必須對時間連續(xù)的過程進行離散化。
物理運動過程可以由運動方程來描述,例如:
運動方程直接給出了位置與時間的關系,通過在每幀中使用方程計算出位置坐標就能再現(xiàn)運動過程。
這種方法精準度高,只有計算過程中的舍入誤差,且誤差不會累積。但該方法必須事先求出運動方程,而且不同場景的運動方程差異極大,所以通用性不是很好。
由于基于運動方程的方法不夠靈活,通用性差,有必要直接從影響物體運動的物理規(guī)律出發(fā),尋找一種通用的方法。
根據(jù)牛頓定律可知:物體的運動過程由初始狀態(tài)(位置、速度)以及受到的力決定,而日常中出現(xiàn)的力可以看成和時間、物體位置和速度有關的函數(shù),因此可以用以下微分方程來表示物體運動過程。
在物體的初始位置和速度已知的情況下,通過數(shù)值積分的方法,計算出下一幀的位置和速度,然后以此類推,也能夠再現(xiàn)物體運動過程。這種方法通用性較好,但精度比采用運動方程的方法要差,因為使用數(shù)值積分遞推計算位置和速度,不僅存在舍入誤差,還有數(shù)值積分方法帶來的截斷誤差,且誤差會累積。不過通過采用高精度的計算方法,誤差能做到可以接受的程度。
首先將式1改寫為以下形式
采用歐拉方法求解上式的過程如下:
采用龍格庫塔方法求解式2的過程如下:
以斜拋運動為例,其運動過程可由以下微分方程描述:
上述式子第一項描述水平方向的運動過程,第二項描述垂直方向的運動過程。
程序中sx表示水平方向的位置,vx表示水平方向的速度,sy表示垂直方向的位置,vy表示垂直方向的速度,t表示時間,h表示積分步長。方法caculateAccX和caculateAccY用于求取加速度,與式2中的函數(shù) v′=f(t,x,v)對應。
以上程序為水平方向的計算過程,垂直方向的計算過程與之類似,程序中的變量和函數(shù)與歐拉方法程序的變量和函數(shù)相同。可以看到龍格庫塔法的計算過程要比歐拉方法復雜,接下來將會對兩者的性能進行比對分析。
圖1
圖1中為取h=0.2s時的運行結果,圖中實線為運動方程表示的運動過程,+記號的點序列表示歐拉方法計算結果,×記號的點序列表示龍格庫塔方法計算結果??梢钥闯鰵W拉方法在初段與運動方程的結果相近,但隨著步數(shù)增加,誤差越來越大,而龍格庫塔法的誤差幾乎可以忽略。
本文介紹了基于數(shù)值積分的物理學Flash課件制作方法,給出了采用兩種不同數(shù)值積分的實現(xiàn)過程,并對兩者的性能進行比對,得出結論:歐拉方法計算過程簡單,但誤差較大,適合在步長較短且運行時間也比較短的場合使用,龍格庫塔法計算過程復雜,但誤差很小,適合在步長較長且運行時間也比較長的場合使用。
[1]陳誌敏.龍格-庫塔法及其Mathematica實現(xiàn)[J].武漢工程職業(yè)技術學院學報,2006,18(2).
[2]黃曉紅,胡振華.淺析龍格-庫塔方法[J].黑龍江科技信息,2012(23).
[3]陸映紅.基于物理學原理Flash行為動畫的實現(xiàn)[J].廣西民族學院學報,2005,11(4).