资源描述:
《Matlab讲义9.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1数学软件——MATLAB电子教案(八)——插值与拟合2插值与拟合多项式拟合polyfit非线性曲线拟合lsqcurvefit一维插值interp1二维插值interp2二维表查找table2三维插值interp3一维表查找table最佳均方逼近3曲线拟合问题的提法已知一组(二维)数据,即平面上的n个点,互不相同,寻求一个函数(曲线),使在某中准则下与所有数据点最为接近,即曲线拟合得最好.示意如下图:yO+++++++++x4拟合的基本思路--最小二乘法线性最小二乘法是解决曲线拟合最常用的方法。令:f(x)=a1r1(x)+
2、a2r2(x)+...+amrm(x)其中rk是事先选定的一组函数,ak是待定系数(k=1,2,...,m).拟合准则是使n个点(xi,yi)(i=1,2,...n),与y=f(xi)的距离δi的平方和最小,称最小二乘准则。即5拟合曲线方程系数的确定为求a1,a2,...,am使J达到最小,只需利用极值的必要条件:J/ak=0(k=1,...,m),得到关于a1,a2,...,am的线性方程组:6常用的曲线函数rk(x)1.线性函数:y=ax+b2.多项式:y=a0+a1x+a2x2+...+amxm3.双曲线(一支):
3、y=a/x+b4.指数函数:y=aebxMATLAB进行拟合的指令主要有:多项式拟合polyfit非线性最小二乘拟合lsqnonlin7多项式拟合多项式拟合的目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。MATLAB指令Polyfit(X,Y,n)X,Y为拟合数据,n为拟合多项式的阶数[p,s]=Polyfit(X,Y,n)P为拟合降幂多项式系数向量,s为结构变量8多项式拟合示例例:x=0:pi/20:pi/2;y=sin(x);a=polyfit(x,
4、y,5);x1=0:pi/30:pi*2;y1=sin(x1);y2=a(1)*x1.^5+a(2)*x1.^4+a(3)*x1.^3+a(4)*x1.^2+a(5)*x1+a(6);plot(x1,y1,'b-',x1,y2,'r*')legend('原曲线','拟合曲线')axis([0,7,-1.2,4])9非线性曲线拟合MATLAB指令x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options,P1,P2,...)[x,resnorm,residual,exitflag,output
5、,lambda,jacobian]=lsqcurvefit(...)功能:构造一个非线性函数F(x,xdata)来拟合数据(xdata,ydata);lsqcurvefit将估计出F的系数向量x。注意:Fun函数中xdata是自变量(向量),x是系数(参量,lb6、a)+x(3)*xdata.^3去拟合数据(xdatai,ydatai)(i=1,2,...10).解:xdata=[3.67.79.34.18.62.81.37.910.05.4];ydata=[16.5150.6263.124.7208.59.92.7163.9325.054.3];x0=[10,10,10]%Startingguess[x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata)------------------------------------------------
7、----------------------------------------------------------------functionF=myfun(x,xdata)F=x(1)*xdata.^2+x(2)*sin(xdata)+x(3)*xdata.^3;11插值问题的提法与求解思路已知n+1个节点(xj,yj),(j=0,1,...n),其中xj互不相同,不妨设a=x08、,或不存在封闭形式,也可以未知。求解的基本思路构造一个相对简单的函数y=f(x),使f通过全部节点,即f(xj)=yj(j=0,1,...n),再用f(x)计算插值,即y*=f(x*)。12多项式插值所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有