第五章数据拟合
这就是数据拟合成曲线的思想,简称为曲线拟合(fittingacurve)。根据一组二维数
据,即平面上的若干点,要求确定一个一元函数y=f(x),即曲线,使这些点与曲线总
体来说尽量接近,
曲线拟合其目的是根据实验获得的数据去建立因变量与自变量之间有效的经验函数关
系,为进一步的深入研究提供线索。本章的目的,掌握一些曲线拟合的基本方法,弄清
楚曲线拟合与插值方法之间的区别,学会使用MATLAB软件进行曲线拟合。
§1最小二乘法
给定平面上的点(xi,yi),(i=1,2,„,n),进行曲线拟合有多种方法,其中最小二乘
法是解决曲线拟合最常用的方法。最小二乘法的原理是:
求
n
i
ii
n
i
i
yxfxf
1
2
1
2])([),(使
达到最小
如图1所示,其中δi为点(xi,yi)与曲线y=f(x)的距离。曲线拟合的实际含义是寻求一
个函数y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。最
小二乘准则就是使所有散点到曲线的距离平方和最小。拟合时选用一定的拟合函数f(x)
形式,设拟合函数可由一些简单的“基函数”(例如幂函数,三角函数等等)
)(),...,(),(
10
xxx
m
来线性表示:
)(...)()()(
1100
xcxcxcxf
mm
图1曲线拟合示意图
现在要确定系数c0,c1,„,cm,使d达到极小。为此,将f(x)的表达式代入d中,d就
成为c0,c1,„,cm的函数,求d的极小,就可令d对ci的偏导数等于零,于是得到
m+1个方程组,从中求解出ci。通常取基函数为1,x,x2,x3,„,xm,这时拟合函数
f(x)为多项式函数。当m=1时,f(x)=a+bx,称为一元线性拟合函数,它是曲线拟
合最简单的形式。除此之外,常用的一元曲线拟合函数还有双曲线f(x)=a+b/x,指
数曲线f(x)=aebx等,对于这些曲线,拟合前须作变量代换,转化为线性函数。
已知一组数据,用什么样的曲线拟合最好呢?可以根据散点图进行直观判断,在此
基础上,选择几种曲线分别作拟合,然后比较,观察哪条曲线的最小二乘指标d最小。
§2曲线拟合的MATLAB实现
MATLAB软件提供了基本的曲线拟合函数的命令:
多项式函数拟合:a=polyfit(xdata,ydata,n)
其中n表示多项式的最高阶数,xdata,ydata为要拟合的数据,它是用数组的方式输
入。输出参数a为拟合多项式y=a1xn+„+anx+an+1的系数a=[a1,„,an,an+1]。
多项式在x处的值y可用下面程序计算。
y=polyval(a,x)
一般的曲线拟合:p=curvefit(‘Fun’,p0,xdata,ydata)
其中Fun表示函数Fun(p,xdata)的M-文件,p0表示函数的初值。curvefit命令的求
解问题形式是:
min{p}sum{(Fun(p,xdata)-ydata).^2}
若要求解点x处的函数值可用程序f=Fun(p,x)计算。
例如已知函数形式y=ae-bx+ce–dx,并且已知数据点(xi,yi),i=1,2,„,n,
要确定四个未知参数a,b,c,d。
使用curvefit命令,数据输入xdata=[x1,x2,„,xn];ydata=[y1,y2,„,yn];初
值输入p0=[a0,b0,c0,d0];并且建立函数y=ae-bx+ce–dx的M-文件(Fun.m)。若
定义p1=a,p2=b,p3=c,p4=d,则输出p=[p1,p2,p3,p4]。
引例求解:
t=[1:16];%数据输入
y=[46.488.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];
plot(t,y,'o')%画散点图
p=polyfit(t,y,2)(二次多项式拟合)
计算结果:
p=-0.04451.07114.3252%二次多项式的系数
从而得到某化合物的浓度y与时间t的拟合函数:
y=4.3252+1.0711t–0.0445t2
对函数的精度如何检测呢?仍然以图形来检测,将散点与拟合曲线画在一个画面上。参
见图2。
xi=linspace(0,16,160);
yi=polyval(p,xi);
plot(x,y,'o',xi,yi)
由此看出上述曲线拟合是比较吻合的。
图2浓度y的拟合曲线与实测数据(o)的比较
在MATLAB的NAGFoundationToolbox中也有一些曲面拟合函数,如e02daf,e02cf,
e02def可分别求出矩形网格点数据、散点数据的最小平方误差双三次样条曲面拟合,
e02def等可求出曲面拟合的函数值。
本文发布于:2023-01-04 16:31:04,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/91676.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |