1、1毕业设计开题报告电气工程与自动化基于MATLABWEBSERVER的数值计算算法演示与实现一选题的背景与意义随着计算机技术的迅速发展,数值方法在工程技术领域中的领域越来越广泛,并且已成为与计算机之间的桥梁,和理论研究、科学实验并列为科学研究的三大分支。要解决工程问题,往往需要处理许多数学模型,这要花费大量的人力和时间,同时许多数学模型无法用解析法得到解。使用数值方法并利用计算机就可以解决这些问题。目前,有关“数值方法”成为了各高等院校工程类学生必学课程之一。然而,当前有关各种数值计算算法的演示以及教学,都相对比较呆板和单一。老师通过板书,或者使用一个固定PPT、FLASH动画(一般都是提前做
2、好的一个特定例子)来推导并演示一种算法的大致流程。但是,这样无法具体到每一个方程计算过程,不方便学生的实际理解。同时,如果碰到一些非常繁杂的计算,在课堂中根本无法解答。这样严重影响教学质量。因此,我们有必要寻求一种更有效的教学和演示方式。为了提高教学质量,目前各大院校都有使用MATLAB来进行教学,但是这种单纯通过MATLAB初级计算功能来直接编程并演示各种算法的方式,效果并不是很显著。一方面,这需要编程来实现,这对初学者,特别是对算法不理解或者对MATLAB不是很了解的同学,是非常困难的。另外,通常的MATLAB算法程序只会给出结果,具体的中间计算过程需要通过观察程序来学习。也显得很繁杂,抽
3、象。另一方面,这必须要求每一台电脑都安装MATLAB这个软件,显得非常不方便的。以下各技术,为这些问题提供了解决途径。近年来,基于MATLABWEBSERVER的研究已经日益流行。以下是它的工作原理MATLAB的WEB应用由MATLABWEBSERVER和MATLABWEB服务代理两部分组成。MATLABWEBSERVER是一个多线程可执行的TCP/IP应用程序。MATLABSERVEREXE是2MATLAB应用程序运行的服务器环境,负责管理WEB应用与MATLAB间的通讯MATLABWEB服务代理是一个可执行程序MATWEBEXE,一个MATLABWEB服务器的TCP/IP客户端,同时也是W
4、EB的CGI扩展它将对MATLAB的请求重新定向到MATLABSERVEREXE进行处理。一个完整的实验通常由三部分组成输入HTML文档,MATLAB程序M文件和输出HTML模板文档。用户在浏览器上输入数据,提交给服务器上的MATLAB进行计算,把计算结果显示在浏览器上。MATLABSERVER是一个多线程的基于TCP/IP的服务器。它运行输入HTML文档内的的隐藏域MLMFILE的值指定的M文件中,在HTML文件、MATLAB和M文件之间建立联系,唤起文件MATWEBEXE,再由它来执行这个M文件,MATLAB是MATLABSERVER的一个客户端应用,利用CGI把HTML的输入数据传给MA
5、TLABSERVER。本课题,就是基于该技术,来使MATLAB教学网络化。从来改进上面提到的不足之处。基于MATLABWEBSERVER的数值计算算法演示与实现这个课题的研究,就是通过MATLAB算法编程、绘图、动画制作,来生动、丰富地向学习者们展示各算法的运算过程与原理,将算法的演示具体到每一个具体例子。并基于MATLABWEBSERVER,采用B/S结构(浏览器与服务器结构)来构建一个网络教学实验室,将演示和教学网络化。主机利用MATLABWEBSERVER来实现网页和本机数据的传递,然后调用本机的MATLAB来汇出图像,制作动画以及计算出计算结果。再通过网络反馈给用户。这样,在教学和演示
6、上,就避免了安装MATLAB软件和烦琐的程序输入与调试的局限性,能随时随地的利用INTERNET方便快捷的进行演示。用户只需要在输入页面输入要求的变量,提高给服务器,便会得到一系列的演示图像或者动画,以及计算结果。让数值计算算法演示和教学更加便捷、直观、生动、形象、高效,便是本课题的研究意义。二研究的基本内容与拟解决的主要问题本课题的基本研究内容既如何选用合适的表现形式,来表现每一个算法。然后再使用MATLABSERVER来实现数据的交互。要实现这个目标,我们需要研究一下几个要点1基于MATLABWEBSERVER的数据交互这是本课题的一个研究要点。在这方面,我们主要是研究是如何通过MATLA
7、BWEBSERVER来实现参数的传递以及演算结果与客户端之间的交互。主要需要研3究并解决客户端的参数如何传递到服务器以及服务器MATLAB的演算结果如何返回客户。2算法的编程与演示这是本课题的核心。如前面所言,为了有助于学习者的实际理解,要尽量把演示具体到每一次计算。而不同的数值方法,表现形式是不同的。这方面的研究主要集中在下面几个问题21对各数值算法的编程这个是设计的基本,因为只有正确的编程才能实现其余的步骤。为了配合演示的目的,编程的时候要尽量考虑方便各种绘图或者其余演示方式。22MATLAB的绘图以及保存每一个算法的计算原理都不尽相同,因此,我们要选择最贴切、最合理的画图时机和方式,来形
8、象地表现各个算法。某些算法的画图方法比较特别,比如高斯消元法等算法如何将矩阵的变化使用MATLAB实时绘制出来。其中设计括号的绘制以及括号里的数字如何变化。图像绘制成功以后,还要加以保存(例如JPEG格式)。23如何利用MATLAB制作简单的动画当图片太多了,单纯使用图片来进行演示显然是不可行的。为了演示的连贯性和可视化,本课题需要研究如何利用MATLAB将之前的图像以一定的方式做成动画。24如何利用以上两个技术设计演示方式一方面,每一个算法都是不同的,因此每一个算法的演示如何用图像或者动画来表示是本课题的一个难点。另一方面,每一种算法需要MATLABWEBSERVER的传递的参数也是需要研究
9、的。25优化用户界面作为演示,怎么让学习者更有效地学习是非常重要的一个因素。因此,如何优化及图像表现形式,让界面变得更加友好,也是研究的一个重要项目。三研究的方法与技术路线1客户端与服务器之间的数据交互基于MATLABWEBSERVER的工作原理,要完成客户端与服务器之间的数据交4互包括参数的传递以及结果的返回),我们需要11构建服务器APACHE是世界上排名第一的服务器,根据NETCRAFT所做的调查,世界上百分之五十以上的WEB服务器在使用APACHE。而且APACHE是免费的。因此我选用了APACHE服务器。因为这个不是研究的重点,本课题只需要涉及到与MATWEB相关的配置即可。主要工作
10、是修改HTTPDCONF来实现。具体修改方式可以参考APACHE使用方法。12编写输入、输出页面并完成MATLAB的相应设置用户在进行实验时,实验的输入数据通过网页以表单的形式发送到通用网关接口程序。通用网关接口程序收到输入数据后,分析输入数据,调用与之相关的MATLAB的M文件。这时,通过网关接口程序将利用系统的MATLAB服务进行MATLAB运算,计算出结果,绘制出输出图像以及动画,传回数据而完成演示过程。要完成上面的要求,必须要修改M文件,基本的M文件时不能实现与网页的参数传递的。因为MATWEBEXE从HTML输出页面提取出来的数据都是结构型数据,它要作为输入参数参数传递给M函数文件。
11、该结构体变量的每一个字段名称是以字符型变量存放的,因此,必要时还需将这些字符型数据转化成数值型。这个步骤可以使用STR2DOUBLE或者STR2NUM来实现。在M程序的最后,需要TMPFILEWHICH(OUTPUTFILE以及RETSTRHTMLREPOUTP,TMPFILE这两个语句把结果输送回网页。另外也需要对MATWEB进行设置。首先,要将MATLAB目录下的MATWEBCONF和MATWEBEXE两个文件复制至网页文件内。为了方便起见,可以新建文件夹CGIBIN来存放这两个文件。然后修改MATWEBCONF文件。同时,MATLABWEBSERVER下的MATLABSERVERCONF
12、也是需要做一定的修改。这两个配置文件在接下来做设计时进行根据实际需要进行修改。2算法的编程与演示21算法的编程运用之前在数值方法与MATLAB语言课程上所学的知识,对各个重要的算法进行编程,包括二分法,牛顿迭代法,高斯消元法,雅克比迭代发,高斯迭代法等各种常用算法。522MATLAB的图像绘制MATLAB具有强大的绘图能力。根据算法的不同,我们可以在算法循环的每一个关键步骤都进行绘图。每一个步骤保存一张图片。具体语句可以参考使用WSPRINTJPEG命令将图形结果写成JPEG格式文件。具体在程序的哪个部分插入画图语句,根据各算法的表现形式而定。另外,图像的属性都能通过SET语句来进行定义。至于
13、矩阵的画法,可以创建一个函数。它的功能是输入矩阵,就能把它在相应位置画出来。函数的具体实现是构思使用TEXT()语句,将矩阵里的每一个元素,用一个循环语句一个个画出来。然后再用PLOT()语句画出两边的括号。23MATLAB的动画制作计算机动画是指用计算机自动或半自动生成一系列的景物(帧)动画,其中当前帧是对前一帧动画的部分修改,通过以足够快的速度显示这些帧以产生动态的效果。MATLAB实现动画的方式有很多种,可以直接调用系统的动画函数产生动画,也可以通过不断显示更新的静态画面以实现动画变化效果;还可以通过不断改变视窗大小、视角变化、颜色变化产生动画。在动画生成过程中,通过捕捉一系列当前帧又可
14、将动画保存成视频文件。本设计准备采用一下方式制作动画通过32步骤画成的图像,使用IMREAD语句将各内容读入一个数组。然后在用MOVIE2AVI()这个函数,将读入数组的图像,制作一个AVI视频文件,将数组中的图像以一定的帧数放出。24部分算法的演示方式以及通过MATLABWEBSERVER的参数传递方案牛顿迭代法的演示牛顿迭代法也称为切线法。在演示作图时,先画出坐标轴以及函数,然后把初始迭代值X0以标记在X轴上。然后做一条通过X0的垂直于X轴的虚线,与函数相交于(X0,F(X0)。之后过该点取切线(用实线表示),与X轴相交于下一个迭代值。每一次取切线和画竖线都取一幅图,直到取到误差内的X值为
15、止。之后制成动画。参数传递方面,输入页面中是输入的函数、初始迭代值、迭代次数、误差。网页送入MATLAB一个结构H,包括了输入的函数、初始迭代值、迭代次数、误差(因为网页输入的为字符,所以需要用STR2NUM语句转化为数字)。6返回也是一个结构,它的内容包括解、迭代次数,以及字符(迭代次数如果超过最大迭代次数,则显示NISFULL)。通过MATLABWEBSERVER传回输出网页。图像和动画的绘制在服务器的MATLAB中执行,并传输到输出页面。高斯消元法的演示高斯消元法本质上是加减消元法。因此,只需要给出每个消元的步骤就好了。先做一个画数组的函数,该函数的参数是一个数组(需要画的那个数组)和两
16、个数字(代表要画的数组的起始坐标)。然后,我们就可以通过这个函数,把每一步增广矩阵(A|B)的变换过程全部画下来,一直到消元法进行到底。之后把用回代法解除的值用图像显示出来。每一次列的变化都画成一幅图,最后以动画显示。参数传递方面,在输入页面输入的是需要方程组,输入页面通过MATLABWEBSERVER传递给MATLAB的是一个结构,其内容是该方程组(因为网页传递给MATLAB的是字符数组,所以需要制作一个字符数组转化为数字数组的函数)。MATLAB计算后通过MATLABWEBSERVER将计算结果返回给网页。图像以及动画在服务器制作,并返回给输出页面。本次研究会尽量多覆盖常用算法。其余算法可
17、以根据研究需要在设计中继续添加25其余因素的实现作为人机交互的教学界面,应该做得尽量友好简介,方便学习者的学习。可以使用网页制作工具(本研究使用的是FRONTPAGE)来美化网页,然后对网页做一些合理的改进。比如在演示前,都会出现一段文字,对该算法进行详细讲解,介绍这个算法并说明优缺点。然后再通过演示,可以有效地提高学习效率。综合以上所述,本课题期望实现以下目标根据该课程教学大纲的要求,给出详细的算法讲解、算法流程、参考程序等,特别是能够清楚地显示各种算法在不同条件的运算过程和最终结果,可以用图形直观地显示各种变化。学员可以自己修改参数,完成各种数值试验。该系统采用B/S的形式,能在网络上运行
18、,学习者可以通过网络使用。下图是整个应用程序的基本框架7图1应用程序的基本框架四、研究的总体安排与进度20101126201012搜集资料,课题调研,对任务进行初步了解。201012120101220确立系统结构及功能,编写开题报告,翻译英文文献和完成综述。2011120112完成系统核心部分各种算法的具体演示以及与输入输出页面的结合。2011220114对系统进行最后的美化与修饰。然后将系统运用于教学和学生实验中,对所做工作总结,写毕业论文。五、主要参考文献1APESTERANDRISMAILOVINTERACTIVEAPPLICATIONSINTEACHINGWITHTHEMATLABWE
19、BSEVERJVESTNIKNATIONALNOGOTECHNICESKOGOUNIVERSITETA“KCHPI“,2214192CHENGCHENGLIAWEBSERVICEMODELFORCONDUCTINGRESEARCHINIMAGEPROCESSINGJJOURNALOFCOMPUTINGSCIENCESINCOLLEGES,2010,2552942993庄思发利用MATLABWEBSERVER实现在线作图J计算机应用系统,2010,19(6)2232254江玉珍MATLAB应用于图形学中的计算机动画的教学研究J电脑知识技术,2010,611533753385翟璐璐,谢维奇基于MA
20、TLABWEBSERVER的数值分析网络实验室的开发与实践J福建电8脑,2007,(11)1221246张晓光,王艳芬,王刚,刘卫东基于MATLABWEBSERVER的数字信号处理远程仿真J电气电子教学学报,2009,31186877姜浩智,廖宁华VC与MATLAB混合编程的实现方法J中国高新技术企业,2010,(6)13158李伟红,龚卫国,秦岚,刘嘉敏基于MATLAB和WEB技术的远程数据处理方法J测控技术,2004,(4)23259金一庆,陈越,王冬梅数值方法M北京机械工业出版社,200010张德丰,赵书梅,刘国希MATLAB图形与动画设计M,北京国防工业出版社,20099毕业设计文献综
21、述电气工程与自动化基于MATLABWEBSERVER的数值计算算法演示与实现摘要数值方法在工程技术领域的应用非常广泛,它已经成为各大工程院校必学的科目之一。MATLABWEBSERVER是MATLAB的一个组件,它给MATLAB与网络的连接提供了途径。利用它我们可以实现MATLAB与网络的交互。目前有很多研究就是基于这个技术。同时,MATLAB丰富的图像功能和最新的动画制作功能,为算法演示提供了一个非常好的载体。以上技术为算法演示的形象化和网络化提供了可能性。另外,本应用程序在各大领域,都能发挥作用。关键词MATLAB;MATLABWEBSERVER;图像处理与动画设计;数值方法;演示1、前言
22、21世纪,人类进人信息时代,数值计算已和理论研究、科学实验并列为科学研究的三大分支。另一方面,计算机已成为科学与工程技术等领域不可缺少的工具。应用数学方法、以计算机作为工具来提高解决各种实际问题的能力是新世纪现代化建设的需要,也是知识更新的必要环节。因此,现在数值计算方法课程几乎已成为所有理工科学生的必修的专业基础课程。这门课程内容丰富、有自身理论体系,既有纯数学高度抽象性与严密科学性的特点,又有应用的广泛性与实际实验的高度技术性的特点,是一门与计算机使用密切结合的实用性很强的课程1。MATLAB是适合多学科,多种工作平台的功能强大、界面友好且开放性强的大型优秀应用软件,同时也是国内外高等院校
23、高等数学、数值分析、数字信号处理、自动控制理论以及工程应用等课程的基本教学、实验仿真工具。MATLAB不但拥有强大的数值运算能力,同时也拥有极其出色的图形处理能力。MATLAB绘图功能界面及交互性非常好,作图效果非常理想。无论是二维平面图形还是三维立体图形,都具有非常逼真的效果。另外,MATLAB的不断更新,使之具备了高效、便捷的动画视频处理能力。网络技术在全世界发展势头非常迅猛,表明了网络终将遍及全世界的每一个10角落,每个人都能很容易使用它。随着网络技术的成熟,利用该技术提高教学水平,已经成为当今教育技术发展的潮流。通过网络,实现网上教学,具有教学面广、信息量大,实践性强等特点。同时,也可
24、以突破传统教学课堂的局限性,形成一种主动地、协作的、开放的学习方式。MATLABWEBSERVER是MATLAB的一个组件,它给MATLAB与网络的连接提供了途径。用户在自己电脑的输入页面上输出自己想要的数据,计算的结果通过用户设计的输出页面显示在用户的浏览器上2。目前有很多基于MATLABWEBSERVER的应用程序开发研究。2、研究历史随着计算机技术的迅速发展,数值方法在工程技术领域中的应用越来越广泛,并且已成为数学与计算机之间的桥梁。要解决工程问题,往往需要处理许多数学模型,这要花费大量的人力和时间,同时许多数学模型无法用解析法得到解,使用数值方法并利用计算机就可以解决这些问题1。因此,
25、有关“数值方法”已成为了各高等院校工程类学生必修课程之一。但是,传统的教学过程中,长期以来一直采用黑板式的单一教学方式,缺乏可视化的直观表现,完全依靠课堂上教师手工的演算和推导,效率很低,难以解算复杂的计算问题。而用手工演算来展示数值计算的工作过程,根本体现不出这门课的特点。学生完全依靠做习题来巩固和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析,严重影响和制约了教学效果。学生把大量精力和时间用于繁杂的手工数学运算,而未真正理解算法的实质3。而单纯通过MATLAB来直接编程并演示各种算法,效果也并不是很显著。一方面,这需要编程来实现,这对初学者,特别是对算法不理解或者
26、对MATLAB不是很了解的同学,是非常困难的。另外,通常的MATLAB算法程序只会给出结果,具体的中间计算过程需要通过观察程序来学习。也显得很不方便。另一方面,张晓光等人提到,这必须要求每一台电脑都安装MATLAB这个软件。但这样有两个比较明显的不足安装耗时且占用内存大;没有经过处理的MATLAB程序只能单机使用,不能共享使用4。3、研究现状MATLAB的WEB应用由MATLABWEBSERVER和MATLABWEB服务代理两部分组成。11MATLABWEBSERVER是一个多线程可执行的TCP/IP应用程序。MATLABSERVEREXE是MATLAB应用程序运行的服务器环境,负责管理WEB
27、应用与MATLAB间的通讯MATLABWEB服务代理是一个可执行程序MATWEBEXE,一个MATLABWEB服务器的TCP/IP客户端,同时也是WEB的CGI扩展它将对MATLAB的请求重新定向到MATLABSERVEREXE进行处理。一个完整的实验通常由三部分组成输入HTML文档,MATLAB程序M文件和输出HTML模板文档。用户在浏览器上输入数据,提交给服务器上的MATLAB进行计算,把计算结果显示在浏览器上。MATLABSERVER是一个多线程的基于TCP/IP的服务器。它运行输入HTML文档内的的隐藏域MLMFILE的值指定的M文件中,在HTML文件、MATLAB和M文件之间建立联系
28、,唤起文件MATWEBEXE,再由它来执行这个M文件,MATLAB是MATLABSERVER的一个客户端应用,利用CGI把HTML的输入数据传给MATLABSERVER3。该技术的关键主要包括以下几步服务器端架设、编写输入页面、编写输出页面及编写MATLABM文件。其中输入页面及输出页面是供客户端机器在WEB浏览器中浏览的网页,它们是客户端及MATLABSERVER实现数据传输的载体,输入页面将用户请求的数据通过WEB服务器传递给MATLABSERVER,而MATLABSERVER再调用MATLAB进行运算,然后再将输出结果传递到输出网页中,最后再通过WEB服务器传递到客户机中。而M文件则用于
29、处理输入页面中用户请求的各种变量、函数及数据等5。目前有很多研究都是基于MATLABWEBSERVER。例如,牛肉网上质量检测程序开发6、MATLAB在线作图5、网络实验室构建3、远程教学课件开发等等。因此,借鉴以上研究,对在线算法演示是很有帮助的。人们只需通过INTERNET将数据发送给MATLABWEB服务器,借助MATLAB的强大计算与图形展示功能,可很容易地获得计算结果。然而,之前的研究基本都是探寻MATLAB的网络数据传输方式,并利用它来达成数据传输和服务器计算的目的7。因此,传输回来的只是计算的结果(数字,字符,或者图像),但是,它们对数据的处理过程,却并没有所表现。这样是不能作为
30、演示和教学应用程序的。只能当做一个网络数据处理软件。因为作为一个算法教学和演示程序,它的重心应该是算法过程的表现,而不仅仅是要一个结果。所以,我们需要在以上的研究的基础上,寻找一种更形象化的演示方式,然后尝12试构建一个基于MATLABWEBSERVER的数值计算算法的演示和教学应用软件。在表现形式这一方面,目前的MATLAB提供了非常好的支持。计算机图形技术的发展引人注目,其交互性、可视化方法早已渗透到其他学科的研究及应用之中,而其不断创新的技术也广泛地影响着社会的各个研究领悟,为人们学习、工作、生活带来实质性的便利和革新。计算机动画师计算机技术中最活跃的分支之一,它的发展与图形学的发展紧密
31、相关8。MATLAB在计算机图形、图像处理上已显示了令人瞩目的计算及可视化功能,并不断完善,使之具备了高效、便捷的动画视频处理能力9。MATLAB的动画实现的大致方式MATLAB实现动画的方式有很多种,可以直接调用系统的动画函数产生动画,也可以通过不断显示更新的静态画面以实现动画变化效果;还可以通过不断改变视窗大小、视角变化、颜色变化产生动画。在动画生成过程中,通过捕捉一系列当前帧又可将动画保存成视频文件9。MATLAB的编程方式有很多,有C语言实现10、M文件编程1等很多途径。4、发展潮流MATLABWEBSERVER技术以及数值算法的应用与演示,可以应用到各高等院校的实验室教学,自主学习,
32、甚至课堂演示,是一个非常实用的教学软件。同时,这种强大的计算能力,友好的演示方式,便捷的浏览器和服务器结构B/S,使它在各种领域(包括金融、农业、工业、教育、服务业等行业)都能得到充分的利用。从简单的应用,比如网上方程求解,到各种复杂的应用,比如网络虚拟实验室构建、网络数据分析、股票趋势分析、工业实时分析,这种基于MATLABWEBSERVER的演示形式都能发挥非常优秀的作用。5、总结MATLABWEBSERVER让用户自由地输入和修改参数,完成各种数值试验。目前有很多基于其的研究。该系统采用B/S的形式,通过MATLABWEBSERVER,能在网络上运行,学习者可以通过网络使用。MATLAB
33、拥有优秀的计算能力和图像功能,与MATLABWEBSERVER结合,能够成为很有效的算法演示软件。同时,本远程数据处理方法可推广应用到不同的远程数据处理领域,具有很高的推广价值。参考文献1金一庆,陈越,王冬梅数值方法M北京机械工业出版社,2000132APESTER,RISMAILOVINTERACTIVEAPPLICATIONSINTEACHINGWITHTHEMATLABWEBSEVERJVESTNIKNATIONALNOGOTECHNICESKOGOUNIVERSITETA“KCHPI“,2214193翟璐璐,谢维奇基于MATLABWEBSERVER的数值分析网络实验室的开发与实践J福建
34、电脑,2007,(11)1221244张晓光,王艳芬,王刚,刘卫东基于MATLABWEBSERVER的数字信号处理远程仿真J电气电子教学学报,2009,31186875庄思发利用MATLABWEBSERVER实现在线作图J计算机应用系统,2010,19(6)2232256CHENGCHENGLIAWEBSERVICEMODELFORCONDUCTINGRESEARCHINIMAGEPROCESSINGJJOURNALOFCOMPUTINGSCIENCESINCOLLEGES,2010,2552942997李伟红,龚卫国,秦岚,刘嘉敏基于MATLAB和WEB技术的远程数据处理方法J测控技术,20
35、04,(4)23258张德丰,赵书梅,刘国希MATLAB图形与动画设计M,北京国防工业出版社,20099江玉珍MATLAB应用于图形学中的计算机动画的教学研究J电脑知识技术,2010,6115337533810姜浩智,廖宁华VC与MATLAB混合编程的实现方法J中国高新技术企业,2010,(6)131514本科毕业设计(20届)基于MATLABWEBSERVER的数值计算算法演示与实现15摘要【摘要】随着计算机技术的迅速发展,数值方法在工程技术领域中的领域越来越广泛,并且已成为与计算机之间的桥梁,和理论研究、科学实验并列为科学研究的三大分支。本文主要研究如何基于MATLABWEBSERVER,
36、通过网络,对各个常用算法进行演示,来达到方便数值方法教学的目的。系统由三个部分组成系统的运行环境、算法演示功能、基于MATLABWEBSERVER由主/客户端数据传递。本文在分析基于网络传送的数据结构的基础上,着重研究和实现了数值计算算法在MATLABWEBSERVER中的移植。实验结果正确,演示系统运行稳定可靠,完全胜任基于网络的数值算法教学。【关键词】MATLABWEBSERVER算法演示网络化教学数据传递16ABSTRACT【ABSTRACT】WITHTHERAPIDDEVELOPMENTOFCOMPUTERTECHNOLOGY,NUMERICALMETHODSAREWIDELYAPPL
37、IEDINTHEFIELDOFENGINEERINGTECHNOLOGY,ANDHAVEBECOMEABRIDGEBETWEENCOMPUTERSCIENCENUMERICALMETHOD,ASWELLASTHEORETICALRESEARCHANDSCIENTIFICEXPERIMENTSARECALLEDTHETHREEBRANCHESOFSCIENTIFICRESEARCHTHISSTUDY,WHICHISBASEDONMATLABWEBSERVER,ISAIMEDATFINDINGAWAYTODEMONSTRATEALGORITHMSTHROUGHTHEINTERNETTHUSTHEN
38、UMERICALMETHODTEACHINGCOULDBEMORECONVENIENTINORDERTOACHIEVETHISREQUIREMENT,THISSTUDYSHOULDCOMPLETETHREEMODULES,INCLUDINGTHESYSTEMENVIRONMENT,THEDEMONSTRATIONOFALGORITHMSANDTHEDATATRANSMISSIONBASEDONTHEMATLABWEBSEVERBETWEENCLIENTANDSERVERTHISSTUDYANALYSESTHEDATATRANSMISSIONSTRUCTUREBASEDONTHENETANDRE
39、ALIZETHETRANSPLANTATIONOFTHENUMERICALALGORITHMTOMATLABWEBSERVERTHEEXPERIMENTALRESULTSTURNOUTTOBECORRECTANDTHEDEMONSTRATIONSYSTEMSARESTABLETHISSYSTEMISENTIRELYSUPERIORTOTHENUMERICALTEACHINGBASEDONTHENETWORK【KEYWORDS】MATLABWEBSERVERTHEDEMONSTRATIONOFALGORITHMSNETWORKINGTEACHINGDATATRANSMISSION17目录摘要15
40、ABSTRACT16目录171绪论1911引言1912研究背景1913本文研究的目的和意义2014MATLAB语言及MATLABWEBSERVER概述20141MATLAB语言概述20142MATLABWEBSERVER概述2115论文研究内容及论文的结构安排22151主要研究内容22152结构安排222系统运行环境配置2421服务器的选择2422APACHE的配置243MATLABWEBSERVER的数据传递2731演示系统组成2732基于MATLABWEBSERVER实现数据传递2733MATLABWEBSERVER的配置2834用户界面30341输入网页的编写30342输出网页的编写31
41、343主网页的编写3235对M文件的修改344基于MATLABWEBSERVER的算法演示实现3541参数的处理35411输入参数的处理35412输出参数的处理3542图像与动画36421图像36422动画3843网页4044基于MATLABWEBSERVER的算法具体演示形式4045演示程序的制作445实验结果及分析466总结与展望5218参考文献53致谢错误未定义书签。1绪论11引言数值方法在工程技术领域的应用非常广泛,它已经成为各大工程院校必学的科目之一。MATLABWEBSERVER是MATLAB的一个组件,它给MATLAB与网络的连接提供了途径。利用它我们可以实现MATLAB与网络的
42、交互。目前有很多研究就是基于这个技术。同时,MATLAB丰富的图像功能和最新的动画制作功能,为算法演示提供了一个非常好的载体。以上技术为算法演示的形象化和网络化提供了可能性。本应用程序包含了非线性方程求根、解线性方程组的直接法、解线性方程组的迭代法、插值法、曲线拟合、数值积分等章节的算法演示。12研究背景随着计算机技术的迅速发展,数值方法在工程技术领域中的应用越来越广泛,并且已成为与计算机之间的桥梁,和理论研究、科学实验并列为科学研究的三大分支。要解决工程问题,往往需要处理许多数学模型,这要花费大量的人力和时间,同时许多数学模型无法用解析法得到解。使用数值方法并利用计算机就可以解决这些问题1。
43、目前,有关“数值方法”成为了各高等院校工程类学生必学课程之一。然而,当前有关各种数值计算算法的演示以及教学,都相对比较呆板和单一。老师通过板书,或者使用一个固定PPT、FLASH动画(一般都是提前做好的一个特定例子)来推导并演示一种算法的大致流程。但是,这样无法具体到每一个方程计算过程,不方便学生的实际理解。同时,如果碰到一些非常繁杂的计算,在课堂中根本无法解答。这样严重影响教学质量2。因此,我们有必要寻求一种更有效的教学和演示方式。为了提高教学质量,目前各大院校都有使用MATLAB来进行教学,但是这种单纯通过MATLAB初级计算功能来直接编程并演示各种算法的方式,效果并不是很显著。一方面,这
44、需要编程来实现,这对初学者,特别是对算法不理解或者对MATLAB不是很了解的学员,是相对比较困难的。另外,通常的MATLAB算法程序只会给出结果,具体的中间计算过程需要通过观察程序来学习。也显得很繁杂,抽象。另一方面,这必须要求每一台电脑都安装MATLAB这个软件,显得非常不方便的3。近年来,基于MATLABWEBSERVER的研究已经日益流行。基于该技术,可以使MATLAB教学网络化。用户可以不用安装MATLAB,就能通过网络观看各个算法的演示和计算。从来改进上面提到的不足之处。13本文研究的目的和意义本研究通过MATLAB算法编程、绘图、动画制作,来生动、丰富地向学习者们展示各算法的运算过
45、程与原理,将算法的演示具体到每一个具体例子。并基于MATLABWEBSERVER,采用B/S结构(浏览器与服务器结构)来构建一个网络教学实验室,将演示和教学网络化2。主机利用MATLABWEBSERVER来实现网页和本机数据的传递,然后调用服务端的MATLAB来汇出图像,制作动画以及计算出计算结果。再通过网络反馈给用户。这样,在教学和演示上,就避免了安装MATLAB软件和烦琐的程序输入与调试的局限性,能随时随地的利用INTERNET方便快捷的进行演示。用户只需要在输入页面输入要求的变量,提高给服务器,便会得到一系列的演示图像或者动画,以及计算结果4。基于MATLABWEBSERVER,让数值计
46、算算法演示和教学更加便捷、直观、生动、形象、高效,便是本文的研究意义。14MATLAB语言及MATLABWEBSERVER概述141MATLAB语言概述MATLAB是矩阵实验室MATRIXLABORATORY)的简称,是美国MATHWORKS公司出品的商业教学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB的功能非常强大,下面是几个主要功能(1)数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单元,还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言MAPLE相结合,使得MATLAB具有符号计算功能。(2)绘图功能MATLA
47、B提供了两个层次的绘图操作一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。(3)编程语言MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。(4)MATLAB工具箱许多学科,在MATLAB中都有专用工具箱,先已有30多个工具箱,但MATLAB语言的拓展远远没有结束,各学科的相互促进,将使得MATLAB更加强大。本研究选择使用MATLAB65版本。142MATLABWEBSERVER概述MATLABWEBSERVER是MATLAB的一个组件,它可以使实现以下功能用户在浏览器输入数据,提交给服务器上的MAT
48、LAB,进行计算,把计算结果在浏览器上显示5。其工作原理如下MATLAB的WEB应用由MATLABWEBSERVER和MATLABWEB服务代理两部分组成。MATLABWEBSERVER是一个多线程可执行的TCP/IP应用程序。MATLABSERVEREXE是MATLAB应用程序运行的服务器环境,负责管理WEB应用与MATLAB间的通讯。MATLABWEB服务代理是一个可执行程序MATWEBEXE,一个MATLABWEB服务器的TCP/IP客户端,同时也是WEB的CGI扩展它将对MATLAB的请求重新定向到MATLABSERVEREXE进行处理。一个完整的实验通常由三部分组成输入HTML文档,
49、MATLAB程序M文件和输出HTML模板文档。用户在浏览器上输入数据,提交给服务器上的MATLAB进行计算,把计算结果显示在浏览器上。MATLABSERVER是一个多线程的基于TCP/IP的服务器。它运行输入HTML文档内的的隐藏域MLMFILE的值指定的M文件中,在HTML文件、MATLAB和M文件之间建立联系,唤起文件MATWEBEXE,再由它来执行这个M文件,MATLAB是MATLABSERVER的一个客户端应用,利用CGI把HTML的输入数据传给MATLABSERVER2。因此,基于MATLABWEBSERVER的工作原理,根据其应用需要以下几部分的工作(1)建立一个向MATLAB提交数据的HTML输入文档。(2)建立一个显示MATLAB计算结果的HTML输出文档。(3)建立一个处理输入数据和计算结果的M文件。MATLABWEBSERVER的应用原理如下图所示图11MATLABWEBSERVER的应用原理图15论文研究内容及论文的结构安排151主要研究内容本文主要研究如何基于MATLABWEBSERVER来构建一个服务程序,从而实现对数值算法进行演示。因此需要选用合适的表现形式,来演示每一个算法。然后再使用MATLABSERVER来实现网络数据的交互。综上所述需要完成以下内容的研究构建服务器输入输出网页编写对算法进行编程6处理输入输出参数,完成