MATLAB的差值与曲线拟合ppt课件_第1页
MATLAB的差值与曲线拟合ppt课件_第2页
MATLAB的差值与曲线拟合ppt课件_第3页
MATLAB的差值与曲线拟合ppt课件_第4页
MATLAB的差值与曲线拟合ppt课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB的差值与曲线拟合,MATLAB数据处理与应用2011-2012学年选修课,第八讲,王文健wwj527,1,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,2,主要内容,插值运算曲线拟合分段函数拉格拉日插值牛顿插值Hermite插值,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,3,MATLAB插值与曲线拟合,简介把试验数据绘制成图是点状分布,将这些点练成曲线,然后转化为有意义的数学函数,才能对数据做对比和分析上述过程涉及插值(interpolation)和曲线拟合(curve-fitting)插值过程中认为数据是准确的,求取描述点之间的数据曲线拟合中,假定已知曲线的规律,做曲线的最佳逼近,不需要经过所有数据点,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,4,MATLAB插值与曲线拟合,插值计算假设试验得到一组数据形态为:f(xk);其中k=1,2,n;且x1=axn=c如果某些点xi不属于上述的xi,但是a=xi=c,要估计这些点的函数值f(xi)就需要做插值运算根据原始数据所描述的函数的复杂程度,存在有:一维插值二维插值Spline插值,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,5,MATLAB插值与曲线拟合,一维插值一维插值可以是线性的,也可以是三次多项式或spline插值一维线性插值是假设两个数据中的变化为线性关系,因此可由已知点的坐标(f(a),a)和(f(c),c)计算b点的函数值f(b)一维线性插值是最简单的插值,适用范围很小可用较为复杂的三次多项式或spline来近似找到原函数f(x),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,6,MATLAB插值与曲线拟合,一维插值MATLAB的一维插值函数为interp1(a,c,b)和interp1(a,c,b,method)其中a,c为已知数据,而b为要插值的数据点,method为预先设定的插值方法,分别为线性(linear)、三次多项式(cubic)和spline如果数据的变化较大,以spline插值所形成的曲线最为平滑,效果最好三次多项式所得的曲线平滑度介于linear和spline之间,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,7,MATLAB插值与曲线拟合,一维插值举例假设汽车引擎在额定转速下温度与时间的测量值关系如下00;120;260;368;477;5110;用一维插值法估计时间为2.6s和4.9s时的温度值。分别用三种方法估计其值x=012345;y=020606877110;y1=interp1(x,y,2.6)y2=interp1(x,y,2.64.9)y3=interp1(x,y,2.64.9,cubic)y3=interp1(x,y,2.64.9,spline),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,8,MATLAB插值与曲线拟合,一维插值举例画出插值后的时间与温度变化曲线图。t=0122.6344.95;y1=0206064.86877106.7110;y2=0206065.26877105.6110;y3=0206067.36877105.2110;plot(t,y1,t,y2,t,y3),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,9,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,10,MATLAB插值与曲线拟合,二维插值假设试验所得到的一组数据形态为z=f(xk,yk),期中k=1,2,n;如果某些点(xi,yi)不属于上述点,要估计这些点的函数值f(xi,yi)就需要进行二维擦绘制运算,二维插值相当于二元函数运算MATLAB中二维插值函数是interp2(x,y,z,xi,yi),期中xi,yi为要插值的数据点,x,y,z为已知数据通过设定interp2(x,y,z,xi,yi,method)也可以设定不同的插值方法,有linear、cubic和spline三种,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,11,MATLAB插值与曲线拟合,二维插值举例假设汽车的引擎转速、温度与时间的测量值关系如下表,估计时间为2.6s和速度为2500r时的温度。,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,12,MATLAB插值与曲线拟合,二维插值举例应用函数interp2函数分别用linear、cubic、spline来估计时间2.6s和转速2500r的温度值。t=12345;speed=200030004000;temp=20110176;60180220;68240349;77310450;110405503;temp1=interp2(speed,t,temp,2500,2.6)temp2=interp2(speed,t,temp,2500,2.6,cubic)temp3=interp2(speed,t,temp,2500,2.6,spline),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,13,MATLAB插值与曲线拟合,spline插值函数spline有两种应用形式,spline(x,y,xi)和spline(x,y)spline(x,y,xi)与interp1(x,y,xi,spline)效果一样举例x=012345;y=020606877110;y1=spline(x,y,2.6)y1=spline(x,y,2.6,4.9),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,14,MATLAB插值与曲线拟合,spline插值举例:在0,10区间上按正弦规律y=sin(x)取10个点yi,再在区间0,10上取41个点,以yi为已知数据,对这41个点做spline插值运算,得到函数值并绘图,比较其值与正弦波偏离程度。x=0:10;y=sin(x);xx=0:0.25:10;yy=spline(x,y,xx);plot(x,y,o,xx,yy,xx,sin(xx);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,15,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,16,MATLAB插值与曲线拟合,spline插值采用一维线性插值运算x=0:10;y=sin(x);xx=0:0.25:10;yy=interp1(x,y,xx);plot(x,y,o,xx,yy,xx,sin(xx);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,17,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,18,MATLAB插值与曲线拟合,spline插值采用一维三次多项式插值运算x=0:10;y=sin(x);xx=0:0.25:10;yy=interp1(x,y,xx,cubic);plot(x,y,o,xx,yy,xx,sin(xx);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,19,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,20,MATLAB插值与曲线拟合,spline插值向量t=1900:10:1990,p=75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633表示从1900年到1990年人口普查的数字,利用spline插值法预测2000年的人口数,并绘制人口变化趋势图。t=1900:10:1990;p=75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633;y=spline(t,p,2000)plot(t2000,py,o),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,21,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,22,MATLAB插值与曲线拟合,spline插值画一个圆并在数据点y(:,2),y(:,6)处标上字母o。x=pi*0:0.5:2;y=010-1010;1010-101;pp=spline(x,y);yy=ppval(pp,linspace(0,2*pi,101);%计算分算函数的值plot(yy(1,:),yy(2,:),-b,y(1,2:5),y(2,2:5),or),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,23,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,24,MATLAB插值与曲线拟合,曲线拟合曲线拟合(curve-fitting)顾名思义就是用近似的曲线方程来代表一组离散的数据曲线拟合与插值有许多相似之处,二者最大区别再于曲线拟合要找出一个曲线函数式,而插值仅求出与数据点对应的函数值而已曲线拟合运用最小二乘法原理如果拟合的曲线限定为多项式就称为多项式最小二乘法曲线拟合MATLAB提供的曲线拟合有多项式最小二乘拟合、普通最小二乘拟合等,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,25,MATLAB插值与曲线拟合,线性回归假设有一组数据形态为y=y(x),其中x=012345,y=020606877110,用一个最简单的方程式来表示这组数据,一阶线性方程式最简单随意假设其方程式为y=20 xx=012345;y=020606877110;y1=20*xsum_sq=sum(y-y1).2)plot(x,y1,x,y,o),title(Linearestimate),grid,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,26,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,27,MATLAB插值与曲线拟合,线性回归从图中看出,所假设的方程与实际数据的差距很大,从理论上讲,误差平方和最小才是代表数据的最佳方程式,以此标准寻找数据方程式的方法称为最小平方误差法或线性回归MATLAB中的polyfit()函数提供了从一阶到高阶多项式的回归运算,语法为coef=polyfit(x,y,n),期中x、y为输入数据,n为多项式的阶数,coef为输出数组,数值为多项式的系数项,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,28,MATLAB插值与曲线拟合,线性回归假设一组数据x=012345和y=020606877110,期中y是x的函数,使用最小二乘法建立一阶线性回归方程用polyfit函数求出系数x=012345;y=020606877110;coef=polyfit(x,y,1),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,29,MATLAB插值与曲线拟合,线性回归画出方程的直线及x和y的数据点a1=coef(1);a0=coef(2);ybest=a1*x+a0;sum_sq=sum(y-ybest).2)plot(x,ybest,x,y,o);title(Linearregressionestimate),grid通过比较发现,最小平方误差法获得的误差平方和要小于y=20 x的值,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,30,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,31,MATLAB插值与曲线拟合,多项式回归函数polyfit(x,y,n)中当n大于等于2时,称为多项式回归高阶多项式回归有时并不如低阶的更能代表原始数据对上述数据的x和y分别求二、三、四、五阶多项式回归方程,画出其拟合曲线二阶:x=012345;y=020606877110;coef=polyfit(x,y,2);ybest=coef(1)*x.2+coef(2)*x+coef(3);plot(x,ybest,x,y,o),title(Linearregressionestimate),grid,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,32,MATLAB插值与曲线拟合,多项式回归三阶:x=012345;y=020606877110;coef=polyfit(x,y,3);ybest=coef(1)*x.3+coef(2)*x.2+coef(3)*x+coef(4);plot(x,ybest,x,y,o),title(Linearregressionestimate),grid三阶的拟合曲线最为光滑,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,33,MATLAB插值与曲线拟合,多项式回归四阶:x=012345;y=020606877110;coef=polyfit(x,y,4);ybest=coef(1)*x.4+coef(2)*x.3+coef(3)*x.2+coef(4)*x+coef(5);plot(x,ybest,x,y,o),title(Linearregressionestimate),grid,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,34,MATLAB插值与曲线拟合,多项式回归五阶:x=012345;y=020606877110;coef=polyfit(x,y,5);ybest=coef(1)*x.5+coef(2)*x.4+coef(3)*x.3+coef(4)*x.2+coef(5)*x+coef(6);plot(x,ybest,x,y,o),title(Linearregressionestimate),grid五阶以上的多项式回归方程会通过所有的原始数据点,但曲振荡剧烈,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,35,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,36,MATLAB插值与曲线拟合,多次式拟合及函数的计算polyval也可用来做多项式函数计算,由polyfit计算出多项式的系数后,再由polyval计算出多项式的函数值语法polyval(coef,x),期中coef为多项式的各个系数所构成的数组x=0:0.1:1;y=-.4471.9783.286.167.087.347.669.569.489.3011.2;coef=polyfit(x,y,2)xi=0:0.01:1;yi=polyval(coef,xi);plot(x,y,o,xi,yi);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,37,MATLAB插值与曲线拟合,多次式拟合及函数的计算举例:对数据x=012345和y=020606877110做二阶到九阶的多项式回归分析,然后计算多项式的函数值,绘制其曲线x=012345;y=020606877110;newx=0:0.05:5;forn=2:9f(:,n)=polyval(polyfit(x,y,n),newx);plot(newx,f(:,n),x,y,o);holdon;end,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,38,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,39,MATLAB插值与曲线拟合,分段多项式函数函数pp=mkpp(breaks,coefs)是区间breaks上根据多项式的系数coefs构建一个分段多项式ppbreaks是一个长度为L+1的向量,元素是每一个区间的起点与终点,共有L个区间coefs是一个L(k+1)的矩阵函数ppval()可估算分段多项式pp在特殊点xx上的值v=ppval(pp,xx),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,40,MATLAB插值与曲线拟合,分段多项式函数举例在区间-8-4048上分别画出首尾相接的y=-0.5x+1;y=0.5x-1;y=-0.5x+1;y=0.5x-1四条线段breaks=-8-4048;coefs=-0.51;0.5-1;-0.51;0.5-1;pp=mkpp(breaks,coefs)x=-8:0.1:8;y=ppval(pp,x);plot(x,y,-b);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,41,MATLAB插值与曲线拟合,分段多项式函数二次多项式y=-x2/4+x,在区间-8-4048上分别画出y;-y;y;-y的曲线breaks=-8-4048;coefs=-1/410;pp=mkpp(breaks,coefs;-coefs;coefs;-coefs)x=-8:0.1:8;y=ppval(pp,x);plot(x,y,K-);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,42,MATLAB插值与曲线拟合,分段多项式函数在区间-8-4上应用函数pp=mkpp(breaks,coefs)构建二次多项式函数y=-0.25x2+xcoefs=-0.2510;pp=mkpp(-8-4,coefs)x=-8:0.1:-4;y=ppval(pp,x);plot(x,y);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,43,MATLAB插值与曲线拟合,分段多项式函数画出分段函数在连续三个周期内的图像x=00.0750.10.1750.20.2750.3;y=40/30;-401;40/30;-401;40/30;-401;pp=mkpp(x,y);xx=0:0.001:0.3;yy=ppval(pp,xx);plot(xx,yy,b-);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,44,MATLAB插值与曲线拟合,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,45,MATLAB插值与曲线拟合,获得分段多项式的详细资料使用函数breaks,coefs,l,k,d=unmkpp(pp)可以获得分段多项式的详细资料Breaks是断点数,coefs是系数,l是段数,k是项数,d是维数,pp是由于spine或mkpp所创建为分段二项多项式-0.25x4+x和-(-0.25x4+x)创建一个描述y=-0.2510;pp=mkpp(-8-4048,y;-y;y;-y);breaks,coefs,l,k,d=unmkpp(pp),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,46,MATLAB插值与曲线拟合,拉格拉日插值法通过平面上不同两点可以去定一条直线经过这两点,这就是拉格拉日插值问题,对于不在同一条直线的三个点得到哦的插值多项式为抛物线举例:已知cos30=sqrt(3)/2、cos45=sqrt(2)/2、cos60=0.5、cos90=0,利用拉格拉日插值法计算cos(-40)、cos47、cos53、cos79、cos174的值,并给出插值多项式步骤:1.编写拉格拉日插值方法函数文件lag.m2.编写主函数文件lag_main.m3.命令窗口运行lag_main,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,47,MATLAB插值与曲线拟合,拉格拉日插值法x=pi/4,pi/6,pi/3,pi/2;y=cos(pi/4),cos(pi/6),cos(pi/3),cos(pi/2);t=-40*pi/180,47*pi/180,53*pi/180,79*pi/180,174*pi/180;du=-40475379174yt=lag(x,y,t)yreal=cos(-40*pi/180)cos(47*pi/180)cos(53*pi/180)cos(79*pi/180)cos(174*pi/180)dy=yt-yrealyt=lag(x,y)ezplot(yt,-pi/4,pi)holdonezplot(cos(t),-pi/4,pi);,TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,48,MATLAB插值与曲线拟合,牛顿插值法牛顿插值法主要是基于插商的概念进行的,当增加插值基点时原来的计算结果对后面的计算仍然有用举例:已知零阶Bvessel函数f(x)在若干点处的函数值如下,X1.01.31.61.92.2f(x)0.76519770.62008600.45540220.28181860.1103623x=1.01.31.61.92.2;y=0.76519770.62008600.45540220.28181860.1103623;yt=niudun(x,y,1.5),TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITY,49,MATLAB插值与曲线拟合,牛顿插值法5阶勒让德多项式为P5=(63X5-70X3+15X)/8,在-1,1上任意取9个点,如x=-1-0.30.4-0.70-0.40.80.71,不管取点顺序1.根据5阶勒让德多项式,计算这9点的函数值;2.依据这9点作牛顿插值,画出插值多项式图像,与勒让德多项式图像相比较;3.计算x=0.24-0.460.83时的近似结果,与真

温馨提示

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

评论

0/150

提交评论