关于Matlab中的线性与非线性最小二乘拟合

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、线性最小二乘拟合最小二乘法(又称最小平方法)是一种数学优化技术,其通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法通过变量的数据来描述变量之间的相互关系。例如通过1122mmx,y,x,y,,x,y描述x、y之间的相互关系01y=a+ax。常见的多项式拟合曲线有:直线01y=a+ax、多项式01+nny=a+axax、双曲线01y=ax+a、指数曲线*e^y=ab。Matlab中的最小二乘函数:P=polyfit(x,y,n)(n=1时为01y=a+ax),[PSmu]=polyfit(x,y,n),polyval(P,t)返回n次多项式在t处的值(plot(t,polyval(P,t))。P-返回n次拟合多项式系数从高到低依次存放于向量P中,S-包含三个值其中normr是残差平方和,mu-包含两个值mean(x)均值,std(x)标准差。2、非线性拟合超定方程组(方程组的个数大于未知数的个数),Matlab中提供lsqcurvefit和lsqnonlin两个非线性最小二乘拟合函数,两者的区别在于其定于的函数f(x)不一样。非线性曲线拟合lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T中的参变量x(向量),使得:1,niiiFxxdataydata最小其输入格式有:(1)x=lsqcurvefit(‘fun’,x0,xdata,ydata);(2)x=lsqcurvefit(‘fun’,x0,xdata,ydata,options);(3)x=lsqcurvefit(‘fun’,x0,xdata,ydata,options,’grad’);(4)[x,options]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);(5)[x,options,funval]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);(6)[x,options,funval,Jacob]=lsqcurvefit(‘fun’,x0,xdata,ydata,…);其中fun为事先建立的函数F(x,xdata)的M-文件x0为迭代初始值,xdata、ydata为已知数据点、options为无约束优化。非线性最小二乘拟合lsqnonlin用以求含参量x(向量)的向量值函数f(x)=(f1(x),f2(x),…,fn(x))T中的参量x,使得:22212Tnfxfxfxfxfx最小其中,,,xdataiiiiifxfxxdataydataFxydata其输入格式为:(1)x=lsqnonlin(‘fun’,x0);(2)x=lsqnonlin(‘fun’,x0,options);(3)x=lsqnonlin(‘fun’,x0,options,’grad’);(4)[x,options]=lsqnonlin(‘fun’,x0,dwx,upx,options,Y);其中,fun为建立的M文件,x0为初始值,dwx、upx为上、下限,options为无约束优化,Y为传入fun的参数值。无约束优化options的设定options=optimset(‘optionName’,’optionValue’),例如options=optimset('Display','iter','TolFun',1e-8)使得优化函数值的误差为1e-8,iter改为off不显示迭代过程。options=optimset('param1',value1,'param2',value2,...)

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功