1 曲线拟合
用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系。更广泛地说,空间或高维空间中的相应问题亦属此范畴。在数值分析中,曲线拟合就是用解析表达式逼近离散数据,即离散数据的公式化。实践中,离散点组或数据往往是各种物理问题和统计问题有关量的多次观测值或实验值,它们是零散的,不仅不便于处理,而且通常不能确切和充分地体现出其固有的规律。这种缺陷正可由适当的解析表达式来弥补。
曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(xi,yi)(i=1,2,„m),其中各xi是彼此不同的 。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。f(x,c)常称作拟合模型 ,式中c=(c1,c2,„cn)是一些待定参数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在各点的残差(或离差)ek=yk-f(xk,c)的加权平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解方程组来确定参数,从而求得拟合曲线。至于非线性模型,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性最小二乘拟合。
2 基本原理
2.1 曲线拟合的定义
解决曲线拟合问题常用的方法有很多,总体上可以分为两大类:一类是有理论模型的曲线拟合,也就是由与数据的背景资料规律相适应的解析表达式约束的曲线拟合; 另一类是无理论模型的曲线拟合,也就是由几何方法或神经网络的拓扑结构确定数据关系的曲线拟合。
2.1.1 有理论模型的曲线拟合
有理论模型的曲线拟合适用于处理有一定背景资料、规律性较强的拟合问题。通过实验或者观测得到的数据对(xi,yi)错误!未找到引用源。(i=1,2, „,n),可以用与背景资料规律相适应的解析表达式y=f(x,c)错误!未找到引用源。来反映x、y之间的依赖关系,错误!未找到引用源。称为拟合的理论模型,式中c=c0,c1,„cn是待定参数。当错误!未找到引用源。在错误!未找到引用源。中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的方法是最小二乘法。
2.1.1.1 线性模型的曲线拟合
线性模型中与背景资料相适应的解析表达式为:
y01x (1)
式中,错误!未找到引用源。0,错误!未找到引用源。1未知参数,错误!未找到引用源。ε服从N(0,σ2)。
将错误!未找到引用源。个实验点分别带入表达式(1)得到:
yi01xii (2)
式中i=1,2,…错误!未找到引用源。,ε1, ε2,…, εn错误!未找到引用源。相互独立并且服从N(0,σ2)。
根据最小二乘原理,拟合得到的参数应使曲线与试验点之间的误差的平方和达到最小,也就是使如下的目标函数达到最小:
J(yi01xii)2 (3)
i1n错误!未找到引用源。将试验点数据点入之后,求目标函数的最大值问题就变成了求取使目标函数对待求参数的偏导数为零时的参数值问题,即:
nJ2(yi01xii)0 (4) 0i1nJ2(yi01xii)xi0 (5) 1i1从而,就能唯一地确定参数错误!未找到引用源。0,错误!未找到引用源。1错误!未
找到引用源。的值,完成了曲线的最小二乘拟合。
2.1.1.2 非线性模型的曲线拟合
非线性模型的问题一般比线性问题的处理要复杂,模型也分为两类。一类是能通过某些数学变换使待求参数以线性形式出现的,一般优先对其进行线性变换将问题转换,这种称为伪线性最小二乘问题;另一类是无法将待求参数线性化的问题,则必须采用较复杂的非线性问题处理方法。
对于第一类问题,其典型代表是多项式模型,设多项式函数为
f(x)01x2x2...mxm (6)错误!未找到引用源。
我们令xm=xm,则解析式变为
f(x)01x12x2...mxm (7)
此时试验点数据为(xi1,xi2,„xim, yi错误!未找到引用源。),将试验点数据代入解析式得:
f(xi)01xi12xi2...mxim (8)
式中i=1,2,…,n。 此时的目标函数为
J[yi(01xi12xi2...mxim)]2(9)
i1n为使目标函数得到最小值,需使其对各待求参数的偏导数等于零,即
nJ2[yi(01xi12xi2...mxim)]00i1nJ2[yi(01xi12xi2...mxim)]xij0(j1,2,...,m)错误!未找到引用源。 ji1(10)错误!未找到引用源。
由此便可求得各参数的唯一值,从而完成了曲线的最小二乘拟合。 类似的可以进行线性化的常用曲线如下表所示:
表1 可转化为线性式的曲线类型 函数表达式 变换后表达式 变量和参数变化 Y X A B 对于第二类不能直接线性化的问题,通常要借助求解非线性方程组, 通过最优化方法求得所需参数。最常用的最优化方法有:单纯形法、拟牛顿法以及Marquadst 算法。另外, 遗传算法(GA )、免疫算法( IA ) 的研究也为曲线拟合中的优化问题提供了新的思路。 2.2.2 无理论模型的曲线拟合
无理论模型的曲线拟合通常用于工程当中规律性差、理论模型难以确定或者根本不需要理论模型的问题的处理。这种情况下一般采用几何方法或神经网络方法实现曲线拟合。
2.2.2.1曲线拟合的圆弧法
圆弧拟合是一种描绘通过观测点(型值点) 的几何拟合方法。它用分段圆弧代替曲线, 并且使相邻两个圆弧有公共切线。这种方法归结为以下三种情况:
a. 已知圆O错误!未找到引用源。和圆外两点A1错误!未找到引用源。、A2, 求圆P错误!未找到引用源。,使它通过A1错误!未找到引用源。、A2,并且与圆错误!未找到引用源。O相切(外切或内切)。
b. 已知圆O错误!未找到引用源。和圆外一点A2,求圆错误!未找到引用源。P,使它通过A2,并且和圆O错误!未找到引用源。切于点A1。
c. 已知圆O1和圆O2错误!未找到引用源。, 求圆P, 使它和圆O2相切, 且与圆O1切于定点错误!未找到引用源。A。
根据上述三种情况可以确定圆的圆心坐标、半径以及切点, 从而唯一的确定拟合曲线。 对于常规的已知实验数据点求拟合曲线问题,圆弧拟合法的示意图如图1所示。分别对试验点连线P1P2错误!未找到引用源。和P2P3错误!未找到引用源。做垂直平分线,两条垂直平分线的交点即为第一段圆弧的圆心,第一段圆弧过前三个试验点,以后的每个试验点的圆弧拟合方法以第q个试验点Pq错误!未找到引用源。为例进行说明。
先做第q个试验点与第q-1个试验点连线Pq-1Pq错误!未找到引用源。的垂直平分线,它与第q-1个试验点所在前一段拟合曲线的过第q-1个试验点的半径或者半径的延长线的交点,即为第q个试验点所在拟合圆弧的圆心,确定了圆心,便可作出经过该试验点的拟合圆弧。依此对每个试验点使用此法,便可实现对所有试验点的圆弧曲线拟合。
图1 可转化为线性式的曲线类型
2.2.2.2曲线拟合的神经网络法
如果将人工神经网络的每个结点看成是一个基本函数,则人工神经网络实质上就相当于基本函数族网络(如图2所示),它们在相应的权值ωi错误!未找到引用源。作用下, 生成网络函数Y,可以将其看成是泛化了的曲线模型。
图2 人工神经网络简图
针对曲线拟合的问题,激活函数应该是连续的、非线性的(对非线性拟合问题而言)。应用最普遍的是Sigmoid 函数, 其表达式为
错误!未找到引用源。 (11)
式中,c 为任意常数。而网络结构的选择一般要根据实验数据的形式确定,前馈型神经网络是最常用的网络结构。具体地,如果是单条曲线的拟合,网络结构应该是单输入单输出的;如果是多对曲线的并行拟合,还存在单输入多输出与多输入多输出的网络结构。
常用的神经网络拟合模型有BP网络、径基函数(RBF)神经网络等,这里不再详细叙述。
2.2.2.3 自回归模型
自回归模型(英语:Autoregressive model,简称AR模型),是统计上一种处理时间序
至
来预测本期
的表现,并假设它
列的方法,用同一变量例如的之前各期,亦即预测(自己);所以叫做自回归。
们为一线性关系。因为这是从回归分析中的线性回归发展而来,只是不用预测,而是用
自回归模型被广泛运用在经济学、信息学、自然现象的预测上。
其中:是常数项;被假设为平均数等于0,标准差等于的随机误差值;被假设为对于任何的都不变。 文字叙述为:
的当期值等于一个或数个落后期的线性组合,加常数项,加随机误差。
自回归方法的优点是所需资料不多,可用自身变量数列来进行预测。但是这种方法受到
一定的限制:
1. 必须具有自相关,自相关系数(
采用,否则预测结果极不准确。
2. 自回归只能适用于预测与自身前期相关的经济现象,即受自身历史因素影响较大的
经济现象,如矿的开采量,各种自然资源产量等;对于受社会因素影响较大的经济现象,不宜采用自回归,而应改采可纳入其他变量的向量自回归模型。
)是关键。如果自相关系数(R)小于0.5,则不宜
3在不同软件中的实现
3.1 matlab曲线拟合
3.1.1 polyfit多项式函数拟合
polyfit函数是matlab中用于进行曲线拟合的一个函数。用多项式求过已知点的表达式。调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。下图为使用polyfit进行曲线拟合的一个例子。其中蓝色曲线表示原始数据,红色曲线表示拟合的曲线。
3.1.2非线性拟合lsqcurvefit、nlinfit
我们知道一个表达式的式子是y=A*sin(x).*exp(x)-B./log(x),现在我们手里面有x与y对应的一大把数据。我们如何根据x,y的值找出最佳的A、B值。我们可以借助Matlab的函数lsqcurvefit、nlinfit,也可以使用lsqnonlin。从下图中可以看出,nlinfit拟合可以得到很好的效果,但是前提是我们知道表达式。用已知数据对表达式的参数进行估计。这并不适合由计算机进行自适应的学习。
3.2 Origin曲线拟合
3.2.1 线性拟合
线性回归拟合将选中的数据点拟合为直线,选择 Analysis-Fit linear,那么Origin将曲线拟合为直线,以X 为自变量,Y 为因变量,回归拟合的函数形式为:Y=A+BX,其中 A,B为参数,由最小二乘法确定。
3.2.2 多项式拟合
选择 Analysis|Fit Polynomial,打开 Polynomial Fit to…对话框,用户在对话框中指定多项式的阶(Order,允许值为0~9)、拟合曲线绘制的数据点数、拟合曲线 X的最大值和最小值以及选择是否在 Graph窗口中显示拟合公式
3.2.3 插值法拟合
插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点
上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式:
f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0)...(x-xn-1)+Rn(x)。
4 结论
1、最小二乘问题的解存在而且唯一
2、最小二乘解的系数可以通过解法方程得到
3、任何连续函数至少在一个比较小的邻域内均可以用多项式任意逼近,因此,在许多
实际问题中,不论具体的函数关系如何,都可以用适当的多项式做数据拟合。 4、当无法分析拟合函数的类型时:可根据已知数据的散点图的分布情况和特点选择适当的拟合曲线类型。但是根据项目的需要,异常检测项目应能自动适应曲线的变化。所以使用预先估计的函数类型并不适合本项目。
5、插值法的思想很简单:先数一数有几个节点,“节点个数减一”就是我们要构造的多项式的最高次数,然后再利用构造方法来构造就可以了,其实就是套用公式。但它有明显的缺陷:一是测量数据通常有测量误差,而插值多项式又通过所有的点,这样就使插值多项式保留了这些误差;二是如果有实验提供的数据较多,则必然得到次数较高的插值多项式,这样计算起来很繁琐。
5 对平滑后的传感器数据进行多项式拟合
取一个传感器30天的数据为例,我们取最大的9阶多项式对数据进行拟合,结果如下图所示。
因篇幅问题不能全部显示,请点此查看更多更全内容