祝浩喆,羅強英
(江西省高安中學,江西高安 330800)
Matlab是一種直觀、高效的計算機語言和科學計算平臺,它為數(shù)據分析和數(shù)據可視化、算法和應用程序開發(fā)提供了最核心的數(shù)學和高級圖形工具,工程技術人員和科學工作者可以利用其編程實現(xiàn)需要的計算和仿真[1,2]。
Matlab中圖像處理工具包的函數(shù),按功能可以分為以下幾類:圖像顯示、圖像文件輸入與輸出、幾何操作、象素值和統(tǒng)計、圖像分析與增強、圖像濾波、線性二維濾波器設計、圖像變換、領域和塊操作、二值圖像操作、顏色映射和顏色空間轉換、圖像類型和類型轉換、工具包參數(shù)獲取和設置等[3]。
基于Matlab編程環(huán)境,本文實現(xiàn)了小球自由落體的仿真可視化。首先,利用Matlab函數(shù)繪制小球自由落體的每一幀的圖片;然后根據物理中自由落體運動知識設置小球下落時的高度、初速度、加速度等參數(shù);最后,繪制每一幀圖片上小球的位置、顏色等,從而獲得連續(xù)的小球自由落體仿真視頻。單個小球與多個小球的自由落體仿真實驗結果驗證了小球自由落體仿真運動與物理自由落體原理的一致性。
本文實現(xiàn)的小球自由落體仿真算法如圖1所示。算法的基本步驟:
第一步,繪制小球自由落體的每一幀的圖片。該步驟主要是繪制小球的位置、速度、加速度等參數(shù)[2]。設小球初始最高位置在h0=30 m,當球開始下落的時候,小球的位置是隨著時間的變化而變化的,變化的速度又與加速度有關,它具體指向自由落體小球的高度,其計算式:

假定不考慮空氣摩擦力的話,式(1)中的加速度就可以用重力加速度來表示,一般可以簡單設為定值10 N/kg。
第二步,小球觸地后反彈:(1)小球下落時,當高度current_h<0,說明小球已經觸地,需要將作用于小球的加速度反向:a=-g,同時小球的速度也要重新初始化;(2)小球上升時,速度v>0時,說明小球已經到達最高點并開始下落,這個時候加速度再次變成a=g。
第三步,繪制小球運動狀態(tài)中的每一幅圖片,并應用視頻保存函數(shù)得到每一幀圖片的保存位置。
最后,將繪制的視頻保存到某個文件中,文件后綴名為.avi,說明該文件是一個視頻文件,點擊該視頻文件就可以運行小球自由落體運動的仿真軟件。

圖1 算法框圖
第一個實驗中,本文首先仿真了單個小球的自由落體運動,其中一幅截圖如圖2所示,該實驗的目的是驗證小球的運動結果是否符合理論計算值。仿真實驗中小球中心位置坐標(X,Y)表示小球的水平位置和自由落體的高度,圖2中小球坐標(10,20)表示彈跳到高度為20 m時的位置,該實驗表明我們的仿真結果與理論值一致。
第二個實驗編制了用戶界面。在此界面下通過點擊“開始”按鈕可以完成小球自由落體動畫演示,而點擊“結束”按鈕則可結束動畫演示。其中一幅截圖如圖3所示,圖中給出了多個小球在不同初始值下自由落體的運動情況。

圖2 單個小球自由落體示意圖

圖3 多個小球在不同初始值下自由落體示意圖
本文基于Matlab仿真了小球自由落體運動并可視化實現(xiàn)小球自由落體的動畫描述。該動畫仿真軟件利用計算機編程實現(xiàn)小球自由落體過程,便于理解物理中自由落體運動知識點,增加學習物理知識和對Matlab程序編寫的興趣。
參考文獻:
[1]薛定宇,陳陽泉.高等應用數(shù)學問題的MATLAB求解[M].第3版.北京:清華大學出版社,2016.
[2]卓金武,李必文,魏永生,等.MATLAB在數(shù)學建模中的應用[M].第2版.北京:北京航空航天大學出版社,2015.
[3]羅軍輝,馮平,哈力旦·A,等.MATLAB 7.0在圖像處理中的應用[M].北京:機械工業(yè)出版社,2005.