胡宗元
(首都經(jīng)濟(jì)貿(mào)易大學(xué),北京 100070)
隨著信息時代的到來,運(yùn)用計算機(jī)進(jìn)行設(shè)計和探究已經(jīng)成為現(xiàn)在大學(xué)生的一種基本能力。然而,中國的計算機(jī)現(xiàn)狀是應(yīng)用不夠,其主要原因就是缺乏人才和軟件。這種形勢值很是得我們警覺[1]。為了培養(yǎng)學(xué)生的計算機(jī)應(yīng)用能力,在教學(xué)中開展模擬實(shí)驗(yàn)是一種非常有效的方法。它能夠讓學(xué)生在掌握知識的同時,發(fā)展計算機(jī)應(yīng)用能力。
Mathematica軟件是Wolfram Research公司開發(fā)的一款數(shù)學(xué)計算軟件,主要用于科學(xué)研究和工程技術(shù)中的計算。它不僅可以進(jìn)行程序運(yùn)行,還可以交互式運(yùn)行,一句簡單的Mathematica命令能完成其它編程軟件可能要用幾十句命令才能完成的任務(wù);它除了能進(jìn)行任意精度的數(shù)值計算,還可以進(jìn)行復(fù)雜的符號演算;Mathematica還提供了多種方式作圖、發(fā)聲和動畫命令,使人們直觀地把握對象的特性[2-5]。基于以上特點(diǎn),我們選擇Mathematica作為開發(fā)仿真實(shí)驗(yàn)的工具。
下面,以大學(xué)物理實(shí)驗(yàn)中的彈簧振子阻尼振動實(shí)驗(yàn)為例,具體展示如何運(yùn)用Mathematica設(shè)計模擬實(shí)驗(yàn)。
振動是振子圍繞平衡位置的往復(fù)運(yùn)動,設(shè)振子的質(zhì)量為m,勁度系數(shù)為mw2(固有頻率為w),阻尼系數(shù)為2mi,取平衡位置為原點(diǎn)建立坐標(biāo)系,則由牛頓第二定律[4]得到運(yùn)動微分方程
解出通解為
如果振子的初始位置和速度分別為a,v0,即
代入通解后得到
于是運(yùn)動方程成為
彈簧振子位置和速度的變化范圍分別為
往復(fù)運(yùn)動的周期為
對物理問題進(jìn)行分析和計算提供了計算模擬的基礎(chǔ),但是要想獲得較好的演示效果,還需要在表現(xiàn)形式上下功夫。
該物理問題并未確定振子的形狀和大小,為方便起見,我們可以假設(shè)該彈簧振子為小球。從演示的效果來看,小球半徑過小則不易看清;過大則難以看到運(yùn)動全過程。因此,最佳選擇是規(guī)定一個半徑值,如占整個畫面尺度的5%。這樣,兩個方面都可以照顧到。
為得到理想的模擬效果,必須選擇合適的演示范圍。演示范圍過小,振子在運(yùn)動過程中會跑出畫面;演示范圍過大,就看不到振子的全部運(yùn)動軌跡。由(8)式,振子到原點(diǎn)的最大距離為
演示時間也是保證演示效果的另一個重要因素,演示時間過短,無法展示運(yùn)動的主要特點(diǎn);演示時間過長,則浪費(fèi)時間也沒有必要。往復(fù)運(yùn)動周期由(9)式給出,在周期有限的情況下,雖然運(yùn)動有衰減,但通過前幾個周期就足以看出運(yùn)動規(guī)律;在沒有周期性的過阻尼的情況下,我們只要一個固有周期就能看出運(yùn)動規(guī)律。因此我們?nèi)⊙菔緯r間為2到3個固有周期,即
計算模擬的一大特點(diǎn)是可以用多種方式展示運(yùn)動規(guī)律。除了動畫方式外,我們還可以展示運(yùn)動的頻閃圖、速度時間圖、位置時間圖和速度位置圖等。為了避免前后圖像相互覆蓋,頻閃的時間間隔dt不能太小,總的時間也不能過長。
基于上面的設(shè)計,寫出相應(yīng)的Mathematica模塊:
下面,對程序中的各個參數(shù)進(jìn)行一下說明:
輸入?yún)?shù):初始位移x0;初速度v0;固有頻率w;阻尼參數(shù)i;模式參數(shù)mm
輸出模式:mm=0,動畫;mm=1,頻閃圖;mm=2,v-x 圖;mm=3,x-t圖;mm=4,v-t圖
內(nèi)部變量:阻尼頻率w1;最大位移xmax;固有周期 t0,閃光間隔 dt=0.2
運(yùn)動方程:x[t]
在仿真時調(diào)用模塊dampingvibration,輸入振子的初始位移x0、初速度v0、固有頻率w、阻尼參數(shù)i以及模式選擇等參數(shù)后,便可運(yùn)行。現(xiàn)舉例如下:
設(shè)振子的初始位移x0=2、初速度v0=0、固有頻率w=2、阻尼參數(shù)i=1。
如果要得到動畫, 輸入命令為:dampingvibration[2,0,2,1,0],輸出結(jié)果即是振子作阻尼振動的模擬動畫;由于在文章中無法顯示動畫效果,讀者可以自行測試。
如果要得到頻閃圖,輸入命令為:damping vibration[2,0,2,1,1],輸出結(jié)果如圖1 所示。
圖1 頻閃圖
如果要得到 v-x圖,輸入命令為:dampingvibration[2,0,2,1,2],輸出結(jié)果如圖 2所示。
圖2 速度位置圖
如果要得到 x-t圖,輸入命令為:dampingvibration[2,0,2,1,3],輸出結(jié)果如圖 3所示。
如果要得到 v-t圖,輸入命令為:dampingvibration[2,0,2,1,4],輸出結(jié)果如圖 4所示。
圖3 位置時間圖
圖4 速度時間圖
上面基于Mathematica的模擬實(shí)驗(yàn)程序的主要優(yōu)點(diǎn):
(1)輸入?yún)?shù)任意可調(diào),可以按需進(jìn)行各種模擬實(shí)驗(yàn);
(2)既能夠輸出運(yùn)動實(shí)況,又能夠輸出閃頻照片及其它相關(guān)曲線,展示內(nèi)容豐富;
(3)源程序比較簡單,且具有開放性,略加修改就可以演示其它相近的物理現(xiàn)象。
基于Mathematica,以大學(xué)物理中的彈簧振子阻尼振動試驗(yàn)為例設(shè)計了一個結(jié)構(gòu)簡單、功能強(qiáng)大的模擬實(shí)驗(yàn)程序。輸入任意條件,該程序都可以輸出動畫、頻閃圖和軌跡曲線等模擬實(shí)驗(yàn)結(jié)果。直觀、生動形象的展現(xiàn)實(shí)驗(yàn)現(xiàn)象和內(nèi)容,使學(xué)生容易把握住對象特性,從機(jī)理上理解實(shí)驗(yàn)內(nèi)容,更好的掌握知識內(nèi)容。
此外,該模擬實(shí)驗(yàn)程序具有很好的開放性,在此基礎(chǔ)上加以修改就可以擴(kuò)展功能,還可以編寫出其它實(shí)驗(yàn)內(nèi)容的模擬實(shí)驗(yàn)程序,進(jìn)一步提高學(xué)生的計算機(jī)應(yīng)用能力。
[1] 彭芳麟,梁穎,忻蓓.計算軟件在計算物理課程中的地位和作用[J].大學(xué)物理,2013,8:7.
[2] 倪致祥.科研的有力工具-Mathematica簡介[J].阜陽師范學(xué)院學(xué)報,2005(2):7.
[3] 洪維恩.?dāng)?shù)學(xué)運(yùn)算大師Mathematica4[M].北京:人民郵電出版社,2002:1-16.
[4] 周衍柏.理論力學(xué)教程[M].2版.北京:高等教育出版社,1986:24-41.
[5] 謝文海,古莉,滕艷萍.阻尼振動的Mathmatica模擬[J].大學(xué)物理實(shí)驗(yàn),2014(5):72-75.