白 林,付 順,李啟飛,李海全
(成都理工大學 a.數(shù)學地質(zhì)四川省重點實驗室;b.管理科學學院;c.信息科學與技術(shù)學院,成都 610059)
基于Matlab的通用在線數(shù)學實驗平臺設計與實現(xiàn)
白 林a,b,付 順b,李啟飛c,李海全b
(成都理工大學 a.數(shù)學地質(zhì)四川省重點實驗室;b.管理科學學院;c.信息科學與技術(shù)學院,成都 610059)
提出一種新的構(gòu)建通用在線數(shù)學實驗平臺的技術(shù)方法,采用Jsp/Servlet技術(shù)開發(fā)了基于Internet的數(shù)學實驗系統(tǒng)。系統(tǒng)接受用戶瀏覽器上輸入的實驗代碼,在服務器上巧妙地通過Matlab Builder JA計算引擎中的eval命令將輸入的實驗代碼編譯運行,運行結(jié)果按計算和繪圖功能分別存儲為文本文件或圖片文件,最終,將運行結(jié)果文件返回顯示在用戶網(wǎng)頁上。由于能接受任意輸入的實驗項目程序代碼,實驗結(jié)果保存為通用的.txt文本文件和.png圖形格式,因此實驗平臺能完成所有數(shù)學實驗項目?;贗nternet的系統(tǒng)模式符合在線實驗“瘦客戶端”的發(fā)展趨勢,具有廣泛的通用性,為相關(guān)在線教學實驗平臺的構(gòu)建和開發(fā)提供了新的思路。
數(shù)學實驗;在線實驗;瀏覽器;Matlab軟件
近年來,國內(nèi)不少高等院校相繼開設了數(shù)學實驗課。該課程以學生在教師的指導下通過數(shù)學軟件做實驗,學習解決實際問題的常用數(shù)學方法,以提高學數(shù)學、用數(shù)學的興趣、意識和能力[1-2]。由于實驗課時有限,不少學生提出在課余時間進行數(shù)學實驗的要求,因此萌發(fā)了構(gòu)建基于Internet的數(shù)學實驗平臺,讓學生在課外也能進行在線數(shù)學實驗。
按照學校的教學安排,數(shù)學實驗平臺需要能同時在線進行高等數(shù)學、線性代數(shù)、概率論與數(shù)理統(tǒng)計、數(shù)學建模等多門課程的數(shù)學實驗項目[3]。因此,在線數(shù)學實驗平臺的構(gòu)建需要體現(xiàn)在“在線”和“通用”兩個方面的需求。“在線”意指平臺的實現(xiàn)是基于B/S模式構(gòu)架,可以實現(xiàn)Internet用戶的即時在線訪問;“通用”要求平臺能在統(tǒng)一的環(huán)境下完成各種數(shù)學實驗項目,如函數(shù)與極限、微積分、空間解析幾何、矩陣運算、概率分布函數(shù)等。
利用Matlab的GUI 功能,開發(fā)了交互性的高等數(shù)學實驗系統(tǒng)、運動控制系統(tǒng)等虛擬實驗平臺[4-6],但系統(tǒng)只能運行在單機環(huán)境下。采用ActiveX、COM 組件技術(shù)與.NET 框架,實現(xiàn)了在線實驗系統(tǒng)的開發(fā)[7-8],但其基于的Matlab Web Server技術(shù)在新版本Matlab中不再支持。因此,需要一種能適用于各種數(shù)學實驗項目的在線平臺的新構(gòu)建方法。
通用在線數(shù)學實驗平臺建設的目的是:基于Web進行各類數(shù)學實驗項目。這就要求平臺能執(zhí)行各種不同的Matlab程序命令,并能通過網(wǎng)頁返回計算結(jié)果。
Matlab提供了Matlab Builder JA的方式來實現(xiàn)基于Jsp網(wǎng)頁技術(shù)訪問Matlab的計算引擎。為了達到“在線”和“通用”的目的,平臺構(gòu)建有如下考慮:
1)從瀏覽器(如IE)接收編寫的實驗項目Matlab程序代碼。
2)將實驗項目分為“在線計算”和“在線繪圖”兩個類型,編寫兩個類型對應的程序代碼接受器。
3)運行編譯好的程序解釋工具,對用戶代碼進行解譯和運行,將計算的文本類型結(jié)果保存在.txt文件中,圖形結(jié)果保存為.png圖片文件。
4)將3)的.txt文件或者.png圖片文件計算結(jié)果通過瀏覽器顯示,返回瀏覽器終端用戶。
通用在線數(shù)學實驗平臺構(gòu)架如圖1所示。
圖1 通用在線數(shù)學實驗平臺構(gòu)架
首先,在瀏覽器的輸入框輸入代碼,點擊“在線計算”“在線畫圖”按鈕,所輸入的代碼將會提交到后臺的servlet中;然后,通過調(diào)用String s = request.getParameter(“s”)將所接收到的代碼取出來,交給轉(zhuǎn)為Java的Matlab計算引擎。由這個計算引擎來運行所接收到的代碼。以矩陣的乘法為例,在Web頁面中進行數(shù)值計算,在編輯框中輸入Matlab的代碼,如圖2所示。
圖2 簡單的案例:基于Web的矩陣計算
為了讓平臺具有廣泛的通用性,能完成各類實驗項目,需要平臺能將學生在瀏覽器終端輸入的Matlab程序代碼進行解釋、運行,并將計算結(jié)果呈現(xiàn)在網(wǎng)頁上。其中,對于輸入Matlab程序代碼的執(zhí)行是關(guān)鍵。這里巧妙地利用了Matlab命令中的eval命令來實現(xiàn)此功能,并分別設立處理一般計算的arithmetic.m文件和處理繪圖的draw.m文件。 arithmetic.m能夠執(zhí)行輸入的代碼,并將結(jié)果保存在一個.txt文件中;而draw.m文件將繪制的圖形存為.png文件。其中,arithmetic.m文件代碼如下:
close all;
end
對編好的.m文件,在Matlab中的Command Window中輸入deploytool,選擇arithmetic.m與draw.m,構(gòu)建成Java組件,具體方法在文獻[9]中可見。
為了將服務器端生成的結(jié)果文件內(nèi)嵌到HTML 網(wǎng)頁以便可以在客戶端顯示,將采用Ajax技術(shù)實現(xiàn)動態(tài)數(shù)據(jù)的交互。
當Matlab計算完成后,servlet將會讀取存放計算結(jié)果的文件,并將文件內(nèi)容返回給客戶端。計算結(jié)果若是txt格式,則返回其內(nèi)容;若是圖片格式,則返回其路徑。如上面的矩陣乘法,點擊“在線運算”按鈕,運行結(jié)果如圖3所示。
圖3 矩陣乘法的結(jié)果顯示
在MyEclipse8.5軟件中對工程進行部署加載tomcat,再打開瀏覽器在地址欄中輸入“http://localhost:8080/JavaUseMatlab/matlab.jsp”。刷新頁面,在輸入框中輸入Matlab代碼,以調(diào)用sphere函數(shù)繪制球面圖為例,如圖4所示。
圖4 輸入繪圖實驗項目程序代碼
輸入代碼后,點擊按鈕“在線繪圖”,其運行結(jié)果如圖5所示。
圖5 繪圖實驗的運行結(jié)果顯示
通用在線數(shù)學實驗平臺借助Java Web和Matlab Builder JA技術(shù)實現(xiàn)在線遠程數(shù)學實驗,巧妙地將用戶輸入的所有實驗代碼發(fā)送給Matlab編譯運行,運行結(jié)果存為文本文件和圖形文件,返回瀏覽器終端顯示。這既充分利用了Matlab的運算功能,又解決了運算結(jié)果的返回顯示問題。平臺能輔助學生在線完成各類數(shù)學實驗項目,滿足學生在課余時間進行數(shù)學實驗項目的需要,同時也適合學生自己設計和獨立完成實驗項目,符合當前開放性實驗和創(chuàng)新實驗的發(fā)展趨勢[10]。
[1]朱嘉林,劉偉. 數(shù)學實驗與學生綜合能力的培養(yǎng)[J]. 實驗科學與技術(shù),2004,2(3):74-75.
[2]尉洪,宗容,施繼紅,等. 數(shù)學實驗課程與學生科研能力的培養(yǎng)[J]. 實驗科學與技術(shù),2010,8(6):79-80.
[3]郭科,白林,徐琛梅.論數(shù)學建模競賽中大學生科學研究素養(yǎng)的培養(yǎng)[J].成都理工大學學報:社會科學版,2012,20(2):103-105.
[4]劉衛(wèi)東,王艷芬.數(shù)字信號處理實驗的Matlab用戶界面設計[J]. 實驗科學與技術(shù),2004,2(3):66-69.
[5]陳志歆,李斌.基于Matlab GUI的牛頓環(huán)仿真課件制作[J]. 實驗科學與技術(shù),2013,11(4):330-333.
[6]李斌,譚鵬,陳國杰,等. Matlab GUI在大學物理實驗教學中的應用[J]. 實驗科學與技術(shù),2013,11(3):35-36.
[7]尹崢,吳相林,代建明.基于Matlab技術(shù)的數(shù)學建模遠程教學系統(tǒng)[J].實驗室研究與探索,2005,24(s1):315-317.
[8]辛曉麗,李世銀,岳婷,等. 基于Matlab Web Server的遠程仿真系統(tǒng)開發(fā)[J]. 實驗室研究與探索,2005,24(11):55-57.
[9]金萬根,高汝維, 王宇紅.利用Matlab Java Builder開發(fā)Web遠程仿真實驗系統(tǒng)的新思路[J].微計算機信息,2011,27(4):204-206.
[10]姜啟源.大學數(shù)學實驗[M].北京:清華大學出版社,2005:15-19.
時間是一切財富中最寶貴的財富。
Design and Implementation of General Online Mathematics Experiment Platform Based on Matlab
BAI Lina,b, FU Shunb, LI Qifeic, LI Haiquanb
(a. Geomathematics Key Laboratory of Sichuan Province; b. College of Management Science;c. College of Information Science and Technology, Chengdu University of Technology, Chengdu 610059, China)
A new approach to online universal mathematics experiment platform building and implementation was proposed. A mathematical experiment system based on the Internet is developed using Jsp/Servlet technology.Experimental code is entered on the user’s browser. User’s experimental code is compiled to run via the “eval” command of Matlab Builder JA, experimental results are stored in accordance with.txt text file or.png graphics file, and displays on the web page. As arbitrary code can be accepted, the developing platform is able to complete most of the experiments, the Internet-based system meet the online experiment “thin client” trend and has wide universality, a new approach of developing related common online education platform is offered.
mathematical experiment;online experiment;browser; Matlab software
2014-09-04;修改日期: 2014-10-28
成都理工大學中青年骨干教師培養(yǎng)基金資助項目。
白 林(1980-),男,在讀博士,講師,研究方向:數(shù)學實踐教學、數(shù)學地質(zhì)。
付 順(1971-),男,博士,副教授,主要從事實驗教學研究工作。
TP393;G642.423;G434
B
10.3969/j.issn.1672-4550.2015.04.014