最小二乘法曲线拟合

上传人:s****a 文档编号:48911177 上传时间:2022-01-15 格式:DOC 页数:11 大小:181.50KB
收藏 版权申诉 举报 下载
最小二乘法曲线拟合_第1页
第1页 / 共11页
最小二乘法曲线拟合_第2页
第2页 / 共11页
最小二乘法曲线拟合_第3页
第3页 / 共11页
资源描述:

《最小二乘法曲线拟合》由会员分享,可在线阅读,更多相关《最小二乘法曲线拟合(11页珍藏版)》请在装配图网上搜索。

1、曲线拟合(curve-fitting ):工程实践中,用测量到的一些离散的数 据(x,yj,i =01,2,.m求一个近似的函数护(x)来拟合这组数据,要求所得的拟合 曲线能最好的反映数据的基本趋势(即使(x)最好地逼近f x,而不必满足插值原则。因此没必要取(Xi) = yi,只要使、:i二(Xi)-yi尽可能地小)。原理:给定数据点( Xi,y)i =0,1,2,m。求近似曲线(x) o并且使得近似曲线与 f x的偏差最 小。近似曲线在该点处的偏差叽=(xj -引,i=1,2,.,m o常见的曲线拟合方法:1. 使偏差绝对值之和最小就工(兀)一刃 卩 t=li=l2. 使偏差绝对值最大的最

2、小A i3. 使偏差平方和最小朋JWe *=11=1最小二乘法:按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。推导过程:1. 设拟合多项式为:(x)二 a0 a1x akxk2. 各点到这条曲线的距离之和,即偏差平方和如下:1=13. 问题转化为求待定系数 a0ak对等式右边求ai偏导数,因而我们得到了:2 刀卜 (no + oJ a +)| = Oi=i2 刀卜(他 + oj .V + _ * ox x = 0j=l4、把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵:5.将这个范德蒙得矩阵化简后可得到6.也就是说 X*A=Y,那么 A = (

3、X'*X)-1*X'*Y,便得到了系数矩阵 A,同时,我们也就得到了拟合曲线。MATLAB实现:MATLAB!供了 polyfit ()函数命令进行最小二乘曲线拟合。调用格式:p=polyfit(x,y, n)p,s= polyfit(x,y, n)p,s,mu=polyfit(x,y, n)x,y为数据点,n为多项式阶数,返回p为幕次从高到低的多项式系数向量 p。x 必须是单调的。矩阵s包括R (对x进行QR分解的三角元素)、df(自由度)、 normr(残差)用于生成预测值的误差估计。p,s,mu=polyfit(x,y,n)在拟合过程中,首先对x进行数据标准化处理,以在拟

4、合中消除量纲等影响,mu包含标准化处理过程中使用的 x的均值和标准差。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得出误差估计 丫DELTA它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则丫 DELTA将至少包含50%勺预测值。如下给定数据的拟合曲线:x=0.5,1.0,1.5,2.0,2.5,3.0,y=1.75,2.45,3.81,4.80

5、,7.00,8.60。解:MATLA程序如下:x=0.5,1.0,1.5,2.0,2.5,3.0;y=1.75,2.45,3.81,4.80,7.00,8.60;p=polyfit(x,y,2)x1=0.5:0.05:3.0;y1=polyval(p,x1);plot(x,y,'*r',x1,y1,'-b')运行结果如图1计算结果为:p =0.5614 0.8287 1.1560即所得多项式为 y=0.5614xA2+0.08287x+1.15560875432111 1-T-一一一士1 rrrFr.511.522.536图1最小二乘法曲线拟合示例对比检验拟合的

6、有效性:例:在0, n 区间上对正弦函数进行拟合,然后在0,2 n 区间画出图形,比较 拟合区间和非拟合区间的图形,考察拟合的有效性。在MATLAB输入如下代码:clearx=0:0.1:pi;y=si n( x);p,mu=polyfit(x,y,9)x1=0:0.1:2*pi;y1=sin(x1);%实际曲线y2=polyval(p,x1);% 根据由区间0到pi上进行拟合得到的多项式计算0到2pi上的函数值,%需要注意的是polyval ()返回的函数值在pi到2pi上并没有进行拟合plot(x1,y2,'k*',x1,y1,'k-')运行结果:p =0.

7、00000.0000-0.00030.00020.00800.0002-0.1668 0.0000 1.0000 0.0000mu =R: 10x10 double df: 22normr: 1.6178e-07100.80.60.40.2-0.2-0.4-0.6-0.8MATLAB的最优化工具箱还提供了Isqcurvefit ()函数命令进行最小二乘曲线拟 合(Solvenonlinearcurve-fitting(data-fitting)problems inleast-squares sen se) 。调用格式:x = lsqcurvefit(fu n, x0,xdata,ydata)

8、x = lsqcurvefit(fu n, x0,xdata,ydata,lb,ub)x = lsqcurvefit(fu n, x0,xdata,ydata,lb,ub,opti ons)x = lsqcurvefit(problem)x,res norm = lsqcurvefit(.)x,res no rm,residual = lsqcurvefit(.)x,res no rm,residual,exitflag = lsqcurvefit(.)x,res no rm,residual,exitflag,output = lsqcurvefit(.)x,res no rm,residu

9、al,exitflag,output,lambda = lsqcurvefit(.)x,res no rm,residual,exitflag,output,lambda,jacobia n=x0为初始解向量;xdata , ydata为满足关系 ydata=F(x, xdata) 的数据; lb、ub为解向量的下界和上界,若没有指定界,则lb= , ub=;optio ns为指定的优化参数;fun 为拟合函数,其定义方式为:x = lsqcurvefit(myfun,xO,xdata,ydata)其中 myfun 已定义为 function F = myfun(x,xdata)F =%计算x

10、处拟合函数值fun的用法与前面相同;res no rm=sum (fu n(x,xdata)-ydata)42),即在 x 处残差的平方和;residual=fun(x,xdata)-ydata ,即在 x 处的残差;exitflag为终止迭代的条件;output为输出的优化信息;lambda 为解 x处的 Lagrange 乘子;jacobian为解x处拟合函数fun的jacobian矩阵。例:lsqcurvefit()优化程序Data =.0.00005.89550.10003.56390.20002.51730.30001.97900.40001.89900.50001.39380.60

11、001.13590.70001.00960.80001.03430.90000.84351.00000.68561.10000.61001.20000.53921.30000.39461.40000.39031.50000.54741.60000.34591.70000.13701.80000.22111.90000.17042.00000.2636;t = Data(:,1);y = Data(:,2);% axis(0 2 -0.5 6)plot(t,y,'ro')title('Data poi nts')%We would like to fit the

12、fun ction y = c(1)*exp(-lam(1)*t) + c(2)*exp(-lam(2)*t) to the data%The Isqcurvefit function solves this type of problem easily.%To begi n, defi ne the parameters in terms of one variable x:%x(1) = c(1)%x(2) = lam(1)%x(3) = c(2)%x(4) = lam(2)%The n defi ne the curve as a function of the parameters x

13、 and the data t:F = (x,xdata)x(1)*exp(-x(2)*xdata) + x(3)*exp(-x(4)*xdata); x0 = 1 1 1 0;x,res no rm,exitflag,output = lsqcurvefit(F,x0,t,y)hold onplot(t,F(x,t)hold offFsumsquares = (x)sum(F(x,t) - y).A2);opts = optimset('LargeScale','off);xun c,ressquared,eflag,outputu=.fminun c(Fsumsqu

14、ares,x0,opts)fprin tf('There were %d iterati ons using fminun c,'.'and %d using lsqcurvefit.n', .outputu.iterati on s,output.iterati ons)fprin tf('There were %d function evaluati ons using fminun c,'.'and %d using lsqcurvefit.', .outputu.fu ncCoun t,output.fu ncCo unt

15、)type fitvectorx02 = 1 0;F2 = (x,t) fitvector(x,t,y);x2,res norm2,exitflag2,outpu t2 = lsqcurvefit(F2,x02,t,y)fprin tf('There were %d function evaluati ons using the 2-d '. 'formulatio n, and %d using the 4-d formulati on.',. output2.fu ncCoun t,output.fu ncCo unt)xObad = 5 1 1 0;xba

16、d,res no rmbad,exitflagbad,outputbad=.lsqcurvefit(F,x0bad,t,y)hold onplot(t,F(xbad,t),'g')legend('Data','Global fit','Bad local fit','Location','NE')hold offfprintf('The residual norm at the good ending point is %f,' .'and the residual norm

17、 at the bad ending point is %f.', .resn orm,res normbad)displayE ndOfDemoMessage(mfile name)拟合效果如下:Data pointsDataGlobal fitBad local fit -00.20.40.60.811.21.41.61.82直线的最小二乘拟合:y = a+bx式中有两个待定参数,a代表截距,b代表斜率。对于等精度测量所得到的 N组数据(xi,yi),i = 1, 2,N, xi值被认为是准确的,所有的误差只联 系着yi。下面利用最小二乘法把观测数据拟合为直线。用最小二乘法估计参数

18、时,要求观测值yi的偏差的加权平方和为最小。对 于等精度观测值的直线拟合来说,可使下式的值最小:工兀-(。+肚)?=1上式分别对a b求偏导得:"处)了二-2 £ (兀- a -姐)二 0,£兀-(a +如)=f=l=-2 丫 ”- (a + by )兀=0 * 址1整理后得到方程组:aJV + b"解上述方程组便可求得直线参数 a和b的最佳估计值。a g>)(DJ-(0)(0必)"川引-(力订1、可看成是一阶多项式拟合,跟前面曲线拟合方法一样2、 利用linefit()函数进行最小二乘的直线拟合 使用:clearx=0.5 1 1.5 2 2.5 3;y= 1.75 2.45 3.81 4.8 8 8.6; k,b=linefit(x,y) %得到斜率k和常数by仁polyval(k,b,x);plot(x,y1, ' k-' ,x,y, ' k*')MATLA一元到多元线性回归方程的计算和检验 _百度文库iX2LPEZYJM2790sHg2d52R4VYoywJWBi1S44Wy0-mMlymAKiLNQY6z2hpHCm-fgyv0PWwK(研究生 数理统计)多元线性回归及显著性检验 Matlab程序(完美版)_百度文库

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!