祝浩喆,羅強(qiáng)英
(江西省高安中學(xué),江西高安 330800)
Matlab是一種直觀(guān)、高效的計(jì)算機(jī)語(yǔ)言和科學(xué)計(jì)算平臺(tái),它為數(shù)據(jù)分析和數(shù)據(jù)可視化、算法和應(yīng)用程序開(kāi)發(fā)提供了最核心的數(shù)學(xué)和高級(jí)圖形工具,工程技術(shù)人員和科學(xué)工作者可以利用其編程實(shí)現(xiàn)需要的計(jì)算和仿真[1,2]。
Matlab中圖像處理工具包的函數(shù),按功能可以分為以下幾類(lèi):圖像顯示、圖像文件輸入與輸出、幾何操作、象素值和統(tǒng)計(jì)、圖像分析與增強(qiáng)、圖像濾波、線(xiàn)性二維濾波器設(shè)計(jì)、圖像變換、領(lǐng)域和塊操作、二值圖像操作、顏色映射和顏色空間轉(zhuǎn)換、圖像類(lèi)型和類(lèi)型轉(zhuǎn)換、工具包參數(shù)獲取和設(shè)置等[3]。
基于Matlab編程環(huán)境,本文實(shí)現(xiàn)了小球自由落體的仿真可視化。首先,利用Matlab函數(shù)繪制小球自由落體的每一幀的圖片;然后根據(jù)物理中自由落體運(yùn)動(dòng)知識(shí)設(shè)置小球下落時(shí)的高度、初速度、加速度等參數(shù);最后,繪制每一幀圖片上小球的位置、顏色等,從而獲得連續(xù)的小球自由落體仿真視頻。單個(gè)小球與多個(gè)小球的自由落體仿真實(shí)驗(yàn)結(jié)果驗(yàn)證了小球自由落體仿真運(yùn)動(dòng)與物理自由落體原理的一致性。
本文實(shí)現(xiàn)的小球自由落體仿真算法如圖1所示。算法的基本步驟:
第一步,繪制小球自由落體的每一幀的圖片。該步驟主要是繪制小球的位置、速度、加速度等參數(shù)[2]。設(shè)小球初始最高位置在h0=30 m,當(dāng)球開(kāi)始下落的時(shí)候,小球的位置是隨著時(shí)間的變化而變化的,變化的速度又與加速度有關(guān),它具體指向自由落體小球的高度,其計(jì)算式:
假定不考慮空氣摩擦力的話(huà),式(1)中的加速度就可以用重力加速度來(lái)表示,一般可以簡(jiǎn)單設(shè)為定值10 N/kg。
第二步,小球觸地后反彈:(1)小球下落時(shí),當(dāng)高度current_h<0,說(shuō)明小球已經(jīng)觸地,需要將作用于小球的加速度反向:a=-g,同時(shí)小球的速度也要重新初始化;(2)小球上升時(shí),速度v>0時(shí),說(shuō)明小球已經(jīng)到達(dá)最高點(diǎn)并開(kāi)始下落,這個(gè)時(shí)候加速度再次變成a=g。
第三步,繪制小球運(yùn)動(dòng)狀態(tài)中的每一幅圖片,并應(yīng)用視頻保存函數(shù)得到每一幀圖片的保存位置。
最后,將繪制的視頻保存到某個(gè)文件中,文件后綴名為.avi,說(shuō)明該文件是一個(gè)視頻文件,點(diǎn)擊該視頻文件就可以運(yùn)行小球自由落體運(yùn)動(dòng)的仿真軟件。
圖1 算法框圖
第一個(gè)實(shí)驗(yàn)中,本文首先仿真了單個(gè)小球的自由落體運(yùn)動(dòng),其中一幅截圖如圖2所示,該實(shí)驗(yàn)的目的是驗(yàn)證小球的運(yùn)動(dòng)結(jié)果是否符合理論計(jì)算值。仿真實(shí)驗(yàn)中小球中心位置坐標(biāo)(X,Y)表示小球的水平位置和自由落體的高度,圖2中小球坐標(biāo)(10,20)表示彈跳到高度為20 m時(shí)的位置,該實(shí)驗(yàn)表明我們的仿真結(jié)果與理論值一致。
第二個(gè)實(shí)驗(yàn)編制了用戶(hù)界面。在此界面下通過(guò)點(diǎn)擊“開(kāi)始”按鈕可以完成小球自由落體動(dòng)畫(huà)演示,而點(diǎn)擊“結(jié)束”按鈕則可結(jié)束動(dòng)畫(huà)演示。其中一幅截圖如圖3所示,圖中給出了多個(gè)小球在不同初始值下自由落體的運(yùn)動(dòng)情況。
圖2 單個(gè)小球自由落體示意圖
圖3 多個(gè)小球在不同初始值下自由落體示意圖
本文基于Matlab仿真了小球自由落體運(yùn)動(dòng)并可視化實(shí)現(xiàn)小球自由落體的動(dòng)畫(huà)描述。該動(dòng)畫(huà)仿真軟件利用計(jì)算機(jī)編程實(shí)現(xiàn)小球自由落體過(guò)程,便于理解物理中自由落體運(yùn)動(dòng)知識(shí)點(diǎn),增加學(xué)習(xí)物理知識(shí)和對(duì)Matlab程序編寫(xiě)的興趣。
參考文獻(xiàn):
[1]薛定宇,陳陽(yáng)泉.高等應(yīng)用數(shù)學(xué)問(wèn)題的MATLAB求解[M].第3版.北京:清華大學(xué)出版社,2016.
[2]卓金武,李必文,魏永生,等.MATLAB在數(shù)學(xué)建模中的應(yīng)用[M].第2版.北京:北京航空航天大學(xué)出版社,2015.
[3]羅軍輝,馮平,哈力旦·A,等.MATLAB 7.0在圖像處理中的應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.