最小二乘法曲线拟合-原理和matlab实现

最小二乘法曲线拟合-原理和matlab实现

ID:41713632

大小:94.75 KB

页数:11页

时间:2019-08-30

最小二乘法曲线拟合-原理和matlab实现_第1页
最小二乘法曲线拟合-原理和matlab实现_第2页
最小二乘法曲线拟合-原理和matlab实现_第3页
最小二乘法曲线拟合-原理和matlab实现_第4页
最小二乘法曲线拟合-原理和matlab实现_第5页
资源描述:

《最小二乘法曲线拟合-原理和matlab实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、曲线拟合(curve-fitting):工程实践中,用测量到的一些离散的数据{(形丿),,=0,1,2,."}求一个近似的函数0(兀)来拟合这组数据,要求所得的拟合曲线能最好的反映数据的基本趋势(即使0(兀)最好地逼近/(兀),而不必满足插值原则。因此没必要取0(兀)二升,只要使爲=0(兀)-必尽可能地小)。原理:给定数据点{(兀=0,1,2,・・加}。求近似曲线°(兀)o并且使得近似曲线与/(兀)的偏差最小。近似曲线在该点处的偏差Q=0(兀)—x,i=l,2,...,m。常见的曲线拟合方法:1.使偏差

2、绝对值之和最小叫口乞

3、迓

4、=£

5、0(兀)一如0i=ii=i2.使偏差绝对值最大的最小minmax

6、^

7、=

8、0(壬)-必

9、(Pi3.使偏差平方和最小朋mminX$2=£(0(兀)-y)2©i=li=l最小二乘法:按偏差平方和最小的原则选取拟合曲线,并口采取二项式方程为拟合曲线的方法,称为最小二乘法。推导过程:1.设拟合多项式为:0(兀)=Q()+Q]X+・・.+@兀“1.各点到这条曲线的距离之和,即偏差平方和如下:/t了R・=工卜』-伽+©•©+・•・+/.{)]・J=i3•问题转化为求待定系数q…色对等

10、式右边求也偏导数,因而我们得到了:n-2工卜-+aix+…+心.J)]=04=1n一2工卜一(a。+血工+・・・+心)

11、x=:0J=1ft—2^~^[y—(rt(>+"I-V4-...+珈x")

12、工人=°,i=i4、把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵:"I•rE=1Xiyi■rOkms5.将这个范德蒙得矩阵化简后对得到:6.也就是说X*A=Y,那么A=(X,*X)-1*X,*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。MATLAB实现:MATLAB提供了polyfk()函数

13、命令进行最小二乘曲线拟合。调用格式:p=polyfit(x,y,n)[p,s]=polyfit(x,y,n)[p,s,mu]=polyfit(x,y,n)x,y为数据点,n为多项式阶数,返[Hip为幕次从高到低的多项式系数向量p。x必须是单调的。矩阵s包括R(对x进行QR分解的三角元素)、df(自由度)、nornir(残差)用于生成预测值的误差估计。[p,s,mu]二polyfit(x,y,n)在拟合过程屮,首先对x进行数据标准化处理,以在拟合中消除量纲等影响,mu包含标准化处理过程中使用的x的均值和标

14、准差。polyval()为多项式曲线求值函数,调用格式:y=polyval(p,x)[y,DELTA]=polyval(p,x,s)y二polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。[y,DELTA]二polyval(p,x,s)使用polyfit函数的选项输岀s得出误差估计YDELTAo它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则YDELTA将至少包含50%的预测值。如下给定数据的拟合曲线:x二[0.5,1.0,1.5,2.025,3.0],y=[1.7

15、5,2.45,3.81,4.80,7.00,8.60]。解:MATLAB程序如下:x二[0.5,1.0,1.520,2.5,3.0];y=[1.75,2.45,3.81,4.80,7.00,8.60];p=polyfit(x,y,2)xl=0.5:0.05:3.0;yl=polyval(p,xl);plot(x,y,F;xl,yl,W)运行结果如图1计算结果为:p=0.56140.82871.1560即所得多项式为y=0.5614xA2+0.08287x+1.155600.511.522.53图1最小二

16、乘法曲线拟合示例对比检验拟合的有效性:例:在[0,兀]区间上对正弦函数进行拟合,然后在[0,2兀]区间画出图形,比较拟合区间和非拟合区间的图形,考察拟合的有效性。在MATLAB中输入如下代码:clearx=0:0.1:pi;y=sin(x);[p,mu]=polyfit(x,y,9)x1=0:0」:2*pi;y1=sin(x1);%实际曲线y2=polyval(p,xl);%根据由区间0到pi上进行拟合得到的多项式计算0到2pi上的函数值,%需要注意的是polyval()返回的函数值在pi到2pi上并没

17、有进行拟合plot(xl,y2,'k*;xl,y1,‘k」)运行结果:P二0.00000.0000-0.00030.00020.00800.0002-0.16680.00001.00000.0000mu=R:[10x10double]df:22normr:1.6178e-07MATLAB的】:优化工具箱还提供了lsqcurvefit()拟合(Solvenonlinearcurve-fitting(data-fitting)函数命令进行最小二

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。