马庆岩
0引言
可视化技术越来越广泛的应用于数据分析及数据后处理领域。在企业经营活动中,由于数据采集时间间隔大难以看出图形变化的趋势,更无法和设计的数据进行比较。为了分析、研究这些数据, 人们总是希望能够建立起数学模型来表示自变量和因变量之间的关系。目前常见的曲线拟合方法有两种: 第一种采用最小二乘拟合的方法; 第二种是三次样条插值法。在曲线表现方面,目前基于.NET技术的图形有MSChart,XtraCharts等商业控件,但占用系统资源较多,操作复杂,维护起来不方便。与以上这些商业控件比,选择基于.NET的开源图形组件ZedGraph作为曲线表现形式的载体,ZedGraph具有开发方便,占用资源小等特点。同时运用开源算法ALGLIB提供的丰富的计算方法,求解得到试验数据的拟合曲线。
1ZedGraph组件介绍
1.1 ZedGraph概述
ZedGraph是一个用.NET编写的开源类库, 用于绘制任意数据集的二维线型、条型、饼型图表,可作为WinForm窗体控件,也可用作ASP.NET Web控件, 支持.NET1.1和.NET2.0。
ZedGraph以其简洁、方便、功能强大和开源等特点正在成为程序开发中广泛使用的图表组件[1]。ZedGraph的类库具有很高的灵活性,几乎图表的每个层面都可以被用户修改。同时,为了保证类库的易用性,所有的图表属性都提供了缺省值。类库中包含的代码可以根据被划分的数据来选择适应的比例范围和步长、尺寸。ZedGraph继承了Framework中的UserControl接口,所以允许用户在VS的IDE环境中进行拖放操作。增加了對其它语言的访问接口支持,如C++,VB。
1.2 ZedGraph组成
MasterPane:从PaneBase继承,一个可以操纵多个GraphPane对象类。当能直接为单个面板所使用时, MasterPane类的就无需使用的了。同时提供了布局、排列和操作单个GraphPane对象的方法。
GraphPane:图表的主要类,从PaneBase继承,作为属性包含所有其他的类。可以改变面板的标题,框架和轴以及背景图等。
PointPairList:是一个集合类,是PointPair对象的集合,是一个包含( X , Y) 的坐标类。
2拟合曲线方法概述
2.1最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术,首先是由Karl Gauss在进行行星轨道预测的研究过程中提出的。现在,最小二乘理论已经变成从实验数据来进行参数估计的主要手段[2]。最小二乘法被广泛采用的原因是这个方法与其他方法相比容易理解,并且不需要数理统计的知识,甚至在其他方法失败时,最小二乘法也可以提供解答。由最小二乘法获得的估计在一定条件下有最佳的统计特性:一致性、无偏性和有效性。
2.2 ALGLIB介绍
ALGLIB是一个跨平台的数值分析和数据处理函数库。ALGLIB函数库包括开源版本和商业版本,并支持多种编程语言,可以在多个操作系统平台上运行,如:Windows,Linux和Solaris。ALGLIB有以下功能:
①线性代数(包括矩阵分析);②方程求解(线性和非线性);③插值;④最优化;⑤快速傅里叶变换;⑥数值积分;⑦线性和非线性最小二乘拟合;⑧常微分方程求解;⑨数据分析(分类、回归、神经网络)⑩统计(描述统计、假设检验)。
3基于ZedGraph组件的曲线拟合
3.1 拟合曲线产生流程
发动机在试验及测试过程中产生了大量的数据,将这些采集的数据按试验类型—型号—编号—装配—试车导入到试验数据管理系统中,对于需要拟合的数据进行分类处理,根据用户的选择运用ALGLIB函数库,调用二次拟合或三次拟合算法,将散点的数据转换成具有一定趋势的拟合数据,调用ZedGraph组件将拟合数据用平滑的曲线连接,生成图形。
3.2 拟合曲线代码实现
3.2.1 初始化控件
在解决方案浏览窗口上,右键点击“引用”选择“添加引用”,选择“浏览”标签,选择已经下载好的“ZedGraph.dll”和“alglib.dll”。
3.2.2 数据库连接并查询
对数据库进行连接,并对数据库中的数据进行查询。
3.2.3 调用ALGLIB拟合算法生成图形
调用ALGLIB算法中二次拟合算法,生成TwinRalateFit方法供ZedGraph组件调用。
private bool TwinRelateFit(double[] xSrc, double[] ySrc, ref double[] c, ref double[] xFit, ref double[] yFit){
…… ……
//调用ALGLIB中二次拟合曲线方法
alglib.lsfit.lsfitlinearw(y, w, FMatrix, n, LINEAR_ORDER, ref info, ref coe, repLineFit);
…… ……}
调用TwinRalateFit方法,将拟合数值返回到xFit和yFit数组中,并生成图形。
4实例分析
以某企业分析某锅炉燃烧问题为例,高温、高速、高压的燃气推动锅炉做功。出口流场的好坏,直接影响锅炉的效率。要想真实地了解锅炉参数的分布情况,将采集的数据直接输入界面上表格所示:
通过数据调用ALGLIB二次拟合方法,生成二次拟合曲线。
5结论
本文给出了一种基于开源的曲线拟合技术。试验结果表明:该算法简化了拟合曲线生成工序,减少生成曲线预处理时间,有效提高曲线的生成效率,并能实时查看曲线上各点的数值。
参考文献:
[1]于国卿.李趁趁.赵雨森. ZedGraph控件在水闸监测系统开发中的应用研究[J].南水北调与水利科技,2008,6(3):43-45.
[2]马自萍.汪丽洪. 遗传算法中参数变化对曲线拟合结果的影响[J]. 宁夏工程技术, 2009, 8(1): 52 - 54.