搜档网
当前位置:搜档网 › 非线性拟合的初值问题

非线性拟合的初值问题

非线性拟合的初值问题
非线性拟合的初值问题

第24卷第1期吉首大学学报(自然科学版)Vol.24No.1 2003年3月J ournal of J ishou University(Natural Science Edi ti on)Mar.2003

文章编号:1007-2985(2003)01-0037-03

非线性拟合的初值问题*

胡亮

(昆明理工大学数理系,云南昆明650224)

摘要:综述了非线性拟合初值的求解方法,并在前人研究的基础上提出了常见非线性模型初值的简便求法.该方法既可在计算机上编程实现,亦可利用计算机数学分析工具M atlab,Maple,Mathematica,M atcad,微软EXCEL及微软ORIGIN等直接求解.

关键词:数据处理;非线性拟合;插值法;数值微分

中图分类号:O241;O245文献标识码:A

曲线拟合是数据分析和数据处理的重要工作之一.曲线拟合可分为线性拟合和非线性拟合.许多数据关系可化为线性模型,但数据关系极其复杂;非线性模型也是工程技术和预测分析中常遇到的数据关系[1~3].非线性模型参数需用(加权)最小二乘法或最优化方法求解.通常的求解方法具有局部收敛性,需要给出适合的初值,初值准确与否是整个求解工作成败的关键.目前各种数学分析工具用于非线性拟合时,都要给出参数初值.Matlab,Maple,Mathematica可用求极小值或最小二乘函数公式求非线性模型参数; Matcad则有多种非线性拟合公式,其中包括广义非线性拟合公式genfit;微软EXC EL应用/规划求解0工具也能进行非线性拟合[4];微软ORIGI N则提供了许多拟合函数.但是上述方法都需要设定初值,Matcad的genfit还要求参数偏导的初值.通常初值设定是凭经验进行猜测和试探,盲目性很大,难于求得合适的初值,因此笔者拟对该初值问题进行了探讨.

1初值估算方法概述

由于非线性拟合比较复杂,因此应尽可能将模型线性化,如进行取变量的倒数、对数等数学变换,关系式的微分-积分线性化变换[3,4],分段线性化,根据专业理论简化模型(如忽略小量)等,将非线性拟合问题转化为线性拟合问题.对于不能线性化的模型,其最优化拟合就存在参数初值问题.首先,可进行专业理论分析确定参数数值范围,在这个范围内设定初值.其次,最简单的方法是选定几组实验值代入模型,联立其中简单的方程求解参数[1~3];或者用消元法得到单参数的非线性方程,用较宽的求解方法求解,如劈因子法;或研究其大范围的收敛性,得到近似初值[6],该方法需要通过数学分析确定单变量方程的收敛区间.对于多参数、高度复杂的非线性拟合,可采用各种确定性和随机性的全局最优算法.但是,全局最优理论和方法比较复杂,需要繁琐的编程和大量的计算.同时,线性化变换不如非线性拟合直接,可能仅得到近似值.因此,有必要对应用广泛而又常见的非线性拟合寻找简便的参数初值确定方法.

2几种初值估算方法

2.1参数消元法

最常见的非线性拟合是包含3个参数的拟合问题.其中带常数项的幂函数和指数函数在应用中常常用到,其典型方程式为y=ax b+c和y=ab x+c(或y=a e b x+c),指数函数的2种形式很容易互相转

*收稿日期:2002-06-02

作者简介:胡亮(1964-),男,四川省泸州市人,昆明理工大学数理系博士研究生,主要从事计算机与应用化学研究.

换,只要将b的对数或指数设为新的参数即可.Logistic模型y=d/(1+a e-b x)广泛应用于动物饲养、植物栽培、人口增长、病害流行、商品销售、资源开发及生态环保等研究领域中,若令Y=1/y,A=a/d,B= e-b,C=1/d,则转换为典型的指数函数形式.另外,如1/y=a e bx+c,y=c/(1+a e b x),y=c exp(a e b x), y=a/(c+x b),y=c exp(ax b)等,均可转换为前述方程形式.这2种模型的拟合可以用消元法得到单参数的方程,然后进行大范围收敛求解[6].但是如果设法估算系数c或b,然后再进行线性拟合确定其余参数,会变得更为简便.这种线性化估算方法对许多含3个参数的非线性拟合问题都有效,且方便直观,如y =a/(x+b)+c,y=a ln(x+b)+c;而y=x/(a+bx)+c(即y=(c+dx)/(a+bx)),lg y=a/(x +b)+c(化工中Anto ine公式形式)和y=c(x+b)a则可用变量代换转换为前2种形式.

将2个实验点及其算术或几何平均值代入模型方程式,消元求解可推导出系数c或b的估算式[2,7].幂

函数取几何平均值关系x3=(x1x2)1

2,则c=(y1y2-y23)/(y1+y2-2y3),其中(x1,y1),(x2,y2)为二实

验数据点,y3为对应于x3的插值点.同样,指数函数系数估算式为算术平均值x3=(x1+x2)/2,c=(y1y2 -y23)/(y1+y2-2y3);y=a/(x+b)+c模型系数估算式为y3=(y1+y2)/2,b=(x1x3+x2x3-

2x1x2)/(x1+x2-2x3);y=a ln(x+b)+c模型系数估算式为y3=(y1y2)1

2,b=(x23-x1x2)/(x1+x2

-2x3).该方法可编程运算,亦可利用各种数学分析工具的插值功能来求y3或x3,再用线性拟合功能估算非线性拟合初值.

另外,y=a/(x+b)+c模型可以采用将3个实验点代入模型联立求解的方法[8],或者代入1个实验点的值得(x-x1)/(y-y1)=b(b+x1)/a+((b+x1)/a)x,线性拟合可得a和b,a和b代回模型方程可得c.

2.2数据图形特征值法

有些数据的非线性拟合可通过绘制数据图形,再由图形特点确定拟合参数.图形特征值通常有曲线起点、峰值、峰位置、拐点、周期、渐近线等.

例如,y=x/(a+bx)的渐近线方程为x=-a/b和y=1/b,近似读取渐近线在坐标轴上的截距,可得到a和b初值.在用Gaussian函数和Lorentzin函数进行谱峰拟合时,可根据峰值、峰位置和半高度处峰宽近似读取参数初值.Matcad2001新增加了拟合函数y=a sin(x+b)+c,可在图中读取正弦曲线的峰值、相位和Y轴平移量,最重要的是b的读取,而a和c还可用线性拟合得到.在传递函数和时间响应函数的动态实验数据处理中,可用特征值法求系统参数.[2]如典型二阶系统的传递函数为W(s)=X2n/(s+2F X n s+ X2n),其中阻尼比F和固有频率X n为系统参数,其阶跃响应函数为C(t)=1-a exp(-B t)sin(X d t+U),脉

冲响应函数为g(t)=a X n exp(-B t)sin(X d t),其中a=(1-F2)-1

2,X d=X n(1-F2)

1

2,B=F X n,U=

tan-1{(1-F2)1

2/F}.参数可由数据图形的幅值、周期、渐近线等特征值得到.

2.3数据点规划法

在实验设计时,适当安排试验点可以将一些非线性回归问题转换为线性回归问题[9].同样,对1组数据不符合某非线性方程拟合所要求的数据间隔,甚至不知道是否符合该非线性模型时,可以用插值方法设置符合线性化要求的数据点.利用新设置的数据点进行线性拟合,如果符合线性关系,说明数据关系满足该非线性模型,并得到非线性拟合的参数初值.下面列出文献[8]中已证明可线性化的且具有机械工程应用背景的非线性模型.

y=a+bx+c e dx模型:使x构成以h(h>0)为公差的等差数列,即x i+1=x i+h,则施行变换Y i= ln r y i+2-2y i+1-y i r,X i=x i,可化成直线形式Y=A+dX,这里A=ln r c(e dh-1)2r.c与d确定之后,令t=y-c e dx,则得t=a+bx,于是a与b也确定下来.

y=ax b+cx d模型:使x构成以e h为公比的等比数列,即x i+1=e h x i,则施行变换X i=y i+1/y i,Y i= y i+2/y i,可化成直线形式Y=AX+B,这里A=e(b+d)h,B=-e(b+d)h.b与d确定之后,令G=y/x d,N= x(b-d),则得G=a N+c,于是a与c也确定下来.

y=e a x(c cos(bx)+d sin(bx))模型:使x构成以h(h>0)为公差的等差数列,即x i+1=x i+h,则施38吉首大学学报(自然科学版)第23卷

行变换X i =y i +1/y i ,Y i =y i+2/y i ,可化成直线形式Y =FX +E ,这里F =2e ah cos (bh),E =-e 2ah .a 与b 确定之后,令G =y /(e ax cos (bx )),N =tan (bx ),则得G =d N +c,于是c 与d 也确定下来.

2.4微分线性化法

如果非线性模型通过包括微分在内的各种运算可线性化,则可用线性拟合获得模型系数近似值,拟合的近似性是由数值微分的近似性决定的.微分运算可减少参数个数,在线性拟合之后须将所得系数代回到非线性模型,设法求解余下的参数.曲线的各阶微分可以用多项式作辅助函数求取,[10]这要求曲线能较好地用多项式逼近.当然,这也能用其它辅助函数及数值微分法得到微分值.下述模型可用微分线性化法获得拟合初值.

H =a(1-e b D )c 模型:a,b,c 为待定参数,经对数、微分运算整理得H c 2-HH d =c -1H c 2-b HH c ,令y =H c 2-HH d ,x 1=H c 2,x 2=HH c ,线性化为y =c -1x 1-b x 2,b 与c 确定之后代入模型方程,并令x =(1-e b D )c ,经线性拟合可解得a.

H =a(1-b e kD )c 模型:a,b ,c,k 为待定参数,经上面相同的方法得HH d -2H c 2=c -1H c 2

-k HH c ,有了c 与k 之后,模型化为H 1/c =a 1/c -a 1/c b e kD ,由此求得a ,b.3 结语

非线性模型是工程技术和预测分析中常遇到的模型,许多分析工具都有非线性拟合功能,如何确定参数初值关系到拟合功能能否有效利用.常见的非线性拟合可以用简便的方法设定参数初值,避免猜测和试探的盲目性,有时确定出的参数初值甚至已达到精度要求.在此总结的一些估算参数初值方法有助于分析工具非线性拟合功能的应用.但由于非线性拟合复杂多样,还须在实践中不断总结,尤其应根据实验事实和各专业理论寻找有效的方法.如谱峰分辨在分析科学中具有重要意义,可以从化学实验事实出发,提出可能的拟合峰个数、重叠峰位置等.

参考文献:

[1] 费业泰.误差理论与数据处理(第4版)[M].北京:机械工业出版社,2000.118-157.

[2] 周秀银.误差理论与数据处理[M].北京:北京航空航天大学出版社,1986.151,194.

[3] 忻新泉.计算机在化学中的应用[M].南京:南京大学出版社,1986.82.

[4] 余 亮.利用Excel 软件进行非线性拟合的非编程方法[J].微型机与应用,2000,(5):16-17.

[5] 胡 亮,唐光阳,施跃坚.确定一级反应常数的新方法[J].云南师范大学学报,2002,(1):37-38.

[6] 王基

.大范围收敛的迭代法求解非线性回归的参数[J].数学的实践与认识,1991,(2):49-57.[7] 陈明浚.三系数一元非线性回归的方法及程序设计[J].化学通报,1987,(1):50-54.

[8] 王基.Antoine 公式常数拟合的初值问题[J].化学通报,1995,(3):53-54.[9] 骆振华.若干化为线性回归的曲线相关[J].数学的实践与认识,1985,(3):40-43.

[10] 葛宏立.用多项式作辅助近似求解非线性回归的参数[J].数学的实践与认识,1989,(3):41-46.

Initial -Value Problem of Nonlinear Fitting

HU Liang

(Department of Mathematics,Kunming Universi ty of Science and Technology ,Kunming 650224,Yunnan China)

Abstract:Based on the previous studies,the convenient solutions to the initial-value problem of nenlinear fitting can be realized by using a computer with programming or using Matlab,Maple,Mathe matica,Matcad,Microsoft Excel and Microsoft Origin,etc.

Keywords:data-processing;nonlinear fitting;interpolation;numerical derivation 39第1期 胡 亮:非线性拟合的初值问题

粒子群算法在神经网络非线性函数拟合中的应用【精品文档】(完整版)

粒子群算法在神经网络非线性函数 拟合中的应用 一、本文研究和解决的问题 在自动控制问题中,系统辨识的目的是为了建立被控对象的数学模型。多年来,控制领域对于复杂的非线性对象的辨识一直未能很好的解决,神经网络所具有的非线性特性和学习能力使其在系统辨识方面有很大的潜力。为解决具有复杂的非线性、不确定性和不确知对象的辨识问题开辟了一条有效的途径。基于神经网络的系统辨识是以神经网络作为被辨识对象的模型,利用其非线性特性,可建立非线性系统的静态或动态模型。理论上,多层前馈神经网络能够以任意精度逼近任意非线性映射。 但传统神经网络学习算法中存在的收敛速度慢、容易陷入局部最优等缺点,于是设计了基于标准粒子群算法的神经网络非线性函数拟合系统。 二、传统的BP神经网络 BP 神经网络即采用误差反向传播算法的网络,是一种至今仍然最为流行的前馈型神经网络模型。BP 神经网络有很强的非线性映射能力,它能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供给网络进行学习训练,它便能完成由n 维输入空间到m 维输出空间的非线性映射。BP 学习算法属于误差修正型学习,其关键在于根据误差修正输出层和隐含层的连接权值。其学习的基本实现方法是基于最小平方误差准则和梯度下降优化方法来确定权值调整法则。 BP网络建模特点: 非线性映照能力:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。 并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。 自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。 数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。 多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

一种非线性函数的曲线拟合方法

一种非线性函数的曲线拟合方法(函数公式:k = A*(T^a)*exp(E/T) ) 上一篇文章说了,函数的曲线拟合我以前没做过,所以是摸着石头过河,不知道所采用的方法是否合理,虽然是完成了拟合,不过我觉得自己采用的拟合方法还是比较原始的,希望做曲线拟合的朋友多多指教。 原始数据如下: T(K) K 200.00 2.5069E-13 220.00 3.5043E-13 223.00 3.6741E-13 225.00 3.7904E-13 250.00 5.4617E-13 275.00 7.5744E-13 295.00 9.6192E-13 298.00 9.9551E-13 300.00 1.0183E-12 325.00 1.3346E-12 350.00 1.7119E-12 375.00 2.1564E-12 400.00 2.6739E-12 425.00 3.2706E-12 450.00 3.9527E-12 475.00 4.7261E-12 480.00 4.8922E-12 500.00 5.5968E-12 525.00 6.5710E-12 550.00 7.6544E-12 575.00 8.8529E-12 600.00 1.0172E-11

800.00 2.5705E-11 1000.00 5.1733E-11 1250.00 1.0165E-10 目标:拟合成k = A*(T^a)*exp(E/T) 模式的公式, 其中A、a和E为未知常数,是我们需要通过曲线拟合要求出的数据。 拟合目标中的公式是幂逼近和指数逼近的混合,用Matlab的cftool 工具箱的自定义函数来逼近,效果并不理想,所以我就参考了网上的一些博客和百度知道等资源,采取如下策略: 首先将非线性的拟合公式转化为线性公式,再用求解线性方程组的矩阵方法求出未知常数的值。 具体地说,拟合公式的线性化表达式为:log(k) = log(A) + a*log(T) + E/T 。这里有三个未知常数log(A)、a 和E,则依次取T,K各三个数据,组成N 个线性方程组:Cx=b,其中:x=[log(A), a, E], C=[1, log(T), 1/T], b=log(k) 。 解这些线性方程组,得到所有方程组的解组成的解矩阵xMat,其大小为N*3,对解矩阵的每一列求平均,即可得到所求的未知常数值。 根据以上策略,可求得未知常数A、a和E的值如下: A = 3.8858e-020,a = 3.0595,E = -117.2915 程序源码: function [A,a,E]= fun_NLFit(T,K) % 函数FUN_NLFIT() 根据输入T,K的数据集,求出拟合公式k = A*(T^a)*exp(E/T) % 的未知常数A,a,E 。 logT=log(T); logK=log(K);

Origin8.0 非线性拟合法

Origin8.0 非线性拟合法 1.打开Origin 8.0软件。 2.在A(X)列输入自变量,在B(Y)列输入因变量。不能把二 者位置搞错。 3.点击analysis下拉菜单→点击Fitting→Nonlinear Curve Fit →Open Dialog… 4.在打开的新窗口中选择Function Selection,点击Gauss下 拉菜单→点击,这时会出现新的页面。然后在新页面进行如下操作: 5.在Independent Variables中选定自变量,在Dependent Variables中选定因变量,在Parameters name 中给出所有待拟合参数的符号如p1,p2,p3…… 6.在Function中建立待拟合的非线性函数关系。 7.就建立了待拟合的非线性函数关系后,依次点击右上角的 Save和右边靠近下方的Ok,这时会出现新的页面。 8.从新页面的Function栏可查看欲用的函数名(即刚建立的 非线性拟合函数);点击新页面的Code,可查看新建的非线性拟合函数;点击Parameters,然后在Value下分别给待拟合参数输入初始值。 9.接下来,可一次次点击下方从左到右第五个按钮,一次一 次进行拟合;也可以击下方从左到右第六个按钮,此时系统会反复进行多次拟合直到收敛为止。收敛后,第五和第六个按钮就都改变颜色变成不能再点击了。这时,点击Ok按钮。结果就出来了。 10.可从中读取待拟合参数的拟合值。 11.双击其中的拟合曲线(Fitted Curves Plot),即可把图放大, 并可按下法进行适当编辑。 12.右键单击横坐标轴或纵坐标轴,点击下拉菜单钟的 Properties…,然后可以选择性调整坐标轴的刻度、刻度线的朝向(朝里或朝外) 13.在Origin中把坐标刻度、刻度线的朝向、数据点的符号、

实验四 插值法与曲线拟合

计算方法实验报告 专业班级:医学信息工程一班姓名:陈小芳学号:201612203501002 实验成绩: 1.【实验题目】 插值法与曲线拟合 2.【实验目的】 3.【实验内容】 4. 【实验要求】

5. 【源程序(带注释)】 (1)拉格朗日插值 #include #include #include #include #include #define n 4 //插值节点的最大下标 main() { double x1[n+1]={0.4,0.55,0.65,0.8,0.9}; double y1[n+1]={0.4175,0.57815,0.69657,0.88811,1.02652}; double Lagrange(double x1[n+1],double y1[n+1],float t); int m,k;float x,y;float X;double z; printf("\n The number of the interpolation points is m ="); //输入插值点的个数 while(!scanf("%d",&m)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\n The number of the interpolation points is m ="); } for(k=1;k<=m;k++) { printf("\ninput X%d=",k); while(!scanf("%f",&X)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\ninput X%d=",k); } z=Lagrange(x1,y1,X); printf("P(%f)=%f\n",X,z); } getch(); return (0); } double Lagrange(double x[n+1],double y[n+1],float X) { int i,j;

基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合 摘要:本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。 0引言 作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。BP网络由大量简单处理单元广泛互联而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。BP神经网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。本文采用BP神经网络解决下列函数拟合问题。 函数逼近:设计一个神经网络拟合下列多输入多输出函数: y1=2+x1RP1.5-1.5sin(3x2); y2=x2sin(x1)+x1cos(x2); 1< x1, x2<5 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。1BP神经网络结构和算法 一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。各层

神经元之间无反馈连接,各层内神经元之间无任何连接。其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。BP 神经网络的学习过程由正向传播和反向传播组成。在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精度要求。BP 算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。 隐含节点 图1 典型3层BP神经网络结构图 2用于函数拟合的BP神经网络模型的建立 为建立函数拟合的BP神经网络模型,一般要考虑以下几步: (1) 样本数据的产生 为简单起见,在x1,x2均属于[1,5]区间内选择均匀分布的200个数据点分别作为训练和测试样本。如图2所示。

matlab非线性参数拟合估计_很好的参考材料

使用nlinfit、fminsearch在matlab中实现基于最小二乘法的 非线性参数拟合 (整理自网上资源) 最小二乘法在曲线拟合中比较普遍。拟合的模型主要有 1.直线型 2.多项式型 3.分数函数型 4.指数函数型 5.对数线性型 6.高斯函数型 ...... 一般对于LS问题,通常利用反斜杠运算“\”、fminsearch或优化工具箱提供的极小化函数求解。在Matlab中,曲线拟合工具箱也提供了曲线拟合的图形界面操作。在命令提示符后键入:cftool,即可根据数据,选择适当的拟合模型。 “\”命令 1.假设要拟合的多项式是:y=a+b*x+c*x^ 2.首先建立设计矩阵X: X=[ones(size(x)) x x^2]; 执行: para=X\y para中包含了三个参数:para(1)=a;para(2)=b;para(3)=c; 这种方法对于系数是线性的模型也适应。 2.假设要拟合:y=a+b*exp(x)+cx*exp(x^2) 设计矩阵X为 X=[ones(size(x)) exp(x) x.*exp(x.^2)]; para=X\y 3.多重回归(乘积回归) 设要拟合:y=a+b*x+c*t,其中x和t是预测变量,y是响应变量。设计矩阵为X=[ones(size(x)) x t] %注意x,t大小相等! para=X\y polyfit函数 polyfit函数不需要输入设计矩阵,在参数估计中,polyfit会根据输入的数据生成设计矩阵。 1.假设要拟合的多项式是:y=a+b*x+c*x^2 p=polyfit(x,y,2) 然后可以使用polyval在t处预测: y_hat=polyval(p,t) polyfit函数可以给出置信区间。 [p S]=polyfit(x,y,2) %S中包含了标准差 [y_fit,delta] = polyval(p,t,S) %按照拟合模型在t处预测 在每个t处的95%CI为:(y_fit-1.96*delta, y_fit+1.96*delta)

matlab非线性拟合

如何拟合曲线 表达式必须自己估计。有很多表达式都能拟合出类似曲线。matlab里做曲线拟合的主要有(我经常用的)有这两个:polyfit和lsqcurvefit。前者专门对高次多项式拟合,后者则适用于绝大多数非线性拟合。根据描点判断可以用多项式拟合,我下面以二次多项式举例: clear x=[ 0 28 64 103 123 144 217 291 429 504 553 657 711 783 838]'; y=[ 31.5300 30.4300 29.3800 28.8000 28.1300 27.5900 25.5300 24.3000 22.8300 21.5700 21.8600 29.4900 34.5200 41.7600 44.6000]; %用polyfit拟合 p=polyfit(x,y,2); %用2次多项式 figure(1); title('拟合1') hold on plot(x,y,'+',x,polyval(p,x)); legend('原始值','拟合值'); %用lsqcurvefit拟合 f=@(b,x) b(1)+b(2).*x+b(3).*x.^2; %构造要拟合的函数 b=lsqcurvefit(f,[1,1,1],x,y); %进行拟合 figure(2) title('拟合2'); hold on plot(x,y,'+',x,f(b,x)); legend('原始数据','拟合数据') 如何计算残差! 首先确定你把拟合曲线图画出来了,然后在figure 1上边的选项中按Tools----Basic Fitting-----cubic----Show equations----plot residuals-----"然后点向右的箭头"-----”再从右边选项框里选Save to workspace“ 这就行了

数值计算_第6章 曲线拟合的最小二乘法

第6章曲线拟合的最小二乘法 6.1 拟合曲线 通过观察或测量得到一组离散数据序列,当所得数据比较准确时,可构造插值函数逼近客观存在的函数,构造的原则是要求插值函数通过这些数据点,即。此时,序列与 是相等的。 如果数据序列,含有不可避免的误差(或称“噪音”),如图6.1 所示;如果数据序列无法同时满足某特定函数,如图6.2所示,那么,只能要求所做逼近函数最优地靠近样点,即向量与的误差或距离最小。按与之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数。 图6.1 含有“噪声”的数据 图6.2 一条直线公路与多个景点 插值和拟合是构造逼近函数的两种方法。插值的目标是要插值函数尽量靠近离散点;拟合的目标是要离散点尽量靠近拟合函数。 向量与之间的误差或距离有各种不同的定义方法。例如: 用各点误差绝对值的和表示: 用各点误差按模的最大值表示: 用各点误差的平方和表示: 或(6.1)

其中称为均方误差,由于计算均方误差的最小值的方法容易实现而被广泛采用。按 均方误差达到极小构造拟合曲线的方法称为最小二乘法。本章主要讲述用最小二乘法构造拟合曲线的方法。 在运筹学、统计学、逼近论和控制论中,最小二乘法都是很重要的求解方法。例如,它是统计学中估计回归参数的最基本方法。 关于最小二乘法的发明权,在数学史的研究中尚未定论。有材料表明高斯和勒让德分别独立地提出这种方法。勒让德是在1805年第一次公开发表关于最小二乘法的论文,这时高斯指出,他早在1795年之前就使用了这种方法。但数学史研究者只找到了高斯约在1803年之前使用了这种方法的证据。 在实际问题中,怎样由测量的数据设计和确定“最贴近”的拟合曲线?关键在选择适当的拟合曲线类型,有时根据专业知识和工作经验即可确定拟合曲线类型;在对拟合曲线一无所知的情况下,不妨先绘制数据的粗略图形,或许从中观测出拟合曲线的类型;更一般地,对数据进行多种曲线类型的拟合,并计算均方误差,用数学实验的方法找出在最小二乘法意义下的误差最小的拟合函数。 例如,某风景区要在已有的景点之间修一条规格较高的主干路,景点与主干路之间由各具特色的支路联接。设景点的坐标为点列;设主干路为一条直线 ,即拟合函数是一条直线。通过计算均方误差最小值而确定直线方程(见图6.2)。 6.2线性拟合和二次拟合函数 线性拟合 给定一组数据,做拟合直线,均方误差为 (6.2) 是二元函数,的极小值要满足 整理得到拟合曲线满足的方程:

曲线拟合的数值计算方法实验

曲线拟合的数值计算方 法实验 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按原理求出变换后变量的,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。

3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近的一种方法。在或社会活动中,通过实验或观测得到量x 与y 的一组数据对(X i ,Y i )(i=1,2,...m ),其中各X i 是彼此不同的 。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x ,c )来反映量x 与y 之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。f(x ,c)常称作拟合模型 ,式中c=(c 1,c 2,…c n )是一些待定参数。当c 在f 中出现时,称为线性模型,否则称为。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c 使得拟合模型与实际在各点的(或),c)-f (f y e k k k 的平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解来确定参数,从而求得拟合曲线。至于,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性。 曲线拟合:与路径转化时的误差。值越大,误差越大;值越小,越精确。 2.最小二乘法拟合:

非线性回归分析(常见曲线及方程)

非线性回归分析 回归分析中,当研究的因果关系只涉及因变量和一个自变量时,叫做一元回归分析;当研究的因果关系涉及因变量和两个或两个以上自变量时,叫做多元回归分析。此外,回归分析中,又依据描述自变量与因变量之间因果关系的函数表达式是线性的还是非线性的,分为线性回归分析和非线性回归分析。通常线性回归分析法是最基本的分析方法,遇到非线性回归问题可以借助数学手段化为线性回归问题处理 两个现象变量之间的相关关系并非线性关系,而呈现某种非线性的曲线关系,如:双曲线、二次曲线、三次曲线、幂函数曲线、指数函数曲线(Gompertz)、S型曲线(Logistic) 对数曲线、指数曲线等,以这些变量之间的曲线相关关系,拟合相应的回归曲线,建立非线性回归方程,进行回归分析称为非线性回归分析 常见非线性规划曲线 1.双曲线1b a y x =+ 2.二次曲线 3.三次曲线 4.幂函数曲线 5.指数函数曲线(Gompertz) 6.倒指数曲线y=a / e b x其中a>0, 7.S型曲线(Logistic) 1 e x y a b-= + 8.对数曲线y=a+b log x,x>0 9.指数曲线y=a e bx其中参数a>0 1.回归: (1)确定回归系数的命令 [beta,r,J]=nlinfit(x,y,’model’,beta0) (2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha) 2.预测和预测误差估计: [Y,DELTA]=nlpredci(’model’, x,beta,r,J) 求nlinfit 或lintool所得的回归函数在x处的预测值Y及预测值的显著性水平为1-alpha的置信区间Y,DELTA. 例2 观测物体降落的距离s与时间t的关系,得到数据如下表,求s 2 解: 1. 对将要拟合的非线性模型y=a/ e b x,建立M文件volum.m如下:

MATLAB在非线性曲线拟合中的应用研究

MATLAB 在非线性曲线拟合中的应用小结 摘要:归纳总结了非线性曲线拟合的方法、求解步骤和上机操作过程 关键词:曲线拟合非线性MA TLAB 正文: 1.曲线拟合的基本原理 已知一组测定的数据(例如N 个点(xi,yi )去求得自变量x 和因变量y 的一个近似解析表达式y=φ(x )。若记误差δi=φ(xi )-yi ,i=1,2,…N ,则要使误差的平方和最小,即要求: ∑== N i i Q 1 2δ 为最小,这就是常用的最小二乘法原理。 2 .MATLAB 曲线拟合的相关方法 2.1.函数形式: (1)多项式拟合函数polyfit ,调用格式为: p=polyfit (x,y ,n ) 其中x ,y 为参与曲线拟合的实验数据,n 为拟合多项式的次数,函数返回值为拟合多项式的系数(按降幂排列)。n=1时,就为线性拟合。 例1:给出表1数据,试用最小二乘法求一次和二次拟合多项式。 表1 数据 在MATLAB 命令窗口中输入: clear; close; x=-1:0.25:1; y=[-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836] p1=polyfit(x,y ,1) p2=polyfit(x,y ,2) y1=polyval(p1,x); y2=polyval(p2,x); plot(x,y ,'+',x,y1,'r:',x,y2,'k-.') 运行结果:

拟合多项式为:y*=2.0516+2.0131和y*=0.0313x2+2.2516x+2.20001 (2)非线性数据拟合函数lsqcurvefit 调用格式为: c=lsqcurvefi (t'fun',x0,xdata,ydata ) 其中'fun'为拟合函数的M -函数文件名,x0为初始向量,xdata,ydata 为参与曲线拟合的实验数据。函数返回值c 为非线性函数fun 的拟合系数。 例2:2004年全国大学生数学建模竞赛C 题(酒后驾车)中给出某人在短时间内喝下两瓶啤酒后,间隔一定的时间测量他的血液中酒精含量y (毫克/百毫升),得到数据如表2。 表2 酒精含量与饮酒时间的实验数据 通过建立微分方程模型得到短时间内喝酒后血液中 酒精浓度与时间的关系为: )(321t c t c e e c y ---= (2) 根据实验数据,利用非线性拟合函数lsqcurvefit ,确定模型(2)式中的参数c1,c2,c3。求解过程为: 先编写一个M -函数文件Example2_1: function f=Example2_1(c,tdata) f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata)); 保存后,在命令窗口中输入: clear tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]; ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 8 15 12 10 7 7 4]; c0=[1 1 1];

曲线拟合的最小二乘法论文#精选.

“数值计算方法与算法”论文 题目:浅谈曲线拟合的最小二乘法 院系:化学与材料工程学院20系 姓名: 学号: 时间:2015年春季学期

浅谈曲线拟合的最小二乘法 【摘要】 数值计算方法,一种研究并解决数学问题的数值近似解的方法,主要解决那些理论上有解但是无法轻易且准确求解的数学问题。在当今计算机技术日渐成熟的背景下,数值计算方法的应用被大大的推广,并且极大的推动了自然科学的规律探索及理论验证。本文主要探讨了一种重要的数值计算方法——曲线拟合的最小二乘法的历史发展、理论核心以及应用价值。 关键词:数值计算方法最小二乘法应用 【正文】 数值计算方法,是一种研究并解决数学问题的数值近似解方法,现在通常在计算机上使用来求解数学问题。它主要的计算对象是那些在理论上有解而又无法直接手工计算的数学问题【1】。例如,用已知的数据点来构造合适的插值函数或拟合出合适的曲线来近似代替原函数,从而解决了因难以求得原函数表达式而无 法计算相关函数值的难题;又如,对于一个一般的非线性方程,可能在 计算方程的根时既无一定章程可循,也无理论解法可言,那么这时就可以构造合适的迭代格式如Newton迭代,通过对一个近似的初值进行有限次迭代,就可以得到较精准的根值,从而有效避免了冗长而又复杂的理论求解的过程。 在学习完计算方法与算法这门课程后,我收获了许多实用的计算方法、技巧和思想,而对书中的某些问题的解法的深入思考也让我加深了对这门课程的理解。由于专业的相关需要,我对曲线拟合的最小二乘法这部分知识点进行了重点的学习和深刻的反思,也收获了许多。 1.最小二乘法的发展历史 18世纪中期以后,欧拉(L. Euler, 1707-1783)、梅耶(T. Meiyer, 1723-1762)、拉普拉斯(P. S. Laplace, 1749—1827)等科学家在研究一些天体运动规律时,都得到了一些含有m个变量n个()方程的线性方程组(也就是我们现在所说的线性矛盾方程组),并且各自运用了一些方法解出了方程组的较优解。虽然方法繁琐且奇特,但不失为数学史一次伟大的尝试。 有关于最小二乘法的首次应用于实际计算并成功的记载,是关于第一颗小行星位置的预测,十分之有趣。1801年,意大利天文学家朱塞普·皮亚齐(Giuseppe Piazzi,1746-1826)发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后,全世界的科学家利用皮亚齐的观测数据,开始了寻找谷神星之旅。但是,根据大多数人的计算结果来寻找谷神星,都以失败告终。时年24岁的伟大的数学家高斯(C.F.Gauss, 1777

matlab非线性曲线拟合

m atlab非线性曲线拟合 最近在用matlab做非线性曲线拟合,发现matlab功能确实很强大,总结其方法有如下几种: 一、Matlab非线性拟合工具箱 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。假设我们要拟合的函数形式是y=a+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2);其中 a,b,c,d是待定系数。 在命令行输入数据: x=8:0.01:12.4; y=real(epsilon); 2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”按钮,弹出“Data”窗口; (2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数据集的曲线图; (3)点击“Fitting”按钮,弹出“Fitting”窗口; (4)点击“New fit”按钮,可修改拟合项目名称“Fit nam e”,通过“Data set”下拉菜单选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类型有: Custom Equations:用户自定义的函数类型 Exponential:指数逼近,有2种类型, a*exp(b*x) 、a*exp(b*x) + c*exp(d*x) Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) + b1*sin(x*w) Gaussian:高斯逼近,有8种类型,基础型是a1*exp(-((x-b1)/c1)^2) Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ Power:幂逼近,有2种类型,a*x^b 、a*x^b + c Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型 Smoothing Spline:平滑逼近 Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1) Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 选择好所需的拟合曲线类型及其子类型,并进行相关设置: ——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改待估计参数的上下限等参数; ——如果选Custom Equations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear Equations线性等式”和“General Equations构造等式”两种标签。 在本例中选Custom Equations,点击“New”按钮,选择“General Equations”标签,输入函数类型 y=a+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2),设置参数a、b、c、d的上下限,然后点击OK。 5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例: General model: f(x) = a+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2) Coefficients (with 95% confidence bounds): a = 3.155 (3.129, 3.181)

非线性函数拟合

用非线性回归nlinfit,如果数据点多些,效果会更好。 function nonlinefit clc;clear; t=[0 4 8 40]; y=[20.09 64.52 85.83 126.75]; beta=nlinfit(t,y,@myfunc,[1 1 1 1]) a=beta(1) k1=beta(2) k2=beta(3) m=beta(4) tt=0:1:40 yy=a+k1*exp(m*tt)+k2*exp(-m*tt) plot(t,y,'o',tt,yy) function y1=myfunc(const,t) a=const(1); k1=const(2); k2=const(3); m=const(4); y1=a+k1*exp(m*t)+k2*exp(-m*t); %或者用以下代码,更为简捷。 clc;clear; t=[0 4 8 40]; y=[20.09 64.52 85.83 126.75]; myfunc=inline('beta(1)+beta(2)*exp(beta(4)*t)+beta(3)*exp(-beta(4) *t)','beta','t'); beta=nlinfit(t,y,myfunc,[1 1 1 1]); a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %test the model tt=0:1:40 ; yy=a+k1*exp(m*tt)+k2*exp(-m*tt); plot(t,y,'o',tt,yy,'r') 结果:

计算方法离散数据曲线拟合

第三章 数据拟合 知识点:曲线拟合概念,最小二乘法。 1.背景 已知一些离散点值时,可以通过构造插值函数来近似描述这些离散点的运动规律或表现这些点的隐藏函数 曲线拟合方法也可以实现这个目标,不同的是构造拟合函数。两种方法的一个重要区别是:由插值方法构造的插值函数必须经过所有给定离散点,而曲线拟合方法则没有这个要求,只要求拟合函数(曲线)能“最好”靠近这些离散点就好。 2.曲线拟合概念 实践活动中,若能观测到函数y=f(x )的一组离散的实验数据(样点):(x i ,y i ), i =1,2…,n 。就可以采用插值的方法构造一个插值函数?(x),用?(x)逼近f(x )。插值方法要求满足插值原则 ?(x i )=y i ,蕴涵插值函数必须通过所有样点。另外一个解决

逼近问题的方法是考虑构造一个函数?(x )最优靠近样点,而不必通过所有样点。如图。 即向量T=(?(x 1), ?(x 2),…?(x n ))与Y=(y 1,y 2,。。。,y n )的某种误差达到最小。按T 和Y 之间误差最小的原则作为标准构造的逼近函数称拟合函数。 曲线拟合问题:如何为f(x )找到一个既简单又合理的逼近函数?(x)。 曲线拟合:构造近似函数?(x),在包含全部基节点x i (i =1,2…,n)的区间上能“最好”逼近f(x )(不必满足插值原则)。 逼近/近似函数y =?(x)称经验公式或拟合函数/曲线。 拟合法则:根据数据点或样点(x i ,y i ),i =1,2…,n ,构造出一条反映这些给定数据一般变化趋势的逼近函数y =?(x),不要求曲线?(x )经过所有样点,但要求曲线?(x)尽可能靠近这些样点,即各点误差δi =?(x i )-y i 按某种标准达到最小。 均方误差/误差平方和/误差的2-范数平方: 常用误差的2-范数平方作为总体误差的度量,以误差平方和达到最小作为最优标准构造拟合曲线的方法称为曲线拟合的最小二乘法(最小二乘原理)。 3.多项式拟合 2 4 4 2 ? ? ? ? ? ? ? ? -4 -2 样点 y =?(x) ?(x i ) y i =f(x i ) ∑==n i i 122 2 ||||δδ

Origin 非线性拟合过程

Origin 8.0绘图时数据自定义公式拟合的方法 Origin 8.0带有强大的数据拟合功能,并拥有大量的拟合函数库。不过如果您对Origin 自带的拟合函数库不熟悉的话,想从中找到你所需要的函数却又可谓是大海捞针,又不一定可以拟合成想要的效果。下面Office办公助手的小编就根据自己的工作中积累的经验讲解下Origin 8.0中自定义公式拟合的方法和步骤。 1、以下图的数据为例,下图的数据符合函数关系y=x^2+3x+5 2、首先用上述数据绘制出散点图。 3、点击“Tools”菜单下的“Fitting Function Organizer”,进入拟合函数管理界面。

4、进入Fitting Function Organizer界面后,先点击右侧的“New Catagory”建立个函数夹(左下角的Steven);然后,点击右侧的“New Function”建立新函数。填写与函数关系相应的参数、 公式等,然后点击右侧的“Save”保存函数。 注:公式编辑的对不对可以点击公式编辑区右边红方块处按钮,compile—done,公式编辑OK

5、选中要拟合的散点图,进入“Analysis”菜单,点击“Nonlinear Curve Fit”开始拟合。 6、进入左侧的“Settings”列表,点击“Function Selection”,然后在右侧选择刚刚新建的函数Function。 7、点击“Data Selection”查看数据的分配是否正确。 本例中,x的数据为Book1 Sheet1 A列,y的数据为Book1 Sheet1 B列。 Fitted Curves是生成的拟合曲线的参数设置(可不修改)。 Advanced为高级选项,可根据要求自行更改。

非线性拟合的初值问题

第24卷第1期吉首大学学报(自然科学版)Vol.24No.1 2003年3月J ournal of J ishou University(Natural Science Edi ti on)Mar.2003 文章编号:1007-2985(2003)01-0037-03 非线性拟合的初值问题* 胡亮 (昆明理工大学数理系,云南昆明650224) 摘要:综述了非线性拟合初值的求解方法,并在前人研究的基础上提出了常见非线性模型初值的简便求法.该方法既可在计算机上编程实现,亦可利用计算机数学分析工具M atlab,Maple,Mathematica,M atcad,微软EXCEL及微软ORIGIN等直接求解. 关键词:数据处理;非线性拟合;插值法;数值微分 中图分类号:O241;O245文献标识码:A 曲线拟合是数据分析和数据处理的重要工作之一.曲线拟合可分为线性拟合和非线性拟合.许多数据关系可化为线性模型,但数据关系极其复杂;非线性模型也是工程技术和预测分析中常遇到的数据关系[1~3].非线性模型参数需用(加权)最小二乘法或最优化方法求解.通常的求解方法具有局部收敛性,需要给出适合的初值,初值准确与否是整个求解工作成败的关键.目前各种数学分析工具用于非线性拟合时,都要给出参数初值.Matlab,Maple,Mathematica可用求极小值或最小二乘函数公式求非线性模型参数; Matcad则有多种非线性拟合公式,其中包括广义非线性拟合公式genfit;微软EXC EL应用/规划求解0工具也能进行非线性拟合[4];微软ORIGI N则提供了许多拟合函数.但是上述方法都需要设定初值,Matcad的genfit还要求参数偏导的初值.通常初值设定是凭经验进行猜测和试探,盲目性很大,难于求得合适的初值,因此笔者拟对该初值问题进行了探讨. 1初值估算方法概述 由于非线性拟合比较复杂,因此应尽可能将模型线性化,如进行取变量的倒数、对数等数学变换,关系式的微分-积分线性化变换[3,4],分段线性化,根据专业理论简化模型(如忽略小量)等,将非线性拟合问题转化为线性拟合问题.对于不能线性化的模型,其最优化拟合就存在参数初值问题.首先,可进行专业理论分析确定参数数值范围,在这个范围内设定初值.其次,最简单的方法是选定几组实验值代入模型,联立其中简单的方程求解参数[1~3];或者用消元法得到单参数的非线性方程,用较宽的求解方法求解,如劈因子法;或研究其大范围的收敛性,得到近似初值[6],该方法需要通过数学分析确定单变量方程的收敛区间.对于多参数、高度复杂的非线性拟合,可采用各种确定性和随机性的全局最优算法.但是,全局最优理论和方法比较复杂,需要繁琐的编程和大量的计算.同时,线性化变换不如非线性拟合直接,可能仅得到近似值.因此,有必要对应用广泛而又常见的非线性拟合寻找简便的参数初值确定方法. 2几种初值估算方法 2.1参数消元法 最常见的非线性拟合是包含3个参数的拟合问题.其中带常数项的幂函数和指数函数在应用中常常用到,其典型方程式为y=ax b+c和y=ab x+c(或y=a e b x+c),指数函数的2种形式很容易互相转 *收稿日期:2002-06-02 作者简介:胡亮(1964-),男,四川省泸州市人,昆明理工大学数理系博士研究生,主要从事计算机与应用化学研究.

相关主题