楊自欣
摘 要 為了方便本科物理的教學,通過Matlab編程及可視化等方法,設計出基于Matlab的多功能物理計算仿真系統(tǒng)。功能包括電磁場仿真、科學計算、函數(shù)繪圖。最終將系統(tǒng)生成為可執(zhí)行文件。
關鍵詞 物理 Matlab 可視化 系統(tǒng) 計算
中圖分類號:TN929.5文獻標識碼:ADOI:10.16400/j.cnki.kjdks.2015.07.070
Computing Design and Implementation of Multi-purpose Physical
Computing Simulation System Based on Matlab
YANG Zixin
(College of Physical Science and Technology, Yunnan University, Kunming, Yunnan 650504)
Abstract In order to facilitate the undergraduate physics teaching and studying, through the MATLAB programming and visualization method, design a system based on MATLAB. Features include electromagnetic simulation, scientific computing, graphics. And transform it to the executable file.
Key words physics; matlab; visualization; system; computing
Matlab是一種用于數(shù)值計算、可視化及編程的高級語言和交互式環(huán)境。使用 Matlab,可以分析數(shù)據(jù),開發(fā)算法,創(chuàng)建模型和應用程序。其應用廣泛,其中包括信號處理和通信、圖像和視頻處理、控制系統(tǒng)、測試和測量、計算金融學及計算生物學等眾多應用領域(1)。Matlab的GUI功能可以幫助用戶實現(xiàn)數(shù)據(jù)可視化。本系統(tǒng)圍繞大學物理的課程需要,利用Matlab的繪圖功能,讓物理本科學生在學習的同時,生動的對學習內(nèi)容進行理解,把抽象的“場”等概念用圖像、曲線、二維圖形、三維圖形來顯示,并可對其模式和相互關系進行可視化分析,增強學生對物理的直觀印象和興趣。同時利用matlab強大的計算功能和來快速方便的解決在物理學習中遇到的數(shù)學障礙??梢暬到y(tǒng)的設計讓學生在系統(tǒng)得學習matlab之前,即可享受它帶來的計算便利,增強學習信心和興趣。
1 可視化系統(tǒng)的制作方法
可視化系統(tǒng)即matlab GUI。在制作matlab GUI時,使用GUIDE開發(fā)環(huán)境將帶來很大便利。在命令行輸入GUIDE,彈出GUIDE界面,可以選擇4種GUIDE模板。有時可以直接使用模板從而減少工作量,但是大多數(shù)情況下選擇空白GUIDE即可。單擊確定新建空白GUIDE將會打開如圖空白GUIDE界面同時生成相應的m文件。
左側為各種組件,通過單擊和拖拽的方法安排GUIDE界面的布局,雙擊控件可編輯選中控件的屬性。通過在相應m文件中編寫callback,可以實現(xiàn)不同組件之間的相互調用,進行輸入輸出的控制和運算。
完成m文件的編輯后,使用Matlab compiler,將其轉化為可執(zhí)行可執(zhí)行文件(即exe文件),以便能在沒有Matlab的電腦上運行。
2 可視化系統(tǒng)的內(nèi)容
主程序分為三個部分:電磁場仿真、科學計算、函數(shù)繪圖。
圖1
打開welcome進入此程序。單擊“yes”彈出相關版權信息,之后進入主界面,由主界面可進入三個主模塊,然后打開各項子程序。進行各種相應操作。使用Modal Question Dialog模板配合“run”、“open”指令,修改“string”屬性即可完成。
2.1.1 點電荷激發(fā)電場仿真
在輸入框中輸入電荷數(shù)目比如3,點擊計算按鈕則彈出3個對話框,在對話框中分別輸入每個電荷的位置、帶電量。用兩個FOR語句接收點電荷信息,并用公式得到相互作用力的大小,使用函數(shù)“atan”得到力作用于電荷的角度,將結果用“msgbox”函數(shù)輸出為一組對話框。
2.1.2 帶電圓環(huán)激發(fā)磁場仿真
單擊“繪制電流環(huán)產(chǎn)生的磁場”在彈出的輸入框中填入相應參數(shù)點擊即可確定得到結果。該程序較為復雜其中使用了“l(fā)inspace”“subplot”“quiver”“axis”等函數(shù)。但操作過程簡單,結果非常直觀如圖所示:
圖2
2.1.3 電位線繪制
單擊“繪制等電位線按鈕”在彈出的輸入框中輸入電位方程得到三維等電位線使用的主要matlab函數(shù)為“inputdlg”“l(fā)inspace”“meshgrid”“cell2mat(v)”“Eval”“gradient”“meshc”“subplot”“quiver”
圖3
圖4
2.2.1 解方程
在此子程序中提供了兩種解方程的方法:(1)通過線性代數(shù)方法來解線性方程組在兩輸入框中分別輸入線性方程組的系數(shù)矩陣,點擊解線性方程組即可生成解。(2)通過matlab內(nèi)置函數(shù)solve求一般方程組的解析解點擊解方程組,輸入方程個數(shù),如輸入2,再依次輸入方程即可得到方程解。兩個變量默認為x1和x2,不同的取值用矩陣來輸出。
2.2.2 多項式擬合
將要被擬合的點的x、y坐標分別輸入兩文本框,輸入擬合多項式的系數(shù)N,點擊擬合,多項式的系數(shù)在右邊給出,可更換N的值比較不同系數(shù)多項式的擬合效果。核心函數(shù)為“polyfit”“polyval”。
2.2.3 積分
本子程序提供了兩種積分方式。
(1)符號積分??墒褂梅栕兞縳 a v b y i z t。
正無窮用inf表示,負無窮用-inf表示已在其中標出,輸入完畢點擊“符號積分”按鈕即可。
(2)數(shù)值積分。需要在輸入被積函數(shù)之后輸入積分上下限,乘法符號“.*”,開方“.^”,除法“./”輸入完畢點擊“數(shù)值積分”按鈕即可。
圖5
圖6
2.2.4
在輸入框中輸入被微分函數(shù),可使用符號變量有x a v y t,默認微分對象x,已提示,輸入完畢點擊“微分”按鈕即可。
2.3.1、2.3.2二維繪圖、三維繪圖
線條顏色默認為紅色,用“r”表示,粗細默認為“1”,如需要可自行更改,分別輸入二維、三維函數(shù)公式,點擊相應按鈕即可生成相應圖形。這部分應用的核心函數(shù)為“ezplot”“meshgrid”。
3 結論
本文設計并實現(xiàn)了基于matlab的多功能物理計算仿真系統(tǒng)。系統(tǒng)層次化、人性化操作簡單易上手。功能多且切合本科物理學生的迫切需要。維護、更新功能擴充簡單。加以推廣將方便本科物理的教學。
參考文獻
[1] mathworks 中國 產(chǎn)品服務 http://cn.mathworks.com/products/matlab/ 2014.12.12.
[2] 黃小潔.基于matlab的數(shù)學實驗系統(tǒng)的實現(xiàn)及應用[D].南昌大學信息工程學院,2012.