计算机仿真技术MATLAB数据处理插值拟合课件_第1页
计算机仿真技术MATLAB数据处理插值拟合课件_第2页
计算机仿真技术MATLAB数据处理插值拟合课件_第3页
计算机仿真技术MATLAB数据处理插值拟合课件_第4页
计算机仿真技术MATLAB数据处理插值拟合课件_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MATLAB数据处理插值拟合第八章MATLAB数据处理教学目标介绍MATLAB数据插值和数据拟合学习要求熟练掌握MATLAB数据插值和数据拟合。计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MA1第八章MATLAB数据处理教学目标介绍MATLAB数据插值和数据拟合学习要求熟练掌握MATLAB数据插值和数据拟合。第八章MATLAB数据处理教学目标学习要求2一、数据拟合什么叫数据拟合数据拟合是求一个简单的函数,例如是一个低次多项式,不要求通过已知的这些点,而是要求在整体上“尽量好”的逼近原函数。Matlab常用拟合方法:多项式拟合(polyfit),非线性曲线拟合(lsqcurvefit)一、数据拟合什么叫数据拟合3一、数据拟合多项式曲线拟合:polyfit.函数名称:polyfit格式:p=polyfit(x,y,m),x,y为已知数据点向量,分别表示横,纵坐标,m为拟合多项式的次数,结果返回m次拟合多项式系数,从高次到低次存放在向量p中.y0=polyval(p,x0),可求得多项式在x0处的值y0.一、数据拟合多项式曲线拟合:polyfit.4一、数据拟合例题1:已知观测数据点如表所示,用3次和6次多项式拟合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2一、数据拟合例题1:已知观测数据点如表所示,用3次和6次多项5一、数据拟合Matlab代码:x=0:0.1:1;y=[-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2]plot(x,y,'k.','markersize',25);axis([01.3-216])p3=polyfit(x,y,3);p6=polyfit(x,y,6);t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);holdon;plot(t,s,'r-','linewidth',2);plot(t,s1,'b--','linewidth',2);gridon一、数据拟合Matlab代码:6一、数据拟合例题2:用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度.在一定的时间测量刀具的厚度,得数据如表所示:切削时间t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度y/cm切削时间t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度y/cm一、数据拟合例题2:用切削机床进行金属品加工时,为了适当地7一、数据拟合Matlab代码:t=[0:1:16];y=[30.029.128.428.128.027.727.527.227.026.826.526.326.125.725.324.824.0];plot(t,y,'*');holdona=polyfit(t,y,5);y1=polyval(a,t);plot(t,y1),holdoff;一、数据拟合Matlab代码:8一、数据拟合例题3:一个15.4cm×30.48cm的混凝土柱在加压实验中的应力-应变关系测试点的数据如表所示已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是N/m2;表示应变,求系数1.552.472.933.032.89一、数据拟合例题3:一个15.4cm×30.48cm的混凝土9一、数据拟合求解:1)要使用多项式拟合,因此需要将表达式转换为多项式形式化为k1,k2

的线性函数.于是,令即一、数据拟合求解:化为k1,k2的线性函数.于是,令即10一、数据拟合matlab代码:x=[500*1.0e-61000*1.0e-61500*1.0e-62000*1.0e-62375*1.0e-6];y=[3.103*1.0e+32.465*1.0e+31.953*1.0e+31.517*1.0e+31.219*1.0e+3];z=log(y);a=polyfit(x,z,1);k1=exp(a(2));w=[1.552.472.933.032.89]plot(x,w,'*')y1=exp(a(2))*x.*exp(a(1)*x);plot(x,w,'*',x,y1,'r-')一、数据拟合matlab代码:11已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是N/m2;表示应变.拟合曲线为:令则求得于是一、数据拟合已知应力-应变关系可以用一条指数曲线来描述,即假设式中,12在实际应用中常见的拟合曲线有:直线多项式一般n=2,3,不宜过高.双曲线(一支)指数曲线一、数据拟合在实际应用中常见的拟合曲线有:直线多项式一般n=2,3,132.非线性曲线拟合:lsqcurvefit.功能:x=lsqcurvefit(fun,x0,xdata,ydata)[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据xdata,ydata(对应点的横,纵坐标),按函数文件fun给定的函数,以x0为初值作最小二乘拟合,返回函数fun中的系数向量x和残差的平方和resnorm.一、数据拟合2.非线性曲线拟合:lsqcurvefit.功能:x=14例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.首先编写存储拟合函数的函数文件.functionf=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.^2+x(3)*xdata.^3保存为文件nihehanshu.m一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.15例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.编写下面的程序调用拟合函数.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[1,1,1];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.16编写下面的程序调用拟合函数.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[0,0,0];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)程序运行后显示x=3.00224.03040.9404resnorm=0.0912一、数据拟合编写下面的程序调用拟合函数.xdata=0:0.1:1;程序17例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.说明:最小二乘意义上的最佳拟合函数为f(x)=3ex+4.03x2+0.94x3.此时的残差是:0.0912.一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.18f(x)=3ex+4.03x2+0.94x3.拟合函数为:一、数据拟合f(x)=3ex+4.03x2+0.94x3.拟合19练习:1.已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求用三次多项式进行拟合的曲线方程.2.已知观测数据点如表所示xy1.617.72.7491.313.14.1189.43.6110.82.334.50.644.9409.13652.436.9求a,b,c的值,使得曲线f(x)=aex+bsinx+clnx与已知数据点在最小二乘意义上充分接近.一、数据拟合练习:1.已知观测数据点如表所示xy03.10.13.2720二、数据插值什么叫数据插值用插值的方法对一函数进行近似,要求所得到的插值多项式经过已知插值节点;在n比较大的情况下,插值多项式往往是高次多项式,这也就容易出现振荡现象(龙格现象),即虽然在插值节点上没有误差,但在插值节点之外插值误差变得很大,从“整体”上看,插值逼近效果将变得“很差”常用插值方法:分段线性插值、三次样条曲线插值二、数据插值什么叫数据插值21已知n+1个节点其中互不相同,不妨设求任一插值点处的插值节点可视为由产生,g表达式复杂,甚至无表达式二、数据插值已知n+1个节点其中互不相同,不妨设求任一插值点处的插值221.分段线性插值xjxj-1xj+1x0xn实用插值方法机翼下轮廓线2.三次样条插值细木条:样条二、数据插值1.分段线性插值xjxj-1xj+1x0xn实用23输入:节点x0,y0,插值点x(均为数组,长度自定义);输出:插值y(与x同长度数组).1.分段线性插值:y=interp1(x0,y0,x)y=interp1(x0,y0,x,’linear’)2.三次样条插值:y=interp1(x0,y0,x,’spline’)或y=spline(x0,y0,x)二、数据插值输入:节点x0,y0,插值点x(均为数组,长度自定义24例5对在[-1,1]上,用n=20的等距分点进行分段线性插值,绘制f(x)及插值函数的图形.解在命令窗口输入:x=-1:0.1:1y=1./(1+9*x.^2)xi=-1:0.1:1yi=interp1(x,y,xi)plot(x,y,'r-',xi,yi,'*')二、数据插值第十次课到此例5对在[-25例6对在[-5,5]上,用n=11个等距分点作分段线性插值和三次样条插值,用m=21个插值点作图,比较结果.解在命令窗口输入:n=11,m=21x=-5:10/(m-1):5y=1./(1+x.^2)z=0*xx0=-5:10/(n-1):5y0=1./(1+x0.^2)y1=interp1(x0,y0,x)y2=interp1(x0,y0,x,'spline')[x'y'y1'y2']plot(x,z,'r',x,y,'k:',x,y1,'b',x,y2,'g')gtext('Piece.-linear.'),gtext('Spline'),gtext('y=1/(1+x^2)')二、数据插值例6对在[-5,52601.00001.00001.00000.50000.80000.75000.82051.00000.50000.50000.50001.50000.30770.35000.29732.00000.20000.20000.20002.50000.13790.15000.14013.00000.10000.10000.10003.50000.07550.07940.07454.00000.05880.05880.05884.50000.04710.04860.04845.00000.03850.03850.0385例6对在[-5,5]上,用n=11个等距分点作分段线性插值和三次样条插值,用m=21个插值点作图,比较结果.xyy1y2二、数据插值01.00001.27解在命令窗口输入:例7在一天24h内,从零点开始每间隔2h测得的环境温度为12,9,9,10,18,24,28,27,25,20,18,15,13二、数据插值(单位:)推测在每1s时的温度.并描绘温度曲线.t=0:2:24T=[129910182428272520181513]plot(t,T,'*')ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,'*',ti,T1i,'r-')T2i=interp1(t,T,ti,'spline')plot(t,T,'*',ti,T1i,'r-',ti,T2i,'g-')解在命令窗口输入:例7在一天24h内,从零点开始28例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据.某型号飞机的机翼上缘轮廓线的部分数据如下:x04.749.051938577695114133y05.238.111.9716.1517.116.3414.6312.166.69x152171190y7.033.990二、数据插值例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图29例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据.某型号飞机的机翼上缘轮廓线的部分数据如下:x=[04.749.051938577695114133152171190]y=[05.238.111.9716.1517.116.3414.6312.169.697.033.990]xi=[0:0.001:190]yi=interp1(x,y,xi,'spline')plot(xi,yi)二、数据插值例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图30例9天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:m),并取其常用对数值与日期的一组历史数据如下所示,试推断何时金星与地球的距离(单位:m)的对数值为9.9352.日期18202224262830距离对数9.96189.95449.94689.93919.93129.92329.9150解由于对数值9.9352位于24和26两天所对应的对数值之间,所以对上述数据用三次样条插值加细为步长为1的数据:二、数据插值例9天文学家在1914年8月份的7次观测中,测得地球与31解由于对数值9.9352位于24和26两天所对应的对数值之间,所以对上述数据用三次样条插值加细为步长为1的数据:x=[18:2:30]y=[9.96189.95449.94689.93919.93129.92329.9150]xi=[18:1:30]yi=interp1(x,y,xi,'spline')A=[xi;yi]二、数据插值解由于对数值9.9352位于24和26两天所32练习:1.设在区间[-2,2]上用10等分点作为节点,分别用三种插值方法:二、数据插值(1)计算并输出在该区间的20等分点的函数值.(2)输出这个函数及两个插值函数的图形.(3)对输出的数据和图形进行分析.练习:1.设在区间33练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如表所示:假设需要得到x

坐标每改变0.1时的y

坐标,分别用两种插值方法对机翼断面下缘轮廓线上的部分数据加细,并作出插值函数的图形.xy0031.251.772.092.1112.0121.8131.2141.0151.6二、数据插值练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如34(1)打开曲线拟合工具界面通过cftool命令打开曲线拟合工具界面三、拟合工具箱(1)打开曲线拟合工具界面三、拟合工具箱35Data按钮:可输出、查看和平滑数据;Fitting按钮:可拟合数据、比较拟合曲线和数据集;Exclude按钮:可以从拟合曲线中排除特殊的数据点;Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集;Analysis按钮:可以做内插法、外推法、微分或积分拟合。三、拟合工具箱五个按钮Data按钮:可输出、查看和平滑数据;三、拟合工具箱五个按钮36在输入数据之前,数据变量必须存在于matlab的工作区间。可以通过load命令输入变量。单击曲线拟合工具界面中的Data按钮,打开Data对话框,在对话框中进行设置,可以输入数据。注意:三、拟合工具箱在输入数据之前,数据变量必须存在于注意:三、拟合37包括两个选项卡:DataSets和Smooth.DataSets选项卡:.Importworkspacevectors把向量输入工作区,要注意的是变量必须具有相同的维数,无穷大的值和不定值被忽略。Xdata用于选择观测数据Ydata用于选择X的响应数据Weight用于选择权重,与响应数据相联系的向量,如果没选择,默认值为1.Data对话框:三、拟合工具箱包括两个选项卡:DataSets和Smooth.Da38三、拟合工具箱.Preview对所选向量进行图形化预览.Datasetname设置数据集的名称。工具箱可以随即产生唯一的文件名,但用户可以重命名。.Datasets选项以列表的形式显示所有拟合的数据集。当选择一个数据集时,可以对它做如下操作:

.View查看数据集,以图标形式和列表形式,可以选择方法排除异常值;

.Rename重命名.Delete删除数据组Data对话框:三、拟合工具箱.Preview对所选向量进行图形化预览Da39census有两个变量:cdate和pop。

cdate是一个年向量,包括1790-1990年,pop是对应年份的美国人口。whos-filecensusNameSizeBytesClassAttributescdate21x1168doublepop21x1168doubleloadcensuscftool(cdate,pop)例题,用matlab自带的文件census拟合:三、拟合工具箱census有两个变量:cdate和pop。例题,用40三、拟合工具箱散点图三、拟合工具箱散点图41三、拟合工具箱单击Data按钮三、拟合工具箱单击Data按钮42三、拟合工具箱在Xdata和Ydata两个下拉式列表框中选择变量名,将在Data对话框中显示散点图的预览效果:三、拟合工具箱在Xdata和Ydata两个下拉式列表框中43三、拟合工具箱当选择Datasets列表框中的数据集时,单击View按钮,打开ViewDataSet对话框工作表方式三、拟合工具箱当选择Datasets列表框中的数据集时,单44在曲线拟合工具箱中,数据的预处理主要包括平滑法、排除法和区间排除法等。(1)平滑数据打开拟合工具箱,单击Data按钮,打开Data对话框,选择Smooth选项卡数据预处理:三、拟合工具箱在曲线拟合工具箱中,数据的预处理主要包数据预处理:三、拟合工45三、拟合工具箱三、拟合工具箱46.Originaldataset用于挑选需要拟合的数据集;.Smootheddataset平滑数据的名称;.Method用于选择平滑数据的方法,每一个相应数据用通过特殊的曲线平滑方法所计算的结果来取代。平滑数据的方法包括:(ⅰ)Movingaverage用移动平均值进行替换;(ⅱ)Lowess局部加权散点图平滑数据,采用线性最小二乘法和一阶多项式拟合得到的数据进行替换;Smooth选项卡各选项的功能:三、拟合工具箱.Originaldataset用于挑选需要拟合的数据47三、拟合工具箱(ⅲ)Loess局部加权散点图平滑数据,采用线性最小二乘法和二阶多项式拟合得到的数据进行交换;(ⅳ)Savitzky-Golay采用未加权的线性最小二乘法过滤数据,利用指定阶数的多项式得到的数据进行替换;(ⅴ)Span用于进行平滑计算的数据点的数目;(ⅵ)Degree用于Savitzky-Golay方法拟合多项式的阶数。Smooth各选项卡功能:三、拟合工具箱(ⅲ)Loess局部加权散点图平滑数据,采用线48三、拟合工具箱.Smootheddatasets对于所有平滑数据集进行列表。可以增加平滑数据集,通过单击Createsmootheddataset按钮,可以创建经过平滑的数据集。.View按钮打开查看数据集的GUI,以散点图方式和工作表方式查看数据,可以选择排除异常值的方法。.Rename用于重命名。.Delete可删去数据组。.Savetoworkspace保存数据集。Smooth各选项卡功能:三、拟合工具箱.Smootheddatasets对于所49排除法是对数据中的异常值进行排除。区间排除法是采用一定的区间去排除那些用于系统误差导致偏离正常值的异常值。在曲线拟合工具中单击Exclude按钮,可以打开Exclude对话框排除法和区间排除法:三、拟合工具箱排除法是对数据中的异常值进行排除。排除法和区间排除法:三、拟50三、拟合工具箱三、拟合工具箱51三、拟合工具箱Exclusionrulename指定分离规则的名称Existingexclusionrules列表产生的文件名,当你选择一个文件名时,可以进行如下操作:Copy复制分离规则的文件;Rename重命名;delete删去一个文件;View以图形的形式展示分离规则的文件。Selectdataset挑选需要操作的数据集;Excludegraphically允许你以图形的形式去除异常值,排除个别的点用“×”标记。Excusion选项:三、拟合工具箱Exclusionrulename指定分离52三、拟合工具箱Checktoexcludepoint挑选个别的点进行排除,可以通过在数据表中打勾来选择要排除的数据。ExcludeSections选定区域排除数据:

ExcludeX选择预测数据X要排除的数据范围;

ExcludeY选择响应数据Y要排除的数据范围。Exclusion选项:三、拟合工具箱Checktoexcludepoint53其他的预处理方法不便通过曲线拟合工具箱来完成,主要包括两部分:响应数据的转换和去除无穷大、缺失值和异常值。响应数据的转换一般包括对数转换、指数转换,用这些转换可以使非线性的模型线性化,便于曲线拟合。变量的转换一般在命令行里实现,然后把转换后的数据输入曲线拟合工具箱,进行拟合。其他预处理方法:三、拟合工具箱其他的预处理方法不便通过曲线拟合工具箱其他预处理方法:三、拟54三、拟合工具箱无穷大、不定值在曲线拟合中可以忽略,如果想把他们从数据集中删除,可以用isinf和isnan置换无穷大值和缺失值。其他预处理:三、拟合工具箱无穷大、不定值在曲线拟合中可以忽略,如其他预处55第一步:在命令行键入Cftool打开curvefittingtool对话框;第二步:在curvefittingtool对话框中单击Data按钮打开data对话框指定要分析的(预先存在工作区间)数据;第三步:在curvefittingtool对话框中单击fitting按钮打开fitting对话框,进行设置,实现曲线拟合。曲线的参数拟合:三、拟合工具箱第一步:在命令行键入Cftool打开曲线的参数拟合:三、拟合56三、拟合工具箱三、拟合工具箱57包括两个面板:“FitEditor”面板和“TabeofFits”面板。(1)Fiteditor选择拟合的文件名、数据集,选择排除数据的文件,比较数据拟合的各种方法,包括库函数、自定义的拟合模型和拟合参数的选择。(2)TableofFits同时列出所有的拟合结果。Fitting对话框:三、拟合工具箱包括两个面板:“FitEditor”面板和“TabeFi58Newfit和Copyfit按钮:开始进行曲线拟合是,单击Newfit按钮,它采用默认的线性多项式拟合数据。在原有的拟合形式上,选择不同的曲线拟合方法,可以用Copyfit按钮。Fitname选项为当前拟合曲线的名字。单击Newfit按钮时系统会产生默认的文件名。Dataset选项为当前的数据集。Exclusionrule排除异常值的文件名,在数据预处理前建立的文件名。Fitting对话框:三、拟合工具箱Newfit和Copyfit按钮:开始进行曲线拟合59三、拟合工具箱CenterandscaleXdata可对观测数据进行中心化和离散化处理。Typeoffit拟合的类型,包括参数拟合和非参数拟合两种。具体包括:(1)CustomEquations自定义拟合的线性或非线性方程;(2)Newequation使用CustomEquations按钮前,必须单击Newequation按钮选择合适的方程;Fitting对话框:三、拟合工具箱CenterandscaleXdata60三、拟合工具箱(3)Exponential指数拟合包括两种形式:

y=a*exp(b*x)y=a*exp(b*x)+c*exp(d*x)(4)Fourier傅立叶拟合,正弦和余弦之和(共8个多项式)

Fitting对话框:三、拟合工具箱(3)Exponential指数拟合包括两种形61三、拟合工具箱(5)Gaussian高斯法,包括8个公式:(6)Interpolant内插法,包括线性内插、最近邻内插、三次样条内插和shape-preserving内插;(7)Polynomial多项式,从一次到九次;三、拟合工具箱(5)Gaussian高斯法,包括8个公式:62三、拟合工具箱(8)Rational有理拟合,两个多项式之比,分子与分母都是多项式;(9)Power指数拟合,包括两种形式:

y=a*x^by=a*x^b+c(10)Smoothingspline平滑样条拟合,默认的平滑参数由拟合的数据集来决定,参数是0产生一个分段的线性多项式拟合,参数是1产生一个分段三次多项式拟合;三、拟合工具箱(8)Rational有理拟合,两个多项式之比63三、拟合工具箱(11)SumofSinFunctions正弦函数的和,采用以下8个公式:

a1*sin(b1*x+c1)…a1*sin(b1*x+c1)+…+a8*sin(b8*x+c8)(12)Weibull两个参数的Weibull分布,表达式如下:Y=a*b*x^(b-1)*exp(-a*x^b)三、拟合工具箱(11)SumofSinFunction64三、拟合工具箱Fitoptions包括一些拟合方法,如线性拟合、非线性拟合,以及其他选项;单击Apply按钮:采用上述所选各种方法进行拟合;单击Immediateapply按钮,在选择一个拟合形式后立即输出结果并存储;Results罗列进行拟合的各种参数:(1)SSE-sumofsquaresduetoerror误差平方和,越接近0曲线的拟合效果越好(2)R-square越接近1,曲线的拟合效果越好三、拟合工具箱Fitoptions包括一些拟合方法,如线65三、拟合工具箱(3)DegreeofFreedomAdjustedR-Square调整自由度以后的残差的平方,数值越接近1,曲线的拟合效果越好(4)RootMeanSquareError根的均方误差Tableoffits拟合曲线的列表,可以对每个列表做如下操作:Deletefit删除所选的拟合曲线;Savetoworkspace储存所有的拟合信息;Tableoptions选择与拟合相联系的信息。三、拟合工具箱(3)DegreeofFreedomAd66rand('state',0)%重置生成器到初始状态x=[1:0.1:39:0.1:10]';c=[2.5-0.51.3-0.1];y=c(1)+c(2)*x+c(3)*x.^2+c(4)*x.^3+(rand(size(x))-0.5);cftool(x,y);建立一个M文件,并运行上述文件,打开曲线拟合工具例题用三次和五次多项式拟合:三、拟合工具箱rand('state',0)%重置生成器到初始状态例题用67三、拟合工具箱三、拟合工具箱68三、拟合工具箱点击fitting按钮—newfit—cubicpolynomial--apply三、拟合工具箱点击fitting按钮—newfit—cub69LinearmodelPoly3:f(x)=p1*x^3+p2*x^2+p3*x+p4Coefficients(with95%confidencebounds):p1=-0.09837(-0.1095,-0.08729)p2=1.275(1.113,1.437)p3=-0.4351(-1.092,0.2222)p4=2.56(1.787,3.332)Goodnessoffit:SSE:2.587R-square:0.9993AdjustedR-square:0.9993RMSE:0.3039结果:三、拟合工具箱LinearmodelPoly3:结果:三、拟合工具箱70LinearmodelPoly5:f(x)=p1*x^5+p2*x^4+p3*x^3+p4*x^2+p5*x+p6Coefficients(with95%confidencebounds):p1=0.001389(-0.003589,0.006367)p2=-0.03441(-0.1601,0.09125)p3=0.1934(-0.9131,1.3)p4=0.2733(-3.856,4.402)p5=1.013(-5.785,7.811)p6=1.835(-2.167,5.837)Goodnessoffit:SSE:2.552R-square:0.9993AdjustedR-square:0.9992RMSE:0.3133结果:三、拟合工具箱LinearmodelPoly5:结果:三、拟合工具箱71拟合图形:三、拟合工具箱拟合图形:三、拟合工具箱72练习:hahn1.m是matlab自带,描述铜的热膨胀与热力学温度的相关性,包括两个向量temp与thermex。loadhahn1cftool(temp,thermex)

三、拟合工具箱练习:hahn1.m是matlab自带,描述铜的热膨胀与热力73有时我们对拟合参数的提取或解释不感兴趣,只想得到一个平滑的通过各数据点的曲线,这种拟合曲线的形式称之为非参数拟合。非参数拟合的方法包括(1)插值法Interpolants(2)平滑样条内插法Smoothingspline

非参数插值:三、拟合工具箱有时我们对拟合参数的提取或解释不感非参数插值:三74在已知数据点之间估计数值的过程,包括Linear线性内插,在每一队数据之间用不同的线性多项式拟合;Nearestneighbor最近邻内插,内插点在最相邻的数据点之间;Cubicspline三次样条内插,在每一队数据之间用不同的三次多项式拟合;Shape-preserving分段三次艾尔米特内插.内插法:三、拟合工具箱在已知数据点之间估计数值的过程,包括内插法:三、拟合工具箱75是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,平滑的方法在数据的预处理中已经介绍。平滑样条内插法:三、拟合工具箱是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,76loadcarbon12alphacftool(counts,angle)fit1Fitting—typeoffit—

Interpolant--Nearestneighborfit2Fitting—typeoffit—

Interpolant--Shape-preserving例:用内插法拟合carbon12alpha.mat数据:三、拟合工具箱loadcarbon12alpha例:用内插法拟合ca77三、拟合工具箱三、拟合工具箱78三、拟合工具箱三、拟合工具箱79rand('state',0);x=(4*pi)*[01rand(1,25)];y=sin(x)+.2*(rand(size(x))-.5);cftool(x,y)例题:用三次样条内插和集中平滑样条内插法拟合:三、拟合工具箱rand('state',0);例题:用三次样条内插和集80三、拟合工具箱三、拟合工具箱81三、拟合工具箱三、拟合工具箱82三、拟合工具箱三、拟合工具箱83三、拟合工具箱三、拟合工具箱84Matlab还提供了一个方便简捷的拟合界面。它具有拟合快速,操作简便的有时,但拟合方法较少。使用步骤:(1)导入数据,并画图;(2)在tool菜单中单击BasicFitting对话框基本拟合界面:三、拟合工具箱Matlab还提供了一个方便简捷的拟合界面。它具有拟合快速,85loadcensusplot(cdate,pop,'ro')例题:用基本拟合界面拟合census.mat:三、拟合工具箱loadcensus例题:用基本拟合界面拟合census.86三、拟合工具箱三、拟合工具箱87三、拟合工具箱三、拟合工具箱88三、拟合工具箱三、拟合工具箱89 谢谢大家! 谢谢大家!90计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MATLAB数据处理插值拟合第八章MATLAB数据处理教学目标介绍MATLAB数据插值和数据拟合学习要求熟练掌握MATLAB数据插值和数据拟合。计算机仿真技术MATLAB数据处理插值拟合计算机仿真技术MA91第八章MATLAB数据处理教学目标介绍MATLAB数据插值和数据拟合学习要求熟练掌握MATLAB数据插值和数据拟合。第八章MATLAB数据处理教学目标学习要求92一、数据拟合什么叫数据拟合数据拟合是求一个简单的函数,例如是一个低次多项式,不要求通过已知的这些点,而是要求在整体上“尽量好”的逼近原函数。Matlab常用拟合方法:多项式拟合(polyfit),非线性曲线拟合(lsqcurvefit)一、数据拟合什么叫数据拟合93一、数据拟合多项式曲线拟合:polyfit.函数名称:polyfit格式:p=polyfit(x,y,m),x,y为已知数据点向量,分别表示横,纵坐标,m为拟合多项式的次数,结果返回m次拟合多项式系数,从高次到低次存放在向量p中.y0=polyval(p,x0),可求得多项式在x0处的值y0.一、数据拟合多项式曲线拟合:polyfit.94一、数据拟合例题1:已知观测数据点如表所示,用3次和6次多项式拟合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2一、数据拟合例题1:已知观测数据点如表所示,用3次和6次多项95一、数据拟合Matlab代码:x=0:0.1:1;y=[-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2]plot(x,y,'k.','markersize',25);axis([01.3-216])p3=polyfit(x,y,3);p6=polyfit(x,y,6);t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);holdon;plot(t,s,'r-','linewidth',2);plot(t,s1,'b--','linewidth',2);gridon一、数据拟合Matlab代码:96一、数据拟合例题2:用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度.在一定的时间测量刀具的厚度,得数据如表所示:切削时间t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度y/cm切削时间t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度y/cm一、数据拟合例题2:用切削机床进行金属品加工时,为了适当地97一、数据拟合Matlab代码:t=[0:1:16];y=[30.029.128.428.128.027.727.527.227.026.826.526.326.125.725.324.824.0];plot(t,y,'*');holdona=polyfit(t,y,5);y1=polyval(a,t);plot(t,y1),holdoff;一、数据拟合Matlab代码:98一、数据拟合例题3:一个15.4cm×30.48cm的混凝土柱在加压实验中的应力-应变关系测试点的数据如表所示已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是N/m2;表示应变,求系数1.552.472.933.032.89一、数据拟合例题3:一个15.4cm×30.48cm的混凝土99一、数据拟合求解:1)要使用多项式拟合,因此需要将表达式转换为多项式形式化为k1,k2

的线性函数.于是,令即一、数据拟合求解:化为k1,k2的线性函数.于是,令即100一、数据拟合matlab代码:x=[500*1.0e-61000*1.0e-61500*1.0e-62000*1.0e-62375*1.0e-6];y=[3.103*1.0e+32.465*1.0e+31.953*1.0e+31.517*1.0e+31.219*1.0e+3];z=log(y);a=polyfit(x,z,1);k1=exp(a(2));w=[1.552.472.933.032.89]plot(x,w,'*')y1=exp(a(2))*x.*exp(a(1)*x);plot(x,w,'*',x,y1,'r-')一、数据拟合matlab代码:101已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是N/m2;表示应变.拟合曲线为:令则求得于是一、数据拟合已知应力-应变关系可以用一条指数曲线来描述,即假设式中,102在实际应用中常见的拟合曲线有:直线多项式一般n=2,3,不宜过高.双曲线(一支)指数曲线一、数据拟合在实际应用中常见的拟合曲线有:直线多项式一般n=2,3,1032.非线性曲线拟合:lsqcurvefit.功能:x=lsqcurvefit(fun,x0,xdata,ydata)[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据xdata,ydata(对应点的横,纵坐标),按函数文件fun给定的函数,以x0为初值作最小二乘拟合,返回函数fun中的系数向量x和残差的平方和resnorm.一、数据拟合2.非线性曲线拟合:lsqcurvefit.功能:x=104例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.首先编写存储拟合函数的函数文件.functionf=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.^2+x(3)*xdata.^3保存为文件nihehanshu.m一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.105例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.编写下面的程序调用拟合函数.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[1,1,1];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.106编写下面的程序调用拟合函数.xdata=0:0.1:1;ydata=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17];x0=[0,0,0];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)程序运行后显示x=3.00224.03040.9404resnorm=0.0912一、数据拟合编写下面的程序调用拟合函数.xdata=0:0.1:1;程序107例4已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数a,b,c的值,使得曲线f(x)=aex+bx2+cx3

与已知数据点在最小二乘意义上充分接近.说明:最小二乘意义上的最佳拟合函数为f(x)=3ex+4.03x2+0.94x3.此时的残差是:0.0912.一、数据拟合例4已知观测数据点如表所示xy03.10.13.270.108f(x)=3ex+4.03x2+0.94x3.拟合函数为:一、数据拟合f(x)=3ex+4.03x2+0.94x3.拟合109练习:1.已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求用三次多项式进行拟合的曲线方程.2.已知观测数据点如表所示xy1.617.72.7491.313.14.1189.43.6110.82.334.50.644.9409.13652.436.9求a,b,c的值,使得曲线f(x)=aex+bsinx+clnx与已知数据点在最小二乘意义上充分接近.一、数据拟合练习:1.已知观测数据点如表所示xy03.10.13.27110二、数据插值什么叫数据插值用插值的方法对一函数进行近似,要求所得到的插值多项式经过已知插值节点;在n比较大的情况下,插值多项式往往是高次多项式,这也就容易出现振荡现象(龙格现象),即虽然在插值节点上没有误差,但在插值节点之外插值误差变得很大,从“整体”上看,插值逼近效果将变得“很差”常用插值方法:分段线性插值、三次样条曲线插值二、数据插值什么叫数据插值111已知n+1个节点其中互不相同,不妨设求任一插值点处的插值节点可视为由产生,g表达式复杂,甚至无表达式二、数据插值已知n+1个节点其中互不相同,不妨设求任一插值点处的插值1121.分段线性插值xjxj-1xj+1x0xn实用插值方法机翼下轮廓线2.三次样条插值细木条:样条二、数据插值1.分段线性插值xjxj-1xj+1x0xn实用113输入:节点x0,y0,插值点x(均为数组,长度自定义);输出:插值y(与x同长度数组).1.分段线性插值:y=interp1(x0,y0,x)y=interp1(x0,y0,x,’linear’)2.三次样条插值:y=interp1(x0,y0,x,’spline’)或y=spline(x0,y0,x)二、数据插值输入:节点x0,y0,插值点x(均为数组,长度自定义114例5对在[-1,1]上,用n=20的等距分点进行分段线性插值,绘制f(x)及插值函数的图形.解在命令窗口输入:x=-1:0.1:1y=1./(1+9*x.^2)xi=-1:0.1:1yi=interp1(x,y,xi)plot(x,y,'r-',xi,yi,'*')二、数据插值第十次课到此例5对在[-115例6对在[-5,5]上,用n=11个等距分点作分段线性插值和三次样条插值,用m=21个插值点作图,比较结果.解在命令窗口输入:n=11,m=21x=-5:10/(m-1):5y=1./(1+x.^2)z=0*xx0=-5:10/(n-1):5y0=1./(1+x0.^2)y1=interp1(x0,y0,x)y2=interp1(x0,y0,x,'spline')[x'y'y1'y2']plot(x,z,'r',x,y,'k:',x,y1,'b',x,y2,'g')gtext('Piece.-linear.'),gtext('Spline'),gtext('y=1/(1+x^2)')二、数据插值例6对在[-5,511601.00001.00001.00000.50000.80000.75000.82051.00000.50000.50000.50001.50000.30770.35000.29732.00000.20000.20000.20002.50000.13790.15000.14013.00000.10000.10000.10003.50000.07550.07940.07454.00000.05880.05880.05884.50000.04710.04860.04845.00000.03850.03850.0385例6对在[-5,5]上,用n=11个等距分点作分段线性插值和三次样条插值,用m=21个插值点作图,比较结果.xyy1y2二、数据插值01.00001.117解在命令窗口输入:例7在一天24h内,从零点开始每间隔2h测得的环境温度为12,9,9,10,18,24,28,27,25,20,18,15,13二、数据插值(单位:)推测在每1s时的温度.并描绘温度曲线.t=0:2:24T=[129910182428272520181513]plot(t,T,'*')ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,'*',ti,T1i,'r-')T2i=interp1(t,T,ti,'spline')plot(t,T,'*',ti,T1i,'r-',ti,T2i,'g-')解在命令窗口输入:例7在一天24h内,从零点开始118例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据.某型号飞机的机翼上缘轮廓线的部分数据如下:x04.749.051938577695114133y05.238.111.9716.1517.116.3414.6312.166.69x152171190y7.033.990二、数据插值例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图119例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据.某型号飞机的机翼上缘轮廓线的部分数据如下:x=[04.749.051938577695114133152171190]y=[05.238.111.9716.1517.116.3414.6312.169.697.033.990]xi=[0:0.001:190]yi=interp1(x,y,xi,'spline')plot(xi,yi)二、数据插值例8在飞机的机翼加工时,由于机翼尺寸很大,通常在图120例9天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:m),并取其常用对数值与日期的一组历史数据如下所示,试推断何时金星与地球的距离(单位:m)的对数值为9.9352.日期18202224262830距离对数9.96189.95449.94689.93919.93129.92329.9150解由于对数值9.9352位于24和26两天所对应的对数值之间,所以对上述数据用三次样条插值加细为步长为1的数据:二、数据插值例9天文学家在1914年8月份的7次观测中,测得地球与121解由于对数值9.9352位于24和26两天所对应的对数值之间,所以对上述数据用三次样条插值加细为步长为1的数据:x=[18:2:30]y=[9.96189.95449.94689.93919.93129.92329.9150]xi=[18:1:30]yi=interp1(x,y,xi,'spline')A=[xi;yi]二、数据插值解由于对数值9.9352位于24和26两天所122练习:1.设在区间[-2,2]上用10等分点作为节点,分别用三种插值方法:二、数据插值(1)计算并输出在该区间的20等分点的函数值.(2)输出这个函数及两个插值函数的图形.(3)对输出的数据和图形进行分析.练习:1.设在区间123练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如表所示:假设需要得到x

坐标每改变0.1时的y

坐标,分别用两种插值方法对机翼断面下缘轮廓线上的部分数据加细,并作出插值函数的图形.xy0031.251.772.092.1112.0121.8131.2141.0151.6二、数据插值练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如124(1)打开曲线拟合工具界面通过cftool命令打开曲线拟合工具界面三、拟合工具箱(1)打开曲线拟合工具界面三、拟合工具箱125Data按钮:可输出、查看和平滑数据;Fitting按钮:可拟合数据、比较拟合曲线和数据集;Exclude按钮:可以从拟合曲线中排除特殊的数据点;Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集;Analysis按钮:可以做内插法、外推法、微分或积分拟合。三、拟合工具箱五个按钮Data按钮:可输出、查看和平滑数据;三、拟合工具箱五个按钮126在输入数据之前,数据变量必须存在于matlab的工作区间。可以通过load命令输入变量。单击曲线拟合工具界面中的Data按钮,打开Data对话框,在对话框中进行设置,可以输入数据。注意:三、拟合工具箱在输入数据之前,数据变量必须存在于注意:三、拟合127包括两个选项卡:DataSets和Smooth.DataSets选项卡:.Importworkspacevectors把向量输入工作区,要注意的是变量必须具有相同的维数,无穷大的值和不定值被忽略。Xdata用于选择观测数据Ydata用于选择X的响应数据Weight用于选择权重,与响应数据相联系的向量,如果没选择,默认值为1.Data对话框:三、拟合工具箱包括两个选项卡:DataSets和Smooth.Da128三、拟合工具箱.Preview对所选向量进行图形化预览.Datasetname设置数据集的名称。工具箱可以随即产生唯一的文件名,但用户可以重命名。.Datasets选项以列表的形式显示所有拟合的数据集。当选择一个数据集时,可以对它做如下操作:

.View查看数据集,以图标形式和列表形式,可以选择方法排除异常值;

.Rename重命名.Delete删除数据组Data对话框:三、拟合工具箱.Preview对所选向量进行图形化预览Da129census有两个变量:cdate和pop。

cdate是一个年向量,包括1790-1990年,pop是对应年份的美国人口。whos-filecensusNameSizeBytesClassAttributescdate21x1168doublepop21x1168doubleloadcensuscftool(cdate,pop)例题,用matlab自带的文件census拟合:三、拟合工具箱census有两个变量:cdate和pop。例题,用130三、拟合工具箱散点图三、拟合工

温馨提示

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

评论

0/150

提交评论