欢迎来到专业的尚善文档网平台! 工作总结 工作计划 读后感 发言稿 心得体会 申请书大全 思想汇报 述职报告
当前位置:尚善文档网>作文大全 > 基于Flex的常微分方程数值求解分析系统

基于Flex的常微分方程数值求解分析系统

时间:2022-03-22 11:05:02 浏览量:

摘 要:目前科研和教育领域中的分析系统存在数据处理能力弱、人机交互体验差等诸多问题。针对实际需求,分析了常微分方程数值求解分析系统的整体结构和系统各模块的功能,利用改进的求值算法和各种数值解法在Flex平台上对系统进行设计,实现了常微分方程的数值求解与分析功能。系统对常微分方程数值解法的教学、科研工作具有积极的意义。

关键词:常微分方程;数值解法;RIA;Flex

中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2012)002-0010-03

基金项目:武汉科技大学2010-2011科技创新基金研究项目(10ZRP056)。

作者简介:郭瑞(1985-),男,河北邢台人,武汉科技大学计算机科学与技术学院硕士生,研究方向为软件工程、数据库与数据挖掘;李文杰(1969-),女,湖北武汉人,硕士,武汉科技大学计算机科学与技术学院副教授,研究方向为数据库与数据挖掘、基于网络的计算机应用。

1 RIA技术概述

企业级应用程序在系统架构方面经历了几次重大的转变,RIA具有高度的用户互动性和丰富的用户体验,是现在企业级应用程序客户端的最新技术。 

客户机/服务器(Client/Server,C/S)应用程序是企业级应用程序的最初模式,它采用图形用户界面,客户端的数据处理能力比较强,提高了人机交互的丰富性。但是它的缺点也很明显,客户端部署成本较高,同时因为采用局域网,客户端应用程序要不断进行更新,应用范围受到极大的限制。 

20世纪90年代中期兴起的浏览器/服务器(Browser/Server,B/S)应用程序使用Web技术解决了C/S模式的问题。但是它采用HTML页面形式的用户界面,相比较C/S模式,客户端的数据处理能力有所降低。 

RIA技术的出现重新平衡了客户端和服务器端的关系。RIA是B/S技术在客户端的突破发展,它是集桌面应用程序的最佳用户界面功能与Web应用程序的普遍采用和快速、低成本部署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。RIA大致包括了Flex、Ajax、WPF、OpenLaszlo和Google Web Toolkit等一系列产品,而Flex是同类产品中最领先和成熟的产品,改善了用户体验。 

2 Flex概述

Flex为Macromedia开发的一种基于标准编程模型的高效RIA开发产品集。一个Flex 程序主要由两部分组成:MXML,ActionScript。 

MXML 是一种基于XML 的标识语言,用来设计用户界面、组件布局,包括了可视化组件和非可视化组件,它比HTML具有更丰富的界面组件,主要由标签、标签属性和属性值组成。 

ActionScript是一种面向对象编程语言。类似于JavaScript,它在Flex程序中主要负责用户交互,数据处理和业务逻辑处理等内容,而MXML主要是界面的外观设计。所以ActionScript 是Flex 的重要所在。MXML文件能够用标签将ActionScript包含其中。 

如图1所示,Flex主要由MXML、ActionScript和Flex类库来组成,类库包含了Flex组件、管理器和一些行为等。生产的应用程序由嵌入到浏览器中的Flash player来播放。最下面的Flex Data Services用来提供数据服务,处理数据和传输数据,将数据和界面有机结合起来。 

3 系统体系结构

基于Flex的常微分方程数值解图形演示系统的体系结构如图2所示。同传统模型相比,本系统在可扩展性、可维护性、可重用性和用户体验方面都有很大提高。三层架构的使用使系统维护变得简单,同时采用组件技术,降低了数据库服务器的负担,提高了系统性能。 

3.1 用户表现层 

用户表现层在系统中表现为Web浏览器,是用户和服务器的交互界面,负责人机交互以及数据展示。用户在此完成数据的查询、输入、修改和删除等一系列操作。本系统采用Flex技术开发客户端,代码被编译成SWF文件,发送到客户端浏览器上,在Flash Player中运行。因此只要安装有Flash Player,开发者的任何Flex程序都可以在客户端运行,摆脱了浏览器对程序的限制,提高了运行速度,为开发者和用户都提供了极大的方便。 

3.2 业务逻辑层

业务逻辑层将ColdFusion服务同Flex Server整合,提高系统的事务处理能力和管理能力。Flex服务器运行在ColdFusion服务之上,同客户端程序交互,并向ColdFusion服务器发送相关请求。ColdFusion服务器将Flex服务器的请求处理后产生一个标准的HTML文件,交付给Flex服务器。Flex服务器再将HTML文件返回到客户端。业务逻辑层的主要功能是从数据服务器中检索相关用户信息数据、历史数据及计算数据,进行相关的分析等功能,如计算方法的选择、精度控制等。 

3.3 数据持久层

数据持久层是数据库管理系统(DBMS)和文件系统,负责数据的存储管理、安全管理、完整性管理和一致性管理,系统使用的是开源数据库MySql。本层是负责常微分方程数值解演示系统数据存取的底层,实现用户信息数据、计算历史数据和作图数据的管理及数据库的读取存储机制,为前端数据获取提供数据源保证。 

4 系统功能模块设计实现

为了便于使用者操作,本系统要具有用户友好性的特点,具体如下:①操作简单。系统的主要使用对象是非计算机专业的人员,所以系统应该操作简洁、方便,并具有一定的趣味性,使用户对该系统有信心和兴趣;②在常微分数值解法原理和功能表达上,某些计算机术语应该通俗化,易于用户接受;③系统应该实时对用户的操作做出响应,尽量缩短等待时间。 

因此,系统必须从界面设计、辅助帮助、屏幕动画、信息的动感表现、操作风格等方面满足使用者的要求。 

根据以上分析,将系统功能划分为:逻辑控制模块、定步长作图模块、变步长求值模块和管理员模块。系统详细功能模块图如图3所示。 

4.1 逻辑控制模块 

系统的逻辑控制模块包含了系统实现过程中的大多数逻辑业务处理过程,如:字符串分割功能、基于优先级的计算方法、表达式求值等。 

字符串分割功能主要是将输入的字符串形式的表达式,按照运算符、括号、常量和变量的不同分割字符串,存入数组中,返回分割成功的数组。规格化输入的微分表达式,使其成为最小有意义的数据集合,为后面的求值和数据分析提供可靠数据源。 

基于优先级的计算实现的功能包括:分析字符串类别、分析字符串优先级和操作数计算等。优先级判断功能中,单操作符的优先级最高,*/的优先级次之,然后是+-,后面是“(”,然后是“)”,而常量和变量的优先级最低。根据提供的数据源,通过分析判别字符串类别,将分析出的操作符和操作数评定优先级,并根据不同计算方法得出相应数值结果,保证系统求值过程的正确性。 

表达式求值的功能是对输入的字符串,结合字符串分割分析的结果,用逆波兰表达式的方法来对表达式求值,返回结果并将数据存入数据库中。 

4.2 定步长作图模块

定步长作图模块要实现的功能是,对输入的初始信息进行分析计算,得出计算结果,并绘制图线。在整个过程中,对错误的信息提示用户更正,以便得出正确的结果。模块功能流程图如图4所示。

信息初始化。输入初始信息是为了给后台的计算函数提供信息。用户的输入是任意的,但是这种任意性会给表达式分析或者是浮点数判断造成很大的不便。为了解决这样的问题,系统在设计的时候,增加了合法性验证的输入控制功能,如输入的常微分方程值可以包括各种运算符、变量(x、y)和各种常量,而步长和坐标值只可以是浮点数。当用户点击不符合要求的按键时,输入框中不会有任何显示,屏蔽了不合法的按键,给后面的分析技术带来了巨大的便利。 

数值方法求值。使用几种不同的数值计算方法(欧拉法、改进欧拉法、龙格-库塔法)对初始化信息进行分析求值,同时将实时数据结果输出和存入数据库。在结果输入中使用了一个绑定数据的DataGrid,每次计算的时候更新绑定的数据源数组,实现数据的动态更新。每次输入信息改变的时候,会触发初始化函数,使得数组数据清空,从而可以计算新情况的各个数值。 

图线描绘和差异性分析。作图区主要用到的是LineChart组件,绑定数据源来提供画线所需要的坐标值,并用不同颜色的线来区分不同的计算方法所得到的计算值。事件触发按钮可以增加系统计算次数,次数越多,得到的数据也就越多,而图像显示也就更加详细。在描绘图线的基础上,系统采用了数据和图线双重比较的差异性分析策略,直观科学地展现不同计算方法的优劣性。 

4.3 变步长求值模块

变步长求值模块要实现的功能,同样需要求值作图,把数据信息保存入数据库中,但最重要的是在一定的精度和误差范围内分析得出最优解。模块功能流程图如图5所示。 

信息初始化。需要注意的是,本模块的步长是在变化的,它的最终大小取决于系统精度值的控制,需要用户输入。此外系统要求输入求解点的x坐标值,这些与定步长作图模块不同。 

怎样选取合适的步长,这在实际计算中是很重要的。因为步长愈小,每步计算的截断误差就愈小。但在一定的求解范围内,需要完成的步数就愈多,这不但引起计算量的增大,而且步数的增加往往造成舍入误差的严重积累。在选择步长时,需要考虑两个问题:其一是怎样衡量和检验计算结果的精度;其二是如何依据所获得的精度处理步长。

偏差精度控制和最优解分析。在使用数值方法(变步长的龙格-库塔法)进行变步长求值的基础上,系统会对计算结果之间的偏差值进行监控,保证偏差值在达到系统所控精度范围时,进行最优解分析。将偏差值和给定的精度比较,如果偏差大于精度值,将步长折半反复进行计算,直到偏差值小于精度值,将此时利用变步长龙格-库塔法计算出来的y值取为结果。虽然这样每一步计算量都会增加,但是从总体的角度来考虑,这种选择往往是合适的。 

4.4 管理员模块

管理员模块主要是为系统管理员提供一个进行系统管理的平台。系统管理员在系统中具有最高权限,可以管理控制用户信息,维护系统资源,保证系统正常运行。用户管理,主要包括用户个人信息、角色权限设置等功能。数据资源管理,主要管理、控制系统中所有的计算数据、历史数据等信息。视频资源管理,主要管理维护系统中的视频资源,如新手指导教学视频、用户历史操作存档视频等。 

5 结束语 

采用以Flex作为开发平台的富客户端应用程序RIA技术构建的常微分方程数值求解分析系统,充分利用了RIA技术的优势,具有操作简单、计算准确迅速、演示形象生动等优点,解决了目前科研和教育领域中数据处理能力弱、人机交互体验差等诸多问题,在常微分方程数值求解方面提供了很大的支持,满足了教育和科研工作的需求。

参考文献:

[1] 崔国华,许如初.计算方法[M].武汉:华中科技大学出版社,2006.

[2] 聂晓霞.Flex从入门到精通[M].北京:清华大学出版社,2008.

[3] 杨占坡,杨铭,翁颖. Flex3RIA 开发详解与精深实践[M].北京: 清华大学出版社,2009.

[4] YAKOV FAIN,DR.VICTOR RASPUTNIS,ANATOLE TARTAKOVSK.Rich Internet Applications with Adobe Flex &Java[M].Woodcliff Lake:SYS-CON Books,2007.

[5] 钱钰,陈志云.基于Flex的RIA技术在教学软件中的应用[J].计算机与数字工程,2009(5).

[6] 郑耿忠,刘秋梅.基于XML和J2EE的远程教育资源共享模型研究及实现[J].计算机工程与设计,2005(11).

(责任编辑:王 钊)

推荐访问: 求解 方程 数值 分析 系统