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