彭 亮
(武漢鐵路職業技術學院,湖北 武漢 430205)
物理學是一門實驗科學,單純從數學角度來記憶公式是無法深入理解物理規律的。在物理教學過程中,傳統的以粉筆和黑板作為媒介的教學方式比較死板,通過借助計算機技術,將物理運動過程制作成多媒體課件,形象、直觀的展示出來,能夠加深學生對物理規律的感性認識,從而提高教學的效果。
Flash是常用的動畫軟件之一,具有使用方便、動畫效果好的優點,最為重要的是內置一套Action Script編程語言,能夠通過程序的方式實現其他軟件難以實現的動態效果。在物理學課件的制作過程中,傳統靜態動畫制作方式過程繁瑣,而且難以精確的再現物理運動過程。借助Flash提供的Action Script編程語言,制作過程得到了簡化,還具有精確、通用性強的優點。
Flash采用幀的方式運行,通過改變圖形在不同幀的位置、大小等屬性來實現動畫的效果,屬于時間離散的過程,而真實的物理運動過程則是時間連續的。為了在Flash中精確的再現物理運動過程必須對時間連續的過程進行離散化。
物理運動過程可以由運動方程來描述,例如:
運動方程直接給出了位置與時間的關系,通過在每幀中使用方程計算出位置坐標就能再現運動過程。
這種方法精準度高,只有計算過程中的舍入誤差,且誤差不會累積。但該方法必須事先求出運動方程,而且不同場景的運動方程差異極大,所以通用性不是很好。
由于基于運動方程的方法不夠靈活,通用性差,有必要直接從影響物體運動的物理規律出發,尋找一種通用的方法。
根據牛頓定律可知:物體的運動過程由初始狀態(位置、速度)以及受到的力決定,而日常中出現的力可以看成和時間、物體位置和速度有關的函數,因此可以用以下微分方程來表示物體運動過程。

在物體的初始位置和速度已知的情況下,通過數值積分的方法,計算出下一幀的位置和速度,然后以此類推,也能夠再現物體運動過程。這種方法通用性較好,但精度比采用運動方程的方法要差,因為使用數值積分遞推計算位置和速度,不僅存在舍入誤差,還有數值積分方法帶來的截斷誤差,且誤差會累積。不過通過采用高精度的計算方法,誤差能做到可以接受的程度。
首先將式1改寫為以下形式

采用歐拉方法求解上式的過程如下:

采用龍格庫塔方法求解式2的過程如下:

以斜拋運動為例,其運動過程可由以下微分方程描述:

上述式子第一項描述水平方向的運動過程,第二項描述垂直方向的運動過程。

程序中sx表示水平方向的位置,vx表示水平方向的速度,sy表示垂直方向的位置,vy表示垂直方向的速度,t表示時間,h表示積分步長。方法caculateAccX和caculateAccY用于求取加速度,與式2中的函數 v′=f(t,x,v)對應。

以上程序為水平方向的計算過程,垂直方向的計算過程與之類似,程序中的變量和函數與歐拉方法程序的變量和函數相同??梢钥吹烬埜駧焖ǖ挠嬎氵^程要比歐拉方法復雜,接下來將會對兩者的性能進行比對分析。

圖1
圖1中為取h=0.2s時的運行結果,圖中實線為運動方程表示的運動過程,+記號的點序列表示歐拉方法計算結果,×記號的點序列表示龍格庫塔方法計算結果??梢钥闯鰵W拉方法在初段與運動方程的結果相近,但隨著步數增加,誤差越來越大,而龍格庫塔法的誤差幾乎可以忽略。
本文介紹了基于數值積分的物理學Flash課件制作方法,給出了采用兩種不同數值積分的實現過程,并對兩者的性能進行比對,得出結論:歐拉方法計算過程簡單,但誤差較大,適合在步長較短且運行時間也比較短的場合使用,龍格庫塔法計算過程復雜,但誤差很小,適合在步長較長且運行時間也比較長的場合使用。
[1]陳誌敏.龍格-庫塔法及其Mathematica實現[J].武漢工程職業技術學院學報,2006,18(2).
[2]黃曉紅,胡振華.淺析龍格-庫塔方法[J].黑龍江科技信息,2012(23).
[3]陸映紅.基于物理學原理Flash行為動畫的實現[J].廣西民族學院學報,2005,11(4).