基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc

上传人:文初 文档编号:17408 上传时间:2018-04-26 格式:DOC 页数:37 大小:4.03MB
下载 相关 举报
基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc_第1页
第1页 / 共37页
基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc_第2页
第2页 / 共37页
基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc_第3页
第3页 / 共37页
基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc_第4页
第4页 / 共37页
基于MATLAB WebServer的数值计算算法演示与实现【毕业论文】.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、本科毕业设计(20届)基于MATLABWEBSERVER的数值计算算法演示与实现所在学院专业班级电气工程及其自动化学生姓名学号指导教师职称完成日期年月I摘要【摘要】随着计算机技术的迅速发展,数值方法在工程技术领域中的领域越来越广泛,并且已成为与计算机之间的桥梁,和理论研究、科学实验并列为科学研究的三大分支。本文主要研究如何基于MATLABWEBSERVER,通过网络,对各个常用算法进行演示,来达到方便数值方法教学的目的。系统由三个部分组成系统的运行环境、算法演示功能、基于MATLABWEBSERVER由主/客户端数据传递。本文在分析基于网络传送的数据结构的基础上,着重研究和实现了数值计算算法在

2、MATLABWEBSERVER中的移植。实验结果正确,演示系统运行稳定可靠,完全胜任基于网络的数值算法教学。【关键词】MATLABWEBSERVER算法演示网络化教学数据传递IIABSTRACT【ABSTRACT】WITHTHERAPIDDEVELOPMENTOFCOMPUTERTECHNOLOGY,NUMERICALMETHODSAREWIDELYAPPLIEDINTHEFIELDOFENGINEERINGTECHNOLOGY,ANDHAVEBECOMEABRIDGEBETWEENCOMPUTERSCIENCENUMERICALMETHOD,ASWELLASTHEORETICALRESEAR

3、CHANDSCIENTIFICEXPERIMENTSARECALLEDTHETHREEBRANCHESOFSCIENTIFICRESEARCHTHISSTUDY,WHICHISBASEDONMATLABWEBSERVER,ISAIMEDATFINDINGAWAYTODEMONSTRATEALGORITHMSTHROUGHTHEINTERNETTHUSTHENUMERICALMETHODTEACHINGCOULDBEMORECONVENIENTINORDERTOACHIEVETHISREQUIREMENT,THISSTUDYSHOULDCOMPLETETHREEMODULES,INCLUDING

4、THESYSTEMENVIRONMENT,THEDEMONSTRATIONOFALGORITHMSANDTHEDATATRANSMISSIONBASEDONTHEMATLABWEBSEVERBETWEENCLIENTANDSERVERTHISSTUDYANALYSESTHEDATATRANSMISSIONSTRUCTUREBASEDONTHENETANDREALIZETHETRANSPLANTATIONOFTHENUMERICALALGORITHMTOMATLABWEBSERVERTHEEXPERIMENTALRESULTSTURNOUTTOBECORRECTANDTHEDEMONSTRATI

5、ONSYSTEMSARESTABLETHISSYSTEMISENTIRELYSUPERIORTOTHENUMERICALTEACHINGBASEDONTHENETWORK【KEYWORDS】MATLABWEBSERVERTHEDEMONSTRATIONOFALGORITHMSNETWORKINGTEACHINGDATATRANSMISSIONIII目录摘要IABSTRACTII目录III1绪论111引言112研究背景113本文研究的目的和意义114MATLAB语言及MATLABWEBSERVER概述2141MATLAB语言概述2142MATLABWEBSERVER概述215论文研究内容及论文的

6、结构安排3151主要研究内容3152结构安排42系统运行环境配置521服务器的选择522APACHE的配置53MATLABWEBSERVER的数据传递831演示系统组成832基于MATLABWEBSERVER实现数据传递833MATLABWEBSERVER的配置934用户界面11341输入网页的编写11342输出网页的编写12343主网页的编写1335对M文件的修改154基于MATLABWEBSERVER的算法演示实现1641参数的处理16411输入参数的处理16412输出参数的处理1642图像与动画17421图像17422动画1943网页2044基于MATLABWEBSERVER的算法具体演

7、示形式2045演示程序的制作245实验结果及分析266总结与展望32参考文献33致谢错误未定义书签。11绪论11引言数值方法在工程技术领域的应用非常广泛,它已经成为各大工程院校必学的科目之一。MATLABWEBSERVER是MATLAB的一个组件,它给MATLAB与网络的连接提供了途径。利用它我们可以实现MATLAB与网络的交互。目前有很多研究就是基于这个技术。同时,MATLAB丰富的图像功能和最新的动画制作功能,为算法演示提供了一个非常好的载体。以上技术为算法演示的形象化和网络化提供了可能性。本应用程序包含了非线性方程求根、解线性方程组的直接法、解线性方程组的迭代法、插值法、曲线拟合、数值积

8、分等章节的算法演示。12研究背景随着计算机技术的迅速发展,数值方法在工程技术领域中的应用越来越广泛,并且已成为与计算机之间的桥梁,和理论研究、科学实验并列为科学研究的三大分支。要解决工程问题,往往需要处理许多数学模型,这要花费大量的人力和时间,同时许多数学模型无法用解析法得到解。使用数值方法并利用计算机就可以解决这些问题1。目前,有关“数值方法”成为了各高等院校工程类学生必学课程之一。然而,当前有关各种数值计算算法的演示以及教学,都相对比较呆板和单一。老师通过板书,或者使用一个固定PPT、FLASH动画(一般都是提前做好的一个特定例子)来推导并演示一种算法的大致流程。但是,这样无法具体到每一个

9、方程计算过程,不方便学生的实际理解。同时,如果碰到一些非常繁杂的计算,在课堂中根本无法解答。这样严重影响教学质量2。因此,我们有必要寻求一种更有效的教学和演示方式。为了提高教学质量,目前各大院校都有使用MATLAB来进行教学,但是这种单纯通过MATLAB初级计算功能来直接编程并演示各种算法的方式,效果并不是很显著。一方面,这需要编程来实现,这对初学者,特别是对算法不理解或者对MATLAB不是很了解的学员,是相对比较困难的。另外,通常的MATLAB算法程序只会给出结果,具体的中间计算过程需要通过观察程序来学习。也显得很繁杂,抽象。另一方面,这必须要求每一台电脑都安装MATLAB这个软件,显得非常

10、不方便的3。近年来,基于MATLABWEBSERVER的研究已经日益流行。基于该技术,可以使MATLAB教学网络化。用户可以不用安装MATLAB,就能通过网络观看各个算法的演示和计算。从来改进上面提到的不足之处。13本文研究的目的和意义2本研究通过MATLAB算法编程、绘图、动画制作,来生动、丰富地向学习者们展示各算法的运算过程与原理,将算法的演示具体到每一个具体例子。并基于MATLABWEBSERVER,采用B/S结构(浏览器与服务器结构)来构建一个网络教学实验室,将演示和教学网络化2。主机利用MATLABWEBSERVER来实现网页和本机数据的传递,然后调用服务端的MATLAB来汇出图像,

11、制作动画以及计算出计算结果。再通过网络反馈给用户。这样,在教学和演示上,就避免了安装MATLAB软件和烦琐的程序输入与调试的局限性,能随时随地的利用INTERNET方便快捷的进行演示。用户只需要在输入页面输入要求的变量,提高给服务器,便会得到一系列的演示图像或者动画,以及计算结果4。基于MATLABWEBSERVER,让数值计算算法演示和教学更加便捷、直观、生动、形象、高效,便是本文的研究意义。14MATLAB语言及MATLABWEBSERVER概述141MATLAB语言概述MATLAB是矩阵实验室MATRIXLABORATORY)的简称,是美国MATHWORKS公司出品的商业教学软件,用于算

12、法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB的功能非常强大,下面是几个主要功能(1)数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单元,还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言MAPLE相结合,使得MATLAB具有符号计算功能。(2)绘图功能MATLAB提供了两个层次的绘图操作一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。(3)编程语言MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。(4)MATLAB工具箱许多学科,在MA

13、TLAB中都有专用工具箱,先已有30多个工具箱,但MATLAB语言的拓展远远没有结束,各学科的相互促进,将使得MATLAB更加强大。本研究选择使用MATLAB65版本。142MATLABWEBSERVER概述MATLABWEBSERVER是MATLAB的一个组件,它可以使实现以下功能用户在浏览器输入数据,提交给服务器上的MATLAB,进行计算,把计算结果在浏览器上显示5。其工作原理如下3MATLAB的WEB应用由MATLABWEBSERVER和MATLABWEB服务代理两部分组成。MATLABWEBSERVER是一个多线程可执行的TCP/IP应用程序。MATLABSERVEREXE是MATLA

14、B应用程序运行的服务器环境,负责管理WEB应用与MATLAB间的通讯。MATLABWEB服务代理是一个可执行程序MATWEBEXE,一个MATLABWEB服务器的TCP/IP客户端,同时也是WEB的CGI扩展它将对MATLAB的请求重新定向到MATLABSERVEREXE进行处理。一个完整的实验通常由三部分组成输入HTML文档,MATLAB程序M文件和输出HTML模板文档。用户在浏览器上输入数据,提交给服务器上的MATLAB进行计算,把计算结果显示在浏览器上。MATLABSERVER是一个多线程的基于TCP/IP的服务器。它运行输入HTML文档内的的隐藏域MLMFILE的值指定的M文件中,在H

15、TML文件、MATLAB和M文件之间建立联系,唤起文件MATWEBEXE,再由它来执行这个M文件,MATLAB是MATLABSERVER的一个客户端应用,利用CGI把HTML的输入数据传给MATLABSERVER2。因此,基于MATLABWEBSERVER的工作原理,根据其应用需要以下几部分的工作(1)建立一个向MATLAB提交数据的HTML输入文档。(2)建立一个显示MATLAB计算结果的HTML输出文档。(3)建立一个处理输入数据和计算结果的M文件。MATLABWEBSERVER的应用原理如下图所示图11MATLABWEBSERVER的应用原理图15论文研究内容及论文的结构安排151主要研

16、究内容本文主要研究如何基于MATLABWEBSERVER来构建一个服务程序,从而实现对数值算法进行演示。因此需要选用合适的表现形式,来演示每一个算法。然后再使用MATLABSERVER来实现网络数据的交互。综上所述需要完成以下内容的研究构建服务器4输入输出网页编写对算法进行编程6处理输入输出参数,完成参数传递用各种方式对算法进行有效演示(动画、文字、图像等)152结构安排第一章为绪论,主要介绍本文的研究背景、研究目的及意义和技术支持,在此基础上提出了本文所要解决的主要问题和研究的主要内容。第二章介绍了服务器的选择以及如何利用APACHE构建服务器。第三章重点介绍MATLABWEBSERVER的

17、配置以及输入输出网页的编写第四章前几章的基础上,介绍如何基于MATLABWEBSERVER进行输入输出函数处理与传递以及归纳了各个算法的具体演示方式。第五章为总结及展望,主要对全文进行总结,并本应用程序的发展作了描述。52系统运行环境配置21服务器的选择客户端向服务器传递数据,服务器调用本地的MATLAB完成计算,然后将结果与演示返回到客户端的浏览器上。要实现这个目标,必须先配置好服务器。服务器有很多选择,相对比较出名是APACHE和IIS。IIS(INTERNETINFORMATIONSERVICES是由微软公司提供的基于运行MICROSOFTWINDOW的互联网基本服务。IIS意味着你能发

18、布网页,并且有ASP、JAVA、VBSCRIPT产生页面,有着一些扩展功能。APACHE是世界上排名第一的服务器,根据NETCRAFT所做的调查,世界上百分之五十以上的WEB服务器在使用APACHE。它可以运行在几乎所有广泛使用的计算机平台上。APACHE的特点是简单、速度快、性能稳定,并可做代理服务器使用。相对于IIS,APACHE将会更加稳定。IIS会偶尔出现一些突发性错误,这在APACHE中是非常少见的。但是IIS在一些扩展功能上,相对于APACHE比较有广泛性。不过这可以通过安装一些插件来解决。在本研究中,选择了APACHE来配置服务器。22APACHE的配置(1)下载并安装APACH

19、E本研究选择安装的APACHE版本为APACHE_1320。在安装过程中会遇到如图21的对话框。图21安装过程中SERVERINFORMATION对话框该对话框中三项必须填写、如果没有申请域名,NETWORKDOMAIN项可以随便填写,在以后需要6的时候可以在配置文件HTTPDCONF中修改,主机名填写自己的IP地址也可以。本研究选择把APACHE安装在C盘,安装完成后所有文件都在CAPACHE下。(2)将研究所用的相关文件放入对应的文件夹内在C盘根目录下新建文件夹TESTWEB。其中应该包含以下类型的内容向MATLAB提交数据的HTML输入文档、显示MATLAB计算结果的HTML输出文档、处

20、理输入数据和计算结果的M文件、CGIBIN文件夹(里面放置MATWEBCONF以及MATWEBEXE)、ICONS文件夹(生成的图片和动画将放于该文件夹内)。8(3)与本次研究相关的APACHE配置首先,需要修改默认目录,将其指向CTESTWEB。在CAPACHECONF下找到HTTPDCONF文件,其为APACHE的配置文件。对APACHE的配置要通过修改它来完成。打开该文件,找到DOCUMENT项,将其中的DOCUMENTROOT”C/APACHEHTDOCS”改为DOCUMENTROOT“C/TESTWEB”。DOCUMENTROOT指令的作用是组成网络上可以观看的主文档树的目录。其语法

21、为DOCUMENT目标路径。于是对目标路径的访问会指向C/APACHE/HTDOCS/INDEXHTML。然后需要设置CGI。因为MATLABWEBSERVER是通过CGI(通用网关界面)方式工作的,为了让APACHE使用CGI(本研究中为MATWEBEXE)程序,必须为CGIBIN目录打开特定的权限。在配置文件中找到SCRIPTALIAS/CGIBIN/“C/APACHE/CGIBIN/“这一项,将其修改为SCRIPTALIAS/CGIBIN/“C/TESTWEB/CGIBIN/“,以后对/CGIBIN中文件的访问实际上是对C/TESTWEB/CGIBIN/中的文件进行访问。同时将修改为。O

22、PTIONSNONE改为OPTIONSEXECCGI。表示允许在C/TESTWEB/CGIBIN目录下运行CGI程序。其中SCRIPTALIAS的作用是映射一个URL到文件系统并视之为CGI脚本。其语法为SCRIPTALIAS虚拟目录实际目录。SCRIPTALIAS/CGIBIN/“C/TESTWEB/CGIBIN/“,对虚拟目录/ICONS的访问,实际指向目录C/TESTWEB/CGIBIN/。接下来需要设置ICONS目录。本程序需要调用和生成图片,为了方便管理,将所有图片都放在ICONS文件夹中。因此需要对ICONS进行设置。找到以下内容图22HTTPDCONF文件中原来对ICONS目录的

23、设置将其修改为7图23修改后的配置其中使用了ALIAS指令。这样可以将虚拟目录/ICONS/映射到目录C/TESTWEB/ICONS/,以后对/ICONS/的访问实际上是对C/TESTWEB/ICONS/的访问。每一次更改APACHE的配置,都需要重新启动APACHE才能使配置生效。83MATLABWEBSERVER的数据传递31演示系统组成一个网络演示系统,应该让用户能够在浏览器中输入参数,提交给服务器后,返回可视化演示结果到用户的浏览器上。演示系统组成应当包括用户界面、数据传递模块以及算法演示模块。图31演示系统的基本组成本章将基于MATLABWEBSERVER,详细描述其配置及用户界面的

24、编写。通过在客户端与服务器之间的数据交互,为算法演示提供基础。32基于MATLABWEBSERVER实现数据传递MATLABWEBSERVER实现数据传递的结构框架如下图所示9图32基于MATLABWEBSERVER的结构框架图根据图中所示,用户先通过输入页面,选择需要演示的算法,将参数通过服务器传递至HTTP服务器。HTTP服务器再通过MATLABWEB,利用CGI把HTML的输入数据传送给MATLABSERVER。MATLABSERVER管理WEB应用和MATLAB之间的通信,它运行输入HTML文档内的隐藏域MLMFILE的值指定的M文件,再由它来执行这个M文件。MATLABSERVER可

25、以侦听任何一个合法的TCP/IP端口,不过要配置MATLABSERVERCONF文件,并且在该文件中还可以设置开启多少个连接。服务器的MATLAB计算得出结果后,再传递并将演示结果通过浏览器显示在用户的输出页面上。综上所述,要实现算法演示的数据传递,必须要配置MATLABWEBSERVER,编写输入输出网页,以及修改M文件。33MATLABWEBSERVER的配置WEBSERVER的系统配置文件位于MATLAB安装目录的WEBSERVER下,文件名为MATLABSERVERCONF。初始情况下,这个文件只有一行M1这个参数表示允许同时运行的MATLAB进程数,默认值为1。可以修改该参数来提高进

26、程数,但是会增加服务器的负荷。WEBSERVER的基本配置选项如下表表31WEBSERVER的基本配置参数10选项说明PNMATLABSERVER侦听的端口号默认值是8888MNMATLABSERVER同时运行的最大线程数M,默认值是1OTIMEOUT等待MATLABSERVER开始的秒数,默认值300本研究将端口号默认为80,实现语句为P80。而进程数,则根据实际需求而进行更改。WEBSERVER的配置文件位于MATLAB安装目录下的TOOLBOXWEBSERVERWSDEMOS文件夹下。文件名为MATWEBCONF。该文件为MATWEB连接MATLABSERVER需要的配置文件。必须同MA

27、TWEB程序一起放在虚拟目录/CGIBIN中。其配置参数如下表所示表32MATWEB的配置参数选项说明参考值APPLICATION必须MATLAB应用运行的M文件名WEBPEAKSMLDIR可选读写文件的工作目录,设定后将自动添加到MATLAB的搜索目录中MLDIRC/TESTWEB/ICONSMLLOG可选产生一个记录应用和MATLAB进行信息交换的日志文件。运行时需将它关闭,否则降低程序的性能C/TESTWEB/WEBPEAKSLOGMLSERVER(必须)运行MATLABSERVER主机名K;也可以是IP地址211661583MLPORT(可选)MATLABSERVER侦听的端口号,必须

28、与MATLABSERVERCONF中一致默认8888MLTIMEOUT(可选)等待MATLABSERVER的最大超时时间的秒数默认180MY_VAR用户自定义的配置变量每添加一个应用程序,都必须对其进行配置。如本研究所应用到的程序,都必须被添加到该配置文件中。否则将不能被使用。11图33本课题对MATWEB的配置例子其中LOCALHOST为服务器的IP,根据服务器的IP不同进行修改。而MLDIRC/TESTWEB/ICONS的意思是程序生成的图片将被放置C/TESTWEB/ICONS下。否则,图片将被放置在根目录CTESTWEB下。在TOOLBOXWEBSERVERWSDEMOS文件夹下,还有

29、WEBSERVER的CGI程序MATWEBEXE。本研究需要将MATWEBCONF和MATWEBEXE均放置到CTESTWEBCGIBIN下。并根据演示所需要的程序来随时配置MATWEBCONF。34用户界面341输入网页的编写输入网页的作用是让客户端的用户选择需要演示的算法,并将其需要计算的参数填写在输入网页中。在提交后,可以通过MATLABWEBSERVER送入服务器的MATLAB中进行计算。因此,输入页面必须包含各种允许客户输入的表单结构文本输入框、复选框和提交按钮等。同时,必须对文本输入框进行简洁明了的说明,让用户明确需要在其中输入的内容。这些都需要借助HTML语言实现。以雅克比迭代法

30、的输入网页为例,说明输入网页的编写。首先,必须将输入网页与MATLABWEBSERVER进行关联。为了达到这个目的,使用了。该代码的作用是在用户点击12“提交”以后,执行MATWEBEXE程序,将输入页面的表单数据提出来传递给MATLAB。其中“POST“表示把输入表单FORM的数据发给虚拟目录/CGIBIN下的CGI程序MATWEBEXE,数据传送方式为POST。表示输入表单有一个隐藏的名为MLMFILE的变量,其值为“JACOB”(雅可比),表示执行计算的M文件时JACOBM雅克比的M文件)。要让用户输入参数,必须提供文本输入框。其语句为迭代值X0。其中NAME中的变量将在提交后,作为参数

31、传递到M文件中(保存在一个结构中)。通过一定的变换就能被程序使用。MAXLENGTH表示最大输入字数,不填则没有限制。VALUE为默认值。用户填完参数,需要进行提交。其语句为。作用为向服务器提交数据。对应页面如下图34雅可比迭代法的输入页面342输出网页的编写输入网页将用户需要的演示以及计算结果显示在客户端的浏览器上。显示在输出页面上的有文字、图片、视频等内容。一方面,是编辑在输出网页上的固定内容。另一方面是服务器MATLAB计算后传递回客户端的内容,以变量形式显示在输出页面上。MATLAB传递回来的经过处理后的字符以及数字,需要置于成对的符号中。如V,其中V为一个MATLABWEBSERVE

32、R传递回来的变量,其内容为输出的字符。若是想显示通过MATLABWEBSERVER传递回来的服务器MATLAB绘制的图像,则要使用语句6。其中SRC“JB1“是图片的来源。JB1为图片的变量名,保存了图片的相对地址。因此,尽管图片的名称会随机变化,输出网页都能找到它并显示出来。在输出网页上显示生成的视频方法类似于图片。其语句为13其中MNAME为生成视频的名称而ADDRESS为生成视频的相对地址。修改上面语句的参数还能控制视频的播放方式。343主网页的编写为了方便用户浏览以及更有效地介绍算法,本研究先将输入网页和一个介绍算法的网页显示在同一个页面。在用户提交输入参数后,输出页面将取代算法说明页

33、面,与输入网页显示在同一个页面中。需要制作一个主网页来联接输入输出页面,其中有FRAME定义的两个框架。第一个名为TOPFRAME,起始文档为输入页面,第二个名为OUTPUTWINDOW,起始文档为算法讲解网页(一个对算法进行基本介绍的网页。其具体语句如下这样,就形成输入页面在上半页,说明网页在下半页的主页面。在某些程序中,将输入页面置于左边,输出页面置于右边,会更方便显示,其语句为15通过主网页,输入输出页面显示在同一个页面中,一方面便于用户观察演示结果,另一方面也方便其随时修改参数。35对M文件的修改M文件是MATLAB算法的程序。但是普通的M文件是无法通过MATLABWEBSERVER来

34、传递参数的。需要添加一定语句来把输入页面的数据传递到M文件,以及将执行M文件后的结果传递到输出页面。从HTML页面提取来的数据是结构型数据,它作为输入参数传递给M函数文件。在341中提到,NAME后的变量名就是传递到M文件的变量,存放于一个结构之中。如,那么如果你在函数中定义的参数为H,那么使用该变量的方式就是在M文件中提取该参数XHXX0。执行M文件后想要输出数据,也是需要把要输出的数据(包括字符、数值、图片、动画等)存放于一个结构中的。在M文件的最后,还需要使用一下命令TEMPLATEFILEWHICHNEWTONOUTHTMLNTHTMLREPS,TEMPLATEFILE其中S为存放输出

35、数据的结构变量。该命令的作用就是将数据传递回NEWTONOUTHTML(牛顿迭代法的输出网页)中。这样,就能在输入页面点击提交之后,将演示结果显示输出页面。因此,MATLAB算法程序若是想要移植到MATLABWEBSERVER中,必须经过一定的处理,从而使得参数能够正确传递。有关参数修改和传递以及演示问题,将在第4章进行详细描述。164基于MATLABWEBSERVER的算法演示实现41参数的处理不管是由输入网页中传递过来的输入参数,还是由服务器MATLAB计算后传递回去的输出参数,不经过处理,一般是无法使用的。因此,经由MATLABWEBSERVER传递的参数,都需要通过服务器的MATLAB

36、进行参数处理。411输入参数的处理如前面章节所说,通过输入网页传递给本机函数的参数都是字符类型。但是,在MATLAB进行计算时,需要各种类型的参数。因此,需要在编程中针对实际需求,对输入网页传递来的参数进行修改。从而能够正常使用。函数中,原本的参数是字符,那么就不需要进行修改,可以直接使用。某些特殊的地方,也可以使用恰当的方式,来使用字符变量。例如二分法中,需要输入方程。在网页中,输入一个方程,比如是X2X2。传递到函数中的是X2X2。如果这个字符变量在网页中命名为SSS,那么就可以直接使用INLINE(SSS)来直接定义一个函数,其内容为X2X2。这样,可以很方便得使用输入网页传递过来的字符

37、型参数。若是函数需要输入的参数是数值型变量,那么就需要使用STR2NUM()函数,来将输入网页传递过来的参数转化成数值型。数值,数组和矩阵等可以直接使用STR2NUM()函数来进行转化。412输出参数的处理经过服务器中的MATLAB计算之后,需要传递回给客户端输出网页的参数类型各种各样,必须要经过一定的处理,才能显示在用户的输出网页上。下面将描述本研究涉及算法的输出参数处理形式。字符型参数,可以直接显示在输出网页上。ZIFU,其中ZIFU为字符型参数。例如需要输出一句话LU无法分解,那么就可以在函数中定义一个字符变量SZIFU。其内容为上面那句话。这样,可以直接在输出网页上输出这么一句话。另外

38、,各种形式的字符变量都能很方便地输出。在编程中,不能使用DISP来输出字符。否则,输出网页会出现INTERNETSERVERERROR的问题。数值型变量的输出,要视情况进行处理。如果是一个数字的简单显示,可以不需要借助别的函数,直接用字符型变量输出的方式来显示在输出页面上。比如二分法的解A,就一个数字,可以直接在输出页面使用A来显示结果。一般情况下,需要使用使用NUM2STR函数来将数值型变量转化为字符型变量。其中NUM2STR(A,N有两个参数。其中N参数可以设置转化后字符显示数字的位数。17但是,若是想在网页中显示矩阵,使用NUM2STR()是不能将矩阵完整显示在输出网页上的。在本程序中,

39、应用了一个编程的用来画矩阵的函数,来将矩阵画成图,从而显示在输出网页上。在曲线拟合、插值法中,需要在输出网页中输出多项式。在网页中,是不支持直接输出一个多项式的。因此,必须将拟合出来的多项式转化为字符型变量。在这里,可以使用CHAR函数,来将多项式转化为字符变量。这样可以直接输出在网页上。例如,FPOLY2SYM(C,那再使用FCHAR(F),就可以将F作为字符型变量。若定义SFF,那在输出网页中,使用F,就可以直接输出显示多项式。在多项式中,输出到网页中的多项式系数往往非常长,或者以一种非常麻烦的表示形式比如说是分数形式),也需要使用一种方式来限定多项式系数的位数,这样才可以使显示看起来简洁

40、明了。在本程序中,使用VPA(F,N)这个函数。这个函数有两个参数。其中F可以是一个数,也可以是一个多项式。如果是一个数,那么N就是显示的位数。若F为多项式,那么N就限定了多项式的系数位数。这在本研究多个程序中,可以通过使用这个方式来方便多项式的显示,使其看起来清晰明了。图片、动画也是一种输出参数,其具体传递方式详见42节。42图像与动画单纯使用数值或者字符,只能显示计算的结果,是很难对一些复杂的过程进行描述以及演示的。必须借助一些工具,比如图像和动画,才能更形象地达到本研究演示的目的。421图像在一些需要演示的步骤数目是固定且不多的算法中,直接用图像来演示算法将会使编程方便简捷很多。例如雅可

41、比迭代法的演示中,着重于描述方程变换的过程,总共有3步,那就只需要对这三步的矩阵变换进行记录就可以了。在412中提到,若想在网页中输出一个矩阵,使用NUM2STR()将矩阵转化为字符是无法完整显示在网页中的。若是使用MATLAB的画图功能来将数组画成图像,插入到输出网页上,是一个取巧又方便的方法。以下举本研究中画图的一段程序为例QSIZEAF3FIGUREVISIBLE,OFFHSZA,025,275HSZ2Q1,025Q2102504,275HOLDONTEXT025Q202505,275Q1015/2,HOLDONHSZB,025Q202508,27518POS31000POS4800SE

42、TGCF,POSITION,POS,PAPERPOSITION,25253510DRAWNOWSJB1SPRINTFJACOB1SJPEG,MLIDWSPRINTJPEGF3,SJB1SJB1SPRINTF/ICONS/JACOB1SJPEG,MLID此为雅可比迭代法中绘制方程组的画图部分。其中HSZA,X,Y为自制的一段程序,用来将一个数组画成在图像上。其参数A为需要画的数组,X,Y为数组中第一个数的坐标,用来确定数组在图像中的位置。而HSZ2X,Y的作用是绘制一个只有一列的数组,其内容为X1,X2,X3X,Y参数同样是用来确定坐标。SETGCF,POSITION,POS,PAPERPOSI

43、TION,25253510中,参数25253510可以用来调节图片的长宽。HOLDON表示继续在图片中添加内容,而DRAWNOW表示开始绘制图片8。SJB1SPRINTFJACOB1SJPEG,MLIDWSPRINTJPEGF3,SJB1SJB1SPRINTF/ICONS/JACOB1SJPEG,MLID这三条语句用来将绘制的图片保存到ICONS文件夹下。其中为程序中代表该图片的文件名。而JACOB1SJPEG是保存在文件夹中该JPEG文件的名称。其中1S是一个随机的数字,由MLID确定。在本研究中,选择了以JPEG格式来保存图片。选择JPEG的原因是因为它可以把文件压缩成最小的格式。它用有损

44、压缩的方式,在获得极高的压缩率的同时能展现十分丰富生动的图像。换句话说,就是可以用最小的磁盘空间得到较好的图像品质。而且JEPG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩。JPEG适合应用于互联网,可减少图像的传输时间。因此成为目前网络上最流行的图像格式。在本程序中,图像的主要应用是显示一些数组、数据和函数图,因此,用JPEG格式完全可以满足图像的清晰度要求,同时又能加快传输效率以及减少服务器的负荷。为了避免多人访问中图片重复的问题,在M文件编程中添加了MLIDGETFIELDH,MLID这么一条语句。该语句的作用是生成一个特定的编码,用来区分每一张生成的图

45、片。例如在SJB1SPRINTFJACOB1SJPEG,MLID语句中,图片的名字就会是JACOB1开头,后面接MLID编码。例如JACOB1ML00001。这样,在多人访问中,每张图片都有各自的编码,就不会造成重复而出现演示错误。412描述了输出参数,其实图片也是程序的输出参数之一,如上面SJB1就是输出的一个参数。若是想在网页上显示生成的图片,是不能直接插入该图片的,因为该图片的名称是根据编码而随机19分配的。但是该图片在程序中的文件名是不变的(例如JB1)。因此,需要在输出网页上加上这条语句,这样系统就能根据JB1来查询图片的相对地址,从而找到图片并显示在输出网页上。同时,制作图像也是用

46、动画演示算法的基础。要先有一系列图片,才能制成演示动画。422动画在很多算法中,需要演示的步骤并不确定,而且数目很多,比较复杂,单纯使用图片并在网页中加以说明的方式,是很难形象演示算法的。这个时候,动画就是一个非常方便的工具。举牛顿迭代法的演示为例。牛顿法也称为切线法。需要不断对曲线YF(X)做切线来得到最终的迭代值。方程不同,那取切线的次数也不同。在演示中,一张张地将每一次画切线都放置在网页上是不现实的。但是,设想,若是将这一系列动作以动画的形式动态表示,是多么得生动形象方便。不断显示更新的静态画面可以实现动画变化效果。如421最后所述,制作图片是也是动画演示算法的基础。本研究的动画演示算法

47、的基本方式是先将一系列计算过程制作成图片,然后在程序中将所有图片以一定的帧数不断更新来实现演示的动态过程。制作这种动画的流程图如下图41动画制作流程图图片信息的读入语句例如M3CDATAIMREAD/ICONS/BISECT3JPEGM3COLORMAPCOLORMAP该语句的意思为将相对目录ICONS文件夹下的BISECT3JPEG文件的信息读入M3中。通过循环语句的话,就可以将一系列图片都读入M中9。20若要将包含所有图片信息的M转化成动画,就需要特定的函数。MOVIE2AVI是MATLAB自带的,制作AVI动画的语句。可以直接使用,其使用方式如下MOVIE2AVIM,AAAVI,FPS,

48、1,COMPRESSION,MSVC其中M为图片信息,AAAVI为AVI文件名称,FPS,1表示1秒钟显示一张图片。若是单纯制作动画,这是一个非常方便的语句。但是,在本研究中,却有很多不方便的地方。主要原因在于AVI格式。它的体积比较大,而且压缩标准不统一,很容易出现WINDOW媒体播放器播放不了的情况。而且AVI不是正常的流媒体。因此,当将生成的视频放于网上,很容易出现无法播放的情况。这对本研究的演示程序的应用范围扩展是不利的。因此,在本应用程序中,选择了MPG格式。MPG又称为MPEG,是运动图像压缩算法的国际标准,拥有很好的压缩性能,现已被几乎所有的计算机平台支持。但是在MATLAB65

49、中,并没有自带生成MPG文件的函数。需要下载扩展文件MPGWRITEM,使MATLAB支持MPGWRITEM,COLORMAP,AAMPG语句。但是该扩展中,没有控制播放帧数的参数。可以使用循环语句,连续播放同一张图片一定次数来控制播放图片的速度。制作好MPG格式动画之后,可以通过HTML语言,将其显示与输出网页上。通过对比,发现MPG制作的动画比AVI动画清晰很多。和图片一样,必须处理多人访问时视频生成问题。同样,通过MLIDGETFIELDH,MLID来获得一个随机的编码,然后赋予生成的视频。其语句如下所示MOVIE2AVIM,HHHH,FPS,30SADDRESSCTESTWEBICONSHHHH其中ADDRESS是动画的绝对地址。将输出网页中的视频语句中,找到FILENAME修改为FILENAME“ADDRESS“。在输出页面上,通过地址找到该视频,并进行播放。43网页除了图像、动画以及程序本身传递回来的参数,也可以在网页上添加文字说明从而达到对算法进行演示的目的,加深学习者对算法的理解。一般情况下,演示需要文字说明、图像、动画、数字等多种方式相结合。44基于MATLABWEBSERVER的算法具体演示形式针对教学需要,结合数值方法一书中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。