文档库 最新最全的文档下载
当前位置:文档库 › LabVIEW在曲线拟合中的应用研究

LabVIEW在曲线拟合中的应用研究

第18卷 第3期 五邑大学学报(自然科学版) V ol.18 No.3 2004年9月 JOURNAL OF WUYI UNIVERSITY (Natural Science Edition) Sep. 2004 文章编号:1006-7302(2004)03-0057-07

LabVIEW 在曲线拟合中的应用研究

李继容

(五邑大学 信息学院,广东 江门 529020)

摘要:介绍了LabVIEW 中用于曲线拟合的子模块,对各子模块的曲线拟合理论作了介

绍,重点介绍了非线性Lev-Mar 拟合理论,并以例子辅助说明.

关键词:曲线拟合;最小二乘法;LabVIEW ;虚拟仪器

中图分类号:TP274 文献标识码:A

科技工作常常需要绘制曲线,而绘制曲线的根据或要求各不相同,一般可分为如下几种:

1)已知曲线方程,要求画出曲线. 这类问题称为规则曲线的绘制.

2)在曲线形状设计中,给定了折线轮廓,要求用曲线逼近这个折线轮廓,这类就是曲线逼近.

3)由试验或观测得到的一组数据点,要求用一个函数近似地表明数据点坐标之间的关系,同时画出函数的曲线,这类问题称为曲线拟合.

4)由试验、观测或计算得到了由若干离散点组成的点列,要求用光滑的曲线把这些离散的点连接起来,这类问题称为曲线插值. 曲线拟合与曲线插值是不同的,因为曲线拟合并不要求曲线必须通过所有的数据点[1].

本文介绍第三种曲线绘制方法,即曲线拟合. 曲线拟合分析是一门技术,主要用来从测量数据集中提取一组曲线参数(或系数)以找出各数据之间相关关系的数据表达式. 适合曲线拟合的常用算法是在数理统计书中经常介绍的最小二乘法,其误差定义为:

2)](),([)(x y a x f a e ?=.

式中,)(a e 为误差,)(x y 是测量的数据集,),(a x f 为数据集的函数描述,而a 就是描述曲线的一组系数. 比如:设},{10a a a =,则拟合直线的函数描述为:x a a a x f 10),(+=. 用最小二乘法求解系数a ,即求解等式

0)(=??a

a e . (1) 要求解等式(1),需要建立和求解由式(1)扩展开的雅可比行列式. 得到a 值之后,就可以通过函数描述),(a x f 求得任何测量数据集中x 对应的)(x y 估计值.

LabVIEW 编程语言中自身带了用于曲线拟合的虚拟仪器子模块,可以用来求解雅可比行列式,然后返回理想的系数集. 只要把数据集的函数描述进行处理,就可以得到等式(1)的解. 现

收稿日期:2004-02-20

作者简介:李继容(1976- ),女,湖南邵阳人,硕士,主要从事网络虚拟仪器、模式识别方面的研究.

五邑大学学报(自然科学版) 2004年 58有两个输入向量:x 和y ,描述了数据集)(x y . 该数据集上的任意点为)(,i i y x ,其中,i x 为向量x 中向量元数,i y 为向量y 中向量元数. 通常情况下,对于每一个曲线拟合预定义的类型,LabVIEW 编程语言中都会有两种不同类型的虚拟仪器子模块(特别定义的除外). 其中一种类型只返回系数,另一种除返回系数外,还返回相应的期望值或拟合曲线的均方差(mse ). 求mse 的等式为:

210)(1mse i n i i y f n ?=∑?=. (2)

其中,f 是拟合值,y 是测量值,n 为测量点的数目.

LabVIEW 的分析库中提供了线性和非线性两种曲线拟合的算法,各种不同的曲线拟合虚拟仪器模块如下:

1)线性拟合(Linear Fit ). 把测量点拟合为形如y =mx +c 的直线形式:][][10i x a a i y ?+=.

2)指数拟合(Exponential Fit ). 把测量点拟合为形如y =a exp(bx )的指数曲线形式:])[exp(][10i x a a i y ??=

3)通用多项式拟合(General Polynomial Fit ). 把测量点拟合为形如L +++=2cx bx a y 的多项式形式:L 2210][][][i x a i x a a i y ?+?+=

4)通用线性拟合(General Linear Fit ). 把数据拟合为L +?+?+=])[(])[(][22110i x f a i x f a a i y 其中,][i y 为参数a 0、a 1、a 2…的线性组合序列. 通用线性拟合也可以选择某个合适的算法来提高准确度和精度. 比如)sin(10x a a y ?+=是线性拟合,因为y 与参数a 0、a 1之间具有线性关系. 同样,多项式拟合也为线性拟合.

5)非线性Levenberg-Marquard 拟合(Nonlinear Levenberg-Marquard Fit ). 把数据拟合为:),,],[(][210L a a a i x f i y =. 其中,a 0,a 1,a 2…为参数. 这是一种最通用的算法,并不要求y 与参数a 0,a 1,a 2…一定要存在线性关系. 它既可以用来进行线性拟合,也可以用来进行非线性拟合,但最好用来进行非线性拟合,因为通用线性拟合比线性拟合效果更好,而非线性Levenberg- Marquard 拟合不能总是确保得到正确的结果,但可以用来核对拟合的结果.

1 曲线拟合的应用 

曲线拟合应用的场合很多,如:

1)消除测量噪声.

2)填充缺少的数据点(如:填充一个或多个缺少的或记录不合适的测量点).

3)内插(在数据点之间估计数据值. 如:测量单位之间倍数不够小时可以进行内插).

4)外推(在数据点之外估计数据值. 如:在测量点之前或之后取值).

5)区分数字数据(如:通过数据点来引申数据,那么这些离散的数据可以通过多项式进行模拟,所得多项式方程就可以区分开来).

2 曲线拟合理论 

由于线性拟合、指数拟合、多项式拟合都属于线性拟合部分,而线性拟合相对非线性拟合比较简单,另外考虑线性拟合各类杂志介绍较多,所以本文把非线性拟合作为重点研究.

第18卷 第3期 李继容:LabVIEW 在曲线拟合中的应用研究 592.1 通用线性拟合理论 

假设变量y 与变量110,,,?k x x x L 之间存在一种线性关系如下:

ij k j j ik k i i x

b x b x b y ∑?=??=++=101100L ,i =0, 1, …, n -1. (3)

其中B 为系数集),,,(110?k b b b L ,n 为数组变量Y 的元数个数或为矩阵H 的行数,k 为系数的个数. x ij 为测量数据,相应的矩阵H 如下:

=??????111210111110100100k n n n k k x x x x x x x x x L M M M L L H . 因此,等式(3)也可写成Y =HB ,该等式叫做多元线性回归方程,其特点是用若干个变量110,,?ik i i x x x L 来预测变量y i . 通常情况下,线性拟合、指数拟合和多项式拟合都是基于单个变量的,即用一个变量预测另一个变量. 大多数情况下,测量数据比系数要多,那么式(3)可能无解. 因此,为了使y i 和预测值z i 之间的误差最小,拟合问题就变成了找一个系数矩阵B 来满足要求. 预测值z i 为

ij k j j i x

b z ∑?==10 i =0, 1, …, m -1,且m >n .

通用线性拟合虚拟仪器子模块采用最小化2χ的方法来获得系数集. 式中,

2002

10102102(Y B H ?= ?=?=∑∑∑?=?=?=n i i k j ij j i n i i i i x b y z y σσχ. i ij ij x h =0,i i i y y =0,i =0, 1, …, n -1;j =0, 1, …, k -1. 假如测量误差是独立无关的,且为正态分布,标准差为常数,即标准差σσ=i ,那么上式成为了最小二乘法估计.

实现2χ最小化的方法很多,最常用的方法是令2χ对系数b 0,b 1,…,b k -1的微分全部化零. 即:

=??=??=???0001

2

120

2

k b x b x b x M . 上式用矩阵表示为:Y H H H T 00T 0=,T 0H 为H 0的转置矩阵. 等式Y H H H T 00T 0=为最小二乘

问题的正规式. 可用LU 或Cholesky 因子分解法来解,但解出来的解对舍入误差比较敏感,实现2χ最小化优先选择的方法就是找出方程H 0B =Y 0的最小二乘解,这样就可以使用QR 或SVD 因子分解算法来得到系数矩阵B 的解. 当然我们也可以把单一预测变量的多项式拟合认为是多元线性预测变量的多项式拟合的特殊拟合[2,3].

五邑大学学报(自然科学版) 2004年 602.2 非线性Lev-Mar 拟合理论

非线性Lev-Mar 虚拟仪器子模块也采用最小化2χ的方法来获得系数集.

21

012))...;((∑?=?=n i i

M i i a a x f y σχ. (4) 式中,),(i i y x 是输入数据点,),();(1a x f a a x f M i =L 是参数为M a a L 1的非线性方程. 同样假如测量误差是独立无关的,且为正态分布和标准差为常数,即标准差σσ=i ,那么式(4)也成为了最小二乘法估计.

在Target Fnc&Deriv NonLin VI 的框图程序的公式节点中必须指定非线性方程),(a x f f =,Target Fnc&Deriv NonLin VI 是非线性Lev-Mar 拟合VI 的子模块. 当选择Browse\This VI’s SubVIs 就可以从主菜单中进入Target Fnc&Deriv NonLin VI.

Target Fnc&Deriv NonLin VI 提供了两种方法来计算算法中需要的雅可比方程式. 两种方法如下:

1)数值计算:用数值近似值计算雅可比方程.

2)公式计算:用一个公式来计算雅可比方程. 跟非线性方程),(a x f f =必须在Target Fnc&Deriv NonLin VI 的框图程序的公式节点中指定一样,此时也必须在Target Fnc&Deriv NonLin VI 的框图程序的公式节点中指定雅可比方程的a ??f . 由于公式计算对雅可比方程不必采用数值近似,所以用公式计算比用数值计算更加方便有效.

输入的数组x 和y 定义了输入数据点集. 在此介绍的非线性Lev-Mar 虚拟仪器子模块是假定读者有关于x 和y 坐标之间的非线性关系的知识,也就是说,当用Levenberg-Marquardt 算法定义好了系数集a 之后,),(a x f f =. 使用该子模块拟合曲线的准确性很大程度依赖于最初预设的方案初始系数集. 因此设置适合的初始系数集非常重要.

3 非线性Lev-Mar拟合子模块 

现实中y 与系数L 210,,a a a 并非总是存在线性关系,相反非线性关系无时不在,此时就可以用非线性Lev-Mar 拟合子模块来解决. 非线性Lev-Mar 拟合子模块采用Levenberg-Marquardt 算法,该算法对于求解具有非线性关系的y 和),,,,(210k a a a a L =a 中的系数a 效果很好.

非线性Lev-Mar 拟合子模块连接图如图1所示.

1)VI 输入端参数

x 和y 为输入数组][i x 和][i y .

Standard Deviation 为测量数据),(i i y x 的

标准差i σ. 如果标准差未知或为常数,

可以不赋值. 在LabVIEW 的内部一般

设为1.0. Initial Guess Cefficients 为初始

估计设置的系数值. 这些系数值即最先

在Target Fnc&Deriv NonLin VI 的框图

程序的公式节点中为公式输入的系数.

max iteration 为VI 执行时反复执行的最大次数. 假如VI 执行的次数达到最大还没有得到结果,那么函数会报错. 此时必须增大max iteration 的数值或纠正Initial Guess Cefficients 来满足要求. derivative 指定采用哪种方法来计算雅可比方程,即选择数值计算法和公式计算法中其中一种.

图1 非线性Lev-Mar拟合子模块连接图

第18卷 第3期 李继容:LabVIEW 在曲线拟合中的应用研究 61在本文介绍中,除输入数组x ,y 和 Initial Guess Cefficients 外,其它都设为系统默认值.

2)VI 输出端参数

Best Fit Coefficients 为一组由最小化2χ时求得的拟合系数a . Best Fit 为所得系数a 计算得到的拟合数据. Covariance 为协方差矩阵C ,其中jk c 为j a 和k a 之间的协方差,jj c 为变量a j 自身的协方差. mse 为均方差. error 为报错代码.

4 非线性Lev-Mar 拟合应用实例 

本实例的目的是建立一个通用指数信号noise )epx(++??c x b a ,然后用非线性Lev-Mar 拟合子模块来拟合数据,从而得到适合通用指数信号的系数a ,b ,c .

4.1 非线性Lev-Mar指数拟合前面板图 

图2中参数a ,b ,c 定义实际系数a ,b ,c . Initial Cefficients 是经过理论估计的实际参数a ,b ,c 的值. Best Guess Coef 给出经过非线性Lev-Mar 拟合后得到的参数a ,b ,c 的值. 为了与实际应用更加接近,可以在方程中增加一个噪声(即随机数),即方程为:

a ?exp(

b ?x )+

c +noise.

noise level 控制模板可以调整噪声标准. 在本实例中实际参数a ,b ,c 的值设为+1.0,-1.0和+2.0,而Initial Cefficients 设为a =2.0,b =0和c =4.0.

 

图2 为非线性Lev-Mar指数拟合前面板图 

4.2 非线性Lev-Mar指数拟合框图 

图中Exponential 为用Exponential VI 模拟的指数函数样品数据,Exponential VI 位于功能模块Numeric\Logarithmic 子模板中. Uniform White Noise 是用Uniform White Noise VI 来模拟增加噪声的. Uniform White Noise VI 位于功能模板Analyze\Signal Processing\Signal Generation 子

五邑大学学报(自然科学版) 2004年

62模板中.

图3 非线性Lev-Mar指数拟合框图 

4.3 Target Fnc&Deriv NonLin VI 框图 

从Browse 菜单中进入,选择Unopened\SubVIs\Target Fnc&Deriv NonLin VI ,然后切换到该子模块的框图程序,可以看到公式节点里是参数a ,b ,c 表示的函数表达式. 关闭该框图,运行非线性Lev-Mar 指数拟合VI ,即可得到所需结果和拟合曲线. 改变参数值,会得到不同的结果

和曲线. (见图4)

图4 Target Fac&Deriv Nonlin VI框图 

 

5 结束语 

对测量的原始数据进行数据处理是提高数据有效性和准确性不可缺少的环节,采取曲线拟合是一种非常实用和有效的处理方法. 目前关于曲线拟合问题处理的方法很多,大多是采用各种C 语言进行复杂的编程. LabVIEW 自身带的曲线拟合子模块,包括了线性和非线性的各种方法,使曲线拟合问题变得简单易学. 随着LabVIEW 在测量界的广泛应用,LabVIEW 中的曲线拟合子模块也将在原始测量数据处理中广泛应用.

第18卷第3期李继容:LabVIEW在曲线拟合中的应用研究63参考文献:

[1] 卢传贤. 实用计算机图形学——BASIC 和C语言并用(修订版). 西安:西安交通大学出版社, 1996.

[2]National Instruments Corporate .LabVIEW User Manual[Z]. USA, 1999.

[3] 李扬,汪仁煌.NI-LabVIEW语言的回归分析算法与实现[J]. 机床与液压,2000,2: 37-39.

Research on the Application of LabView In Curve Fitting

LI Ji-rong

(Information School of Wuyi University, Jiangmen 529020, China)

Abstract: In this paper, sub-VIs of LabVIEW used in curve fitting and their principles, particularly the Nonlinear Levernberg-Marquard Fit Theory, are introduced.

Key words: curve fitting; least squares method; LabVIEW; VI

(上接第50页) 

The Artful Use of SAS/OR Software for

Solving Integer Linear Programming with Many Solutions

ZOU Xiang-fu

(Dept. of Math. & Phys., Wuyi Univ., Jiangmen 529020, China)

Abstract: In this paper, we demonstrate by using examples how to obtain more than one solution to integer linear programming with many solutions by using SAS/OR software. This remedies the shortcoming of SAS/OR software that it can obtain only one solution to integer linear programming with many solutions. So, SAS/OR software can be used in wider fields than ever.

Key words: SAS software;SAS/OR software;integer linear programming

相关文档