白 林,付 顺,李启飞,李海全
(成都理工大学 a.数学地质四川省重点实验室;b.管理科学学院;c.信息科学与技术学院,成都 610059)
基于Matlab的通用在线数学实验平台设计与实现
白 林a,b,付 顺b,李启飞c,李海全b
(成都理工大学 a.数学地质四川省重点实验室;b.管理科学学院;c.信息科学与技术学院,成都 610059)
提出一种新的构建通用在线数学实验平台的技术方法,采用Jsp/Servlet技术开发了基于Internet的数学实验系统。系统接受用户浏览器上输入的实验代码,在服务器上巧妙地通过Matlab Builder JA计算引擎中的eval命令将输入的实验代码编译运行,运行结果按计算和绘图功能分别存储为文本文件或图片文件,最终,将运行结果文件返回显示在用户网页上。由于能接受任意输入的实验项目程序代码,实验结果保存为通用的.txt文本文件和.png图形格式,因此实验平台能完成所有数学实验项目。基于Internet的系统模式符合在线实验“瘦客户端”的发展趋势,具有广泛的通用性,为相关在线教学实验平台的构建和开发提供了新的思路。
数学实验;在线实验;浏览器;Matlab软件
近年来,国内不少高等院校相继开设了数学实验课。该课程以学生在教师的指导下通过数学软件做实验,学习解决实际问题的常用数学方法,以提高学数学、用数学的兴趣、意识和能力[1-2]。由于实验课时有限,不少学生提出在课余时间进行数学实验的要求,因此萌发了构建基于Internet的数学实验平台,让学生在课外也能进行在线数学实验。
按照学校的教学安排,数学实验平台需要能同时在线进行高等数学、线性代数、概率论与数理统计、数学建模等多门课程的数学实验项目[3]。因此,在线数学实验平台的构建需要体现在“在线”和“通用”两个方面的需求。“在线”意指平台的实现是基于B/S模式构架,可以实现Internet用户的即时在线访问;“通用”要求平台能在统一的环境下完成各种数学实验项目,如函数与极限、微积分、空间解析几何、矩阵运算、概率分布函数等。
利用Matlab的GUI 功能,开发了交互性的高等数学实验系统、运动控制系统等虚拟实验平台[4-6],但系统只能运行在单机环境下。采用ActiveX、COM 组件技术与.NET 框架,实现了在线实验系统的开发[7-8],但其基于的Matlab Web Server技术在新版本Matlab中不再支持。因此,需要一种能适用于各种数学实验项目的在线平台的新构建方法。
通用在线数学实验平台建设的目的是:基于Web进行各类数学实验项目。这就要求平台能执行各种不同的Matlab程序命令,并能通过网页返回计算结果。
Matlab提供了Matlab Builder JA的方式来实现基于Jsp网页技术访问Matlab的计算引擎。为了达到“在线”和“通用”的目的,平台构建有如下考虑:
1)从浏览器(如IE)接收编写的实验项目Matlab程序代码。
2)将实验项目分为“在线计算”和“在线绘图”两个类型,编写两个类型对应的程序代码接受器。
3)运行编译好的程序解释工具,对用户代码进行解译和运行,将计算的文本类型结果保存在.txt文件中,图形结果保存为.png图片文件。
4)将3)的.txt文件或者.png图片文件计算结果通过浏览器显示,返回浏览器终端用户。
通用在线数学实验平台构架如图1所示。
图1 通用在线数学实验平台构架
首先,在浏览器的输入框输入代码,点击“在线计算”“在线画图”按钮,所输入的代码将会提交到后台的servlet中;然后,通过调用String s = request.getParameter(“s”)将所接收到的代码取出来,交给转为Java的Matlab计算引擎。由这个计算引擎来运行所接收到的代码。以矩阵的乘法为例,在Web页面中进行数值计算,在编辑框中输入Matlab的代码,如图2所示。
图2 简单的案例:基于Web的矩阵计算
为了让平台具有广泛的通用性,能完成各类实验项目,需要平台能将学生在浏览器终端输入的Matlab程序代码进行解释、运行,并将计算结果呈现在网页上。其中,对于输入Matlab程序代码的执行是关键。这里巧妙地利用了Matlab命令中的eval命令来实现此功能,并分别设立处理一般计算的arithmetic.m文件和处理绘图的draw.m文件。 arithmetic.m能够执行输入的代码,并将结果保存在一个.txt文件中;而draw.m文件将绘制的图形存为.png文件。其中,arithmetic.m文件代码如下:
close all;
end
对编好的.m文件,在Matlab中的Command Window中输入deploytool,选择arithmetic.m与draw.m,构建成Java组件,具体方法在文献[9]中可见。
为了将服务器端生成的结果文件内嵌到HTML 网页以便可以在客户端显示,将采用Ajax技术实现动态数据的交互。
当Matlab计算完成后,servlet将会读取存放计算结果的文件,并将文件内容返回给客户端。计算结果若是txt格式,则返回其内容;若是图片格式,则返回其路径。如上面的矩阵乘法,点击“在线运算”按钮,运行结果如图3所示。
图3 矩阵乘法的结果显示
在MyEclipse8.5软件中对工程进行部署加载tomcat,再打开浏览器在地址栏中输入“http://localhost:8080/JavaUseMatlab/matlab.jsp”。刷新页面,在输入框中输入Matlab代码,以调用sphere函数绘制球面图为例,如图4所示。
图4 输入绘图实验项目程序代码
输入代码后,点击按钮“在线绘图”,其运行结果如图5所示。
图5 绘图实验的运行结果显示
通用在线数学实验平台借助Java Web和Matlab Builder JA技术实现在线远程数学实验,巧妙地将用户输入的所有实验代码发送给Matlab编译运行,运行结果存为文本文件和图形文件,返回浏览器终端显示。这既充分利用了Matlab的运算功能,又解决了运算结果的返回显示问题。平台能辅助学生在线完成各类数学实验项目,满足学生在课余时间进行数学实验项目的需要,同时也适合学生自己设计和独立完成实验项目,符合当前开放性实验和创新实验的发展趋势[10]。
[1]朱嘉林,刘伟. 数学实验与学生综合能力的培养[J]. 实验科学与技术,2004,2(3):74-75.
[2]尉洪,宗容,施继红,等. 数学实验课程与学生科研能力的培养[J]. 实验科学与技术,2010,8(6):79-80.
[3]郭科,白林,徐琛梅.论数学建模竞赛中大学生科学研究素养的培养[J].成都理工大学学报:社会科学版,2012,20(2):103-105.
[4]刘卫东,王艳芬.数字信号处理实验的Matlab用户界面设计[J]. 实验科学与技术,2004,2(3):66-69.
[5]陈志歆,李斌.基于Matlab GUI的牛顿环仿真课件制作[J]. 实验科学与技术,2013,11(4):330-333.
[6]李斌,谭鹏,陈国杰,等. Matlab GUI在大学物理实验教学中的应用[J]. 实验科学与技术,2013,11(3):35-36.
[7]尹峥,吴相林,代建明.基于Matlab技术的数学建模远程教学系统[J].实验室研究与探索,2005,24(s1):315-317.
[8]辛晓丽,李世银,岳婷,等. 基于Matlab Web Server的远程仿真系统开发[J]. 实验室研究与探索,2005,24(11):55-57.
[9]金万根,高汝维, 王宇红.利用Matlab Java Builder开发Web远程仿真实验系统的新思路[J].微计算机信息,2011,27(4):204-206.
[10]姜启源.大学数学实验[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
成都理工大学中青年骨干教师培养基金资助项目。
白 林(1980-),男,在读博士,讲师,研究方向:数学实践教学、数学地质。
付 顺(1971-),男,博士,副教授,主要从事实验教学研究工作。
TP393;G642.423;G434
B
10.3969/j.issn.1672-4550.2015.04.014