摘 要: 科技人员经常要对大量试验数据进行分析处理,以求找到一些变量间的因果关系。在进行数据处理时,会经常遇到非线性拟合问题。用三种线形为例,分别选择Exponential(自然指数)、Power(乘幂)和Boltzmann(玻耳兹曼)三种函数,以简单的操作步骤,进行非线性拟合,找出了变量间的因果关系,并举出应用实例。同时也介绍了拟合时应注意的事项及引申应用等问题。
关键词: 数据处理; 非线性拟合; 变量间关系; 应用实例
中图分类号: TP319 文献标识码: A 文章编号:2095-2163(2013)03-0078-04
Put Non-linear Curve Fit of Data Processing in Practice
HAO Huixin
(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150090, China)
Abstract: The scientific and technical personnel often obtain causality relationship of variables, realize analysis and processing of mass test data. During data processing, they usually meet problems of non-linear curve fit. Three curves are used as actual examples. The paper selects three functions: Exponential、Power and Boltzmann separately. Simple operating procedures are used to fit non-linear curve. Causality relationships of variables are fined. And actual application examples are enumerated. Meanwhile, the paper describes attention matters of fitting curve and extended applications.
Key words: Data Processing; Non-linear Curve Fit; Variable Relationship; Application Examples
0 引 言
科研人员在解决科技或工程中的一些实际问题时,要做大量试验,得到大批数据,然后还要对这些数据进行分析处理,以求找到一些变量间的因果关系。为了得到变量之间关系,有时要探求依据,进行理论推导,得到所要求的方程或公式;有些时候则是基于试验数据,利用拟合方法来确定一些变量间的因果关系,在此过程中,经常会遇到试验数据的非线性拟合。拟合因变量与自变量的关系曲线并导出其计算公式比较复杂,需要利用专门针对数据处理和制图的Origin或MATLAB等专业软件进行和完成。这里以三种线形为例,简要介绍利用Origin 6.0[1]进行非线性拟合的推演过程。三种线形分别选择三种函数,进行非线性拟合,得到了拟合后的公式。一些论文中常会出现这三种线形,所以提出的非线性拟合方法在实际应用中具有很广阔的适用范围。同时,本文也介绍了拟合时的注意事项及拓展应用等问题,以求与同行们彼此借鉴,共同探讨非线性拟合方法,推进非线性拟合的研究进程。
1 用自然指数(Exponential)曲线拟合
硅光电池是不需外加电源而可直接将太阳辐射能转换为电能的器件,研究其伏安特性,对了解和使用各种光电器件具有十分重要的意义。设硅光电池的输出电流为I,输出电压为U1,有一组全暗情况下硅光电池的伏安特性的实验数据[2],如表1所示。
表1 全暗情况下硅光电池的伏安特性的实验数据
Tab.1 Experimental data of the silicon solar cell’s volt-ampere property in the dark condition
U1(V) 0.4 0.6 0.8 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
I(μA) 9 22 47 100 143 207 297 438 660 1 038 1 713 3 017 5 710 11 660
现在,假设要寻找因变量I受自变量U1的影响的变化规律,就可以对这组数据进行非线性拟合,找到I受U1的影响的变化规律。过程如下:
打开Origin 6.0,在工作表的A[X]列输入U1/V数据,在B[Y]列输入I/μA数据,然后,在菜单栏的Analysis(分析)中选Non-Llinear Curve Fit(非线性拟合),就会出现非线性拟合菜单(如果打开的是基本模式,单击“More”按钮,切换到高级模式),这个菜单上部有可见的菜单栏和工具栏。拟合可按下列步骤进行。
(1)选择函数。首先打开Select Functions(选择函数)对话框,在此对话框左部的列表框Categories(类型)中选择Exponential(自然指数),而右部列表框Functions(函数)中选取Exp3P1,在函数三种预览方式(Equation 公式、Sample Curve 示样曲线和Function File 函数文件)中可预览选中的函数,公式的形式如下:
y=aebx+c
(1)第3期 郝惠馨:数据处理非线性拟合的实践 智能计算机与应用 第3卷
在曲线拟合时,需确定a、 b和c三个系数;
(2)编辑函数。在同上的对话框菜单栏Function中选择Edit,出现Function Edit对话框,按“Save”按钮;
(3)指定变量。在同上的对话框菜单栏Action中选择Dataset,出现Select Dataset对话框,在上部列表框单击Y变量,在中部列表框单击Data1_b(X变量对应于Data1_a数列已自动指定),然后单击“Assign”按钮,此时会出现一幅曲线图。由出现的曲线图可知,在选择函数时是因何选取Exponential(自然指数);
(4)曲线模拟。在同上的对话框菜单栏Action中选择Simulate,出现Simulate Curves对话框,将其上的a、 b和c(即拟合时所要寻求的系数值)文本框内的1、1和0.5分别改写为0. 5、-25和-5,单击“Create Curve”按钮,在曲线图上会出现一条摸拟线;再将a、 b和c分别改写为0.1、-20和-4,单击“Create Curve”按钮,在曲线图上又会出现一条摸拟线;
(5)实施拟合。在同上的对话框菜单栏Action中选择Fit,出现Fitting Session对话框,单击下部“Chi-Sqr” 按钮,再单击“10Iter” 按钮(单击一次进行10次迭代),可再单击数次“10Iter”,直至其中的a、 b和c的数值不变为止;
(6)显示结果。在同一对话框的菜单栏Action中选择Result,出现Genarate Result 对话框,单击“Param. Worksheet”按钮,生成Parameters工作表,关闭对话框,会出现Result Log窗口;
(7)查看结果。在Parameters工作表中可以看到拟合后的参数a、b与c的值。若未显示出数值,可将列加宽,并双击列名(Value)出现Worksheet Column Format对话框,在其下部调整Column Width数值,若要求给出科学记数形式,可在Format下拉菜单中选定 Scientific:1E3,在Numeric Display下拉菜单中选取Set Decimal Places=,同时将其后面的数字定为5,单击“OK”按钮,Parameters工作表中的a、b与c的值就会转换成符合要求的位数。在Result Log窗口和Graph1图上的文本框中都有参数a、b与c的值。至此,得到拟合的参数值,a=0.067 65,b=-19.145 04,c=-3.587 85。此外有些结果是供分析拟合误差之用,如有必要可以查看,此处仅只讨论拟合方法。
为了使拟合曲线更加突出,要删掉模拟线,可在下部窗口中直接删除exp3p11与exp3p12(exp3p1是函数名,后面的1和2是顺序编号)。初始设定a、b与c值的两条模拟线删除后,留下原始数据曲线和拟合曲线。另外,Graph1图上还有显示拟合参数的文本框,可留也可删。此时,下部窗口文件夹中有数据表、拟合曲线图、拟合数据表和参数表四份文件。
遵照上述步骤进行拟合,拟合前的I-U1曲线图,如图1所示。 绘制有拟合曲线的I-U1曲线图,结果如图2所示。
Fig.2 I-U1 curve with fitting curve 这里要说明的是,自然指数曲线拟合成功与否,需要视拟合曲线与原始数据曲线符合的程度,符合程度越高,拟合越成功,这与初始参数值的设定有着极其密切的关系,而初始参数值的设置则是通过试验最终确定的。如果使用Simulate Curves对话框给定的值a=b=1、c=0.5,拟合会失败;如果只用a=0.5、b=-25、c=-5拟合,单击次数会太多;而给出a=0.1、b=-20、c=-4,就是为了拟合得更好。因为拟合是由最后给出的模拟数据启动的,若先给出a=0.1、b=-20、c=-4,后给出a=0.5、b=-25、c=-5,先前的数据将不起作用;若能直接给出a=0.1、b=-20、c=-4,当然最好。
确定a、b与c的值之后,就得到了I-U1的关系计算公式,如之前选择Exponential(自然指数)那样,拟合曲线的公式为:
I=0.06765e-19.14504U1-3.58785
(2)
经数学变换,等号两边取自然对数,并加以整理,也可以表示为:
lnI=-19.14504U1-3.58785-2.69341
(3)
具有此种线形的实例很多,但不一定采用自然对数拟合,也并非都需要拟合。这种线形在很多论文都可以看到,比如拉弯联合载荷下弹塑性J积分估算方法研究,J积分与载荷比的关系[3],有多条曲线均属这一类型,水面上的饱和蒸气压和冰面上的饱和蒸气压与温度的关系[4],也是这种线形。
2 用幂函数(Power)曲线拟合
现有照度变化率随焦距变化(光照面Φ=5mm时)曲线[5] 如图3所示。有拟合曲线的照度焦距曲线如图4所示。
图3 照度焦距曲线图
fitting curve 为此,假设要寻找最大照度变化率(Y/%)随焦距变化(f/mm)的相应规律,就可以对这条曲线进行非线性拟合,得到Y受f影响的变化规律。
拟合步骤与曲线拟合1大致相同,但在Categories中选择了Power(乘幂),在Functions中选取了Pow2P2,其公式形式是:
y=a(1+x)b
(4)
在曲线拟合时,只需确定a与b两个系数。
在曲线模拟时,将a与b的1、1第一次变为600和﹣1.6,第二次变为1 000和﹣1.8,绘制有拟合曲线的Y -f曲线图,如图4所示。
在查看结果时,得到a=2 728.900 84、b=﹣2.138 31。由此,得到Y-f关系式为:
(5)
具有如此线形的实例也很多,但不一定采用Power拟合,也并非都需要拟合。这种线形在相当多的论文中也都可以看到,比如中厚板辊式淬火机淬火过程的温度场分析[6],讨论不同换热系数下钢板心部温度与时间的变化曲线,许多曲线都是这种类型曲线;再比如,在自旋对量子中束缚磁极化子性质的影响[7],则有更多的同种类型曲线。
3 用玻耳兹曼函数(Boltzmann)曲线拟合
现有催化剂用量对罗丹明B溶液降解率的影响曲线图[8],如图5所示。图5的拟合曲线如图6所示。
图5 催化剂用量对降解率的影响曲线图
Fig.6 The fitting curve of Fig.5 在此,假设要寻找因变量降解率(Y/%)受自变量催化剂含量(X/g)的影响的变化规律,就可以对这条曲线进行拟合,得到Y受X的影响的变化规律。
拟合步骤与曲线拟合1大致相同,但在Categories中选择了Origin Basic Functions,而在Functions中选取了tzmann(玻耳兹曼),公式形式是:
(6)
在曲线拟合时,确定A1、A2、x0和dx四个系数。
在曲线模拟时,将A1、A2、x0和dx的0、1、0和1第一次变为0、90、0和0.15,第二次变为0、100、0和0.20,绘制有拟合曲线的Y﹣X曲线图,如图6所示。
在查看结果时,得到A1=–18.418 41、A2=100.395 54、x0=0.084 61和dx=0.179 21。如此得到Y-X关系式为:
(7)
具有同种线形的实例也是很多的,但也不一定采用Boltzmann(玻耳兹曼)拟合,也并非都需要拟合。这种线形在许多论文中也都可以看到,比如在基于现场试验的超长桩端阻力承载性状研究[9],调研了很多建筑物的超长桩端阻力,对端阻力-桩端沉降的关系,采用Boltzmann(玻耳兹曼)拟合进行了归一化处理,并给出了九种建筑物(六座桥梁三座大楼)端阻力-桩端沉降曲线图及其Boltzmann(玻耳兹曼)拟合结果。
4 结束语
对试验数据进行非线性拟合时,需要选择函数,有的函数存在于多种类别之中,如Lorents就分别出现在Origin Basic Functions、Peak Fuctions和Spectroscopy中。但文中所关注的只是函数,而并不考虑其归属类别。此外,有的函数可以拟合多种线形,如Hyperbl和Exp3P1Md就是这样的函数,因其系数变化,就会产生不同的线形。但文中关注的则为其是否满足将欲拟合的线形要求。
试验数据非线性拟合的成败,首先与选用的函数有关。一条试验数据曲线,可以选择几种函数进行拟合,但不一定均获成功。拟合曲线与原始数据曲线符合的程度越高,即越成功,而在拟合成功的函数中还要选择更为优异的,这就需要进行拟合的误差讨论。在不进行误差讨论的情况下,则需凭直接观察做出判断,拟合程度最高的就是最好的选用函数。
试验数据非线性拟合的成败,其次还与初始参数值的设定有着密切的关系,而初始参数值的设定是通过多次试验选取得到的。拟合是从最后给出的模拟数据开始的,若使用Simulate Curves对话框提供的系数值,或者给出的模拟数据与试验数据曲线偏离较远,拟合都会失败;若给出的模拟数据与试验数据曲线非常接近,则拟合时点击次数会很少,会很快得到成功的结果,否则拟合时点击次数太多甚至会失败。
文中讨论的是试验数据的非线性拟合,实际拟合还有Linear(线性拟合)、Polynomial(多项式拟合)、Sigmoidal (S拟合)等,这些拟合可以综合运用,比如一个因变量有两个自变量,分别进行拟合,得到两个公式,最后将其综合在一起,成为一个关系式,这在科学试验和工程中也有机会遇到。
参考文献:
[1]郝红伟,施光凯. Origin 6.0实例教程[M]. 北京:中国电力出版社, 2000.
[2]张玮,杨景发,闫其庚. 硅光电池特性的实验研究[J]. 实验技术与管理, 2009(9):42-46.
[3]白永强,汪彤,等.拉弯联合载荷下弹塑性J积分估算方法研究[J]. 工程力学, 2010(3):6-9.
[4]李英干,范金鹏. 湿度测量[M ]. 北京:气象出版社, 1990:6.
[5]梁世安,胡友旺,段吉安. 阵列波导器件封装中机器视觉系统的光源分析与设计[J]. 光电子技术, 2009(1):55-59.
[6]袁国,王国栋,王黎筠,等. 中厚板辊式淬火机淬火过程的温度场分析[J]. 东北大学学报:自然科学版,2010(4):527-530.
[7]李志新,肖景林. 在自旋对量子中束缚磁极化子性质的影响[J]. 固体电子学研究与进展, 2009(1):10-13.
[8]周云龙,胡志彪,等. TiO2/竹炭复合材料研究(Ⅱ)光催化降解性能[J]. 功能材料, 2010(2):197-199.
[9]蒋建平,章杨松,高广运. 基于现场试验的超长桩端阻力承载性状研究[J]. 工程力学, 2010(2):149-160.