admin 管理员组

文章数量: 1087139


2024年4月14日发(作者:div垂直居中怎么设置css)

龙源期刊网

基于开源组件的曲线拟合在可视化系统的研

作者:马庆岩

来源:《商情》2019年第52期

0引言

可视化技术越来越广泛的应用于数据分析及数据后处理领域。在企业经营活动中,由于数

据采集时间间隔大难以看出图形变化的趋势,更无法和设计的数据进行比较。为了分析、研究

这些数据, 人们总是希望能够建立起数学模型来表示自变量和因变量之间的关系。目前常见

的曲线拟合方法有两种: 第一种采用最小二乘拟合的方法; 第二种是三次样条插值法。在曲线

表现方面,目前基于.NET技术的图形有MSChart,XtraCharts等商业控件,但占用系统资源较

多,操作复杂,维护起来不方便。与以上这些商业控件比,选择基于.NET的开源图形组件

ZedGraph作为曲线表现形式的载体,ZedGraph具有开发方便,占用资源小等特点。同时运用

开源算法ALGLIB提供的丰富的计算方法,求解得到试验数据的拟合曲线。

1ZedGraph组件介绍

1.1 ZedGraph概述

ZedGraph是一个用.NET编写的开源类库, 用于绘制任意数据集的二维线型、条型、饼型

图表,可作为WinForm窗体控件,也可用作 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 初始化控件

龙源期刊网

在解决方案浏览窗口上,右键点击“引用”选择“添加引用”,选择“浏览”标签,选择已经下

载好的“”和“”。

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中二次拟合曲线方法

inearw(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.


本文标签: 数据 拟合 曲线 方法 进行