MATLAB的差值与曲线拟合公开课一等奖省优质课大赛获奖课件_第1页
MATLAB的差值与曲线拟合公开课一等奖省优质课大赛获奖课件_第2页
MATLAB的差值与曲线拟合公开课一等奖省优质课大赛获奖课件_第3页
MATLAB的差值与曲线拟合公开课一等奖省优质课大赛获奖课件_第4页
MATLAB的差值与曲线拟合公开课一等奖省优质课大赛获奖课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB差值与曲线拟合《MATLAB数据处理与应用》-年选修课第八讲王文健wwj527@163.com1主要内容插值运算曲线拟合分段函数拉格拉日插值牛顿插值Hermite插值2TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合

介绍把试验数据绘制成图是点状分布,将这些点练成曲线,然后转化为有意义数学函数,才能对数据做对比和分析上述过程包括插值(interpolation)和曲线拟合(curve-fitting)插值过程中认为数据是准确,求取描述点之间数据曲线拟合中,假定已知曲线规律,做曲线最正确迫近,不需要经过全部数据点3TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合插值计算假设试验得到一组数据形态为:f(xk);其中k=1,2,…,n;且x1=a<xn=c假如一些点{xi}不属于上述{xi},不过a=<xi<=c,要预计这些点函数值f(xi)就需要做插值运算依据原始数据所描述函数复杂程度,存在有:一维插值二维插值Spline插值4TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合一维插值一维插值能够是线性,也能够是三次多项式或spline插值一维线性插值是假设两个数据中改变为线性关系,所以可由已知点坐标(f(a),a)和(f(c),c)计算b点函数值f(b)一维线性插值是最简单插值,适用范围很小可用较为复杂三次多项式或spline来近似找到原函数f(x)5TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合一维插值MATLAB一维插值函数为interp1(a,c,b)和interp1(a,c,b,method)其中a,c为已知数据,而b为要插值数据点,method为预先设定插值方法,分别为线性(linear)、三次多项式(cubic)和spline假如数据改变较大,以spline插值所形成曲线最为平滑,效果最好三次多项式所得曲线平滑度介于linear和spline之间6TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合一维插值—举例假设汽车引擎在额定转速下温度与时间测量值关系以下0—0;1—20;2—60;3—68;4—77;5—110;用一维插值法预计时间为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')7TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合一维插值—举例画出插值后时间与温度改变曲线图。t=[0122.6344.95];y1=[0206064.86877106.7110];y2=[0206065.26877105.6110];y3=[0206067.36877105.2110];plot(t,y1,t,y2,t,y3)8TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合9TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合二维插值假设试验所得到一组数据形态为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三种10TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合二维插值—举例假设汽车引擎转速、温度与时间测量值关系以下表,预计时间为2.6s和速度为2500r时温度。T/℃SpeedTime/sr3000r4000r0000120110176260180220368240349477310450511040550311TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合二维插值—举例应用函数interp2函数分别用linear、cubic、spline来预计时间2.6s和转速2500r温度值。t=[12345];speed=[30004000];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')12TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合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])13TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合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));14TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合15TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合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));16TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合17TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合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));18TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合19TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合spline插值向量t=1900:10:1990,p=[75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633]表示从19到1990年人口普查数字,利用spline插值法预测人口数,并绘制人口改变趋势图。t=1900:10:1990;p=[75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633];y=spline(t,p,)plot([t],[py],'o')20TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合21TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合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')22TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合23TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合曲线拟合曲线拟合(curve-fitting)顾名思义就是用近似曲线方程来代表一组离散数据曲线拟合与插值有许多相同之处,二者最大区分再于曲线拟合要找出一个曲线函数式,而插值仅求出与数据点对应函数值而已曲线拟合利用最小二乘法原理假如拟合曲线限定为多项式就称为多项式最小二乘法曲线拟合MATLAB提供曲线拟合有多项式最小二乘拟合、普通最小二乘拟合等24TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合线性回归假设有一组数据形态为y=y(x),其中x={012345},y={020606877110},用一个最简单方程式来表示这组数据,一阶线性方程式最简单随意假设其方程式为y=20xx=[012345];y=[020606877110];y1=20*xsum_sq=sum((y-y1).^2)plot(x,y1,x,y,'o'),title('Linearestimate'),grid25TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合26TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合线性回归从图中看出,所假设方程与实际数据差距很大,从理论上讲,误差平方和最小才是代表数据最正确方程式,以此标准寻找数据方程式方法称为最小平方误差法或线性回归MATLAB中polyfit()函数提供了从一阶到高阶多项式回归运算,语法为coef=polyfit(x,y,n),期中x、y为输入数据,n为多项式阶数,coef为输出数组,数值为多项式系数项27TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合线性回归假设一组数据x=[012345]和y=[020606877110],期中y是x函数,使用最小二乘法建立一阶线性回归方程用polyfit函数求出系数x=[012345];y=[020606877110];coef=polyfit(x,y,1)28TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合线性回归画出方程直线及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=20x值29TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合30TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合多项式回归函数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'),grid31TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合多项式回归三阶: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三阶拟合曲线最为光滑32TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合多项式回归四阶: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'),grid33TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合多项式回归五阶: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五阶以上多项式回归方程会经过全部原始数据点,但曲振荡猛烈34TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合35TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合屡次式拟合及函数计算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);36TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合屡次式拟合及函数计算举例:对数据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;end37TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合38TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合分段多项式函数函数pp=mkpp(breaks,coefs)是区间breaks上依据多项式系数coefs构建一个分段多项式ppbreaks是一个长度为L+1向量,元素是每一个区间起点与终点,共有L个区间coefs是一个L×(k+1)矩阵函数ppval()可估算分段多项式pp在特殊点xx上值v=ppval(pp,xx)39TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合分段多项式函数举例在区间[-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');40TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合分段多项式函数二次多项式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-');41TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合分段多项式函数在区间[-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);42TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合分段多项式函数画出分段函数在连续三个周期内图像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-');43TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合44TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合取得分段多项式详细资料使用函数[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)45TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合拉格拉日插值法经过平面上不一样两点能够去定一条直线经过这两点,这就是拉格拉日插值问题,对于不在同一条直线三个点得到哦插值多项式为抛物线举例:已知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_main46TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合拉格拉日插值法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=[-40475379174]yt=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]);47TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合牛顿插值法牛顿插值法主要是基于插商概念进行,当增加插值基点时原来计算结果对后面计算依然有用举例:已知零阶Bvessel函数f(x)在若干点处函数值以下,X1.02.2f(x)0.76519770.6600.45540220.28181860.1103623x=[1.02.2];y=[0.76519770.6600.45540220.28181860.1103623];yt=niudun(x,y,1.5)48TribologyResearchInstituteSOUTHWESTJIAOTONGUNIVERSITYMATLAB插值与曲线拟合牛顿插值法5阶勒让德多项式为P5=(63X5-70X3+15X)/8,在[-1,1]上任意取9个点,如x=[-1-0.30.4-0.70-1],不论取点次序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

提交评论