1、第八章 MATLAB数据处理q教学目标教学目标u介绍介绍MATLABMATLAB数据插值和数据拟合数据插值和数据拟合q学习要求学习要求u熟练掌握熟练掌握MATLABMATLAB数据插值和数据拟合。数据插值和数据拟合。一、数据拟合q什么叫数据拟合什么叫数据拟合u数据拟合是求一个简单的函数数据拟合是求一个简单的函数,例如是一个低次多项式例如是一个低次多项式,不要求通过已知的这些点不要求通过已知的这些点,而是要求在整体而是要求在整体上上“尽量好尽量好”的逼近原函数。的逼近原函数。uMatlabMatlab常用拟合方法:多项式拟合(常用拟合方法:多项式拟合(polyfitpolyfit),非线性曲线拟
2、合非线性曲线拟合(lsqcurvefit)(lsqcurvefit)一、数据拟合q多项式曲线拟合多项式曲线拟合:polyfit.:polyfit.u函数名称:函数名称:polyfitpolyfitu格式:格式:p=polyfit(x,y,m)p=polyfit(x,y,m),x,y x,y为已知数据点向量为已知数据点向量,分别表示横分别表示横,纵坐标纵坐标,m,m为拟合多项式的次为拟合多项式的次数数,结果返回结果返回m m次拟合多项式系数次拟合多项式系数,从高次到低次存放在向量从高次到低次存放在向量p p中中.uy0=polyval(p,x0)y0=polyval(p,x0),可求得多项式在,
3、可求得多项式在x0 x0处的值处的值y0.y0.一、数据拟合q例题例题1 1:已知观测数据点如表所示,用:已知观测数据点如表所示,用3 3次和次和6 6次多项式拟合次多项式拟合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2一、数据拟合MatlabMatlab代码:代码: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.2plot(x,y,k.,markersize,25);axis(0 1.3-2 16)p
4、3=polyfit(x,y,3);p6=polyfit(x,y,6);t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);hold on;plot(t,s,r-,linewidth,2);plot(t,s1,b-,linewidth,2);grid on一、数据拟合q例题例题2 2:用切削机床进行金属品加工时:用切削机床进行金属品加工时,为了适当地调整机床为了适当地调整机床,需要测定刀具的磨损速度需要测定刀具的磨损速度.在一定的在一定的时间测量刀具的厚度时间测量刀具的厚度,得数据如表所示得数据如表所示:切削时间切削时间 t/h030.0129.1228.4
5、328.1428.0527.7627.5727.2827.0刀具厚度刀具厚度 y/cm切削时间切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度刀具厚度 y/cm一、数据拟合MatlabMatlab代码:代码:t=0:1:16;y=30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8 24.0;plot(t,y,*);hold ona=polyfit(t,y,5);y1=polyval(a,t);plot(t,y1),ho
6、ld off;一、数据拟合q例题例题3 3:一个:一个15.4cm15.4cm30.48cm30.48cm的混凝土柱在加压实验中的应力的混凝土柱在加压实验中的应力-应变关系测试点的数据如表所示应变关系测试点的数据如表所示 已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设 式中式中,表示应力表示应力,单位是单位是 N/m2;表示应变表示应变,求系数求系数1.55 2/N/m 2/N/m 6500 10 33.103 10 2.4761000 10 32.465 10 2.9361500 10 31.953 10 3.0362000 10 31.51
7、7 10 2.8962375 10 31.219 10 21 kke一、数据拟合求解:求解:1)要使用多项式拟合,因此需要将表达式转换为多项式形式)要使用多项式拟合,因此需要将表达式转换为多项式形式化为化为 k1,k2 的线性函数的线性函数.于是于是,12lnln kk令令0211ln,ln zakak即即01 zaa一、数据拟合matlabmatlab代码:代码:x=500*1.0e-6 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6;y=3.103*1.0e+3 2.465*1.0e+3 1.953*1.0e+3 1.517*1.0e+3 1
8、.219*1.0e+3;z=log(y);a=polyfit(x,z,1);k1=exp(a(2);w=1.55 2.47 2.93 3.03 2.89plot(x,w,*)y1=exp(a(2)*x.*exp(a(1)*x);plot(x,w,*,x,y1,r-)已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设21 kke式中式中,表示应力表示应力,单位是单位是 N/m2;表示应变表示应变.拟合曲线为拟合曲线为:3-494.52094.0275 10 e0211ln,ln,zakak01 zaa0211-494.5209,ln8.3009,ak
9、ak3124.0275 10,494.5209kk令令则则求得求得于是于是一、数据拟合在实际应用中常见的拟合曲线有在实际应用中常见的拟合曲线有:01ya xa直线直线101 nnnya xa xa多项式多项式一般一般 n=2,3,不宜过高不宜过高.01ayax双曲线双曲线(一支一支)bxyae指数曲线指数曲线一、数据拟合2.非线性曲线拟合非线性曲线拟合:lsqcurvefit.功能功能:x=lsqcurvefit(fun,x0,xdata,ydata)x,resnorm=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据根据给定的数据 xdata,ydata(对应点的
10、横对应点的横,纵坐标纵坐标),按函数文件按函数文件 fun 给定的函数给定的函数,以以x0为初值作最小二乘拟合为初值作最小二乘拟合,返回函数返回函数 fun中的系数向量中的系数向量x和残差的平方和和残差的平方和resnorm.一、数据拟合例例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 与已知数据点在最小二乘意义上充分接近与已知数据点在最小二乘意义上充分接近
11、.首先编写存储拟合函数的函数文件首先编写存储拟合函数的函数文件.function f=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.2+x(3)*xdata.3保存为文件保存为文件 nihehanshu.m一、数据拟合例例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 与已知数据点在最小二乘意义上充分接近与已知
12、数据点在最小二乘意义上充分接近.编写下面的程序调用拟合函数编写下面的程序调用拟合函数.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)一、数据拟合编写下面的程序调用拟合函数编写下面的程序调用拟合函数.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=lsqc
13、urvefit(nihehanshu,x0,xdata,ydata)程序运行后显示程序运行后显示x=3.0022 4.0304 0.9404resnorm=0.0912一、数据拟合例例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 与已知数据点在最小二乘意义上充分接近与已知数据点在最小二乘意义上充分接近.说明说明:最小二乘意义上的最佳拟合函数为最小二乘意义上的
14、最佳拟合函数为f(x)=3ex+4.03x2+0.94 x3.此时的残差是此时的残差是:0.0912.一、数据拟合f(x)=3ex+4.03x2+0.94 x3.拟合函数为拟合函数为:一、数据拟合练习练习: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.5
15、0.644.9409.13652.436.9求求a,b,c的值的值,使得曲线使得曲线 f(x)=aex+bsin x+c lnx 与已知数据点在最小二乘意义上充分接近与已知数据点在最小二乘意义上充分接近.一、数据拟合二、数据插值q什么叫数据插值什么叫数据插值u用插值的方法对一函数进行近似用插值的方法对一函数进行近似,要求所得到的插值多项式经过已知插值节点要求所得到的插值多项式经过已知插值节点;u在在n n比较大的情况下比较大的情况下,插值多项式往往是高次多项式插值多项式往往是高次多项式,这也就容易出现振荡现象(龙格现象),即虽这也就容易出现振荡现象(龙格现象),即虽然在插值节点上没有误差然在插
16、值节点上没有误差,但在插值节点之外插值误差变得很大但在插值节点之外插值误差变得很大,从从“整体整体”上看上看,插值逼近效果将插值逼近效果将变得变得“很差很差”u常用插值方法:分段线性插值、三次样条曲线插值常用插值方法:分段线性插值、三次样条曲线插值已知已知 n+1+1个节点个节点,1,0(),(njyxjj其中其中jx互不相同互不相同,不妨设不妨设01),na xxxb求任一插值点求任一插值点)(*jxx 处的插值处的插值.*y节点可视为由节点可视为由)(xgy 产生产生,g 表达式复杂表达式复杂,甚至无表达式甚至无表达式0 x1xnx0y1yu*x*y(,)(0,1,)jjxyjn二、数据插
17、值1.1.分段线性插值分段线性插值xjxj-1xj+1x0 xn实用插值方法实用插值方法机翼下轮廓线机翼下轮廓线2.三次样条插值三次样条插值细木条细木条:样条样条二、数据插值输入输入:节点节点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)二、数据插值例例 5 对对 在在-1,1上上,用用
18、n=20的等距分点进行分段线性插值的等距分点进行分段线性插值,绘制绘制 f(x)及插值函数的图形及插值函数的图形.2119 fxx解解 在命令窗口输入在命令窗口输入: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,*)二、数据插值第十次课到此例例 6 对对 在在-5,5上上,用用n=11个等距分点作分段线性插值和三次样条插值个等距分点作分段线性插值和三次样条插值,用用m=21个插值点个插值点作图作图,比较结果比较结果.211 yx解解 在命令窗口输入在命令窗口输入:n=11,m=21x=-5:10/(
19、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 y2plot(x,z,r,x,y,k:,x,y1,b,x,y2,g)gtext(Piece.-linear.),gtext(Spline),gtext(y=1/(1+x2)二、数据插值 0 1.0000 1.0000 1.0000 0.5000 0.8000 0.7500 0.8205 1.0000 0.5000 0.5000 0.5000 1.5000 0.3077 0.3500 0.
20、2973 2.0000 0.2000 0.2000 0.2000 2.5000 0.1379 0.1500 0.1401 3.0000 0.1000 0.1000 0.1000 3.5000 0.0755 0.0794 0.0745 4.0000 0.0588 0.0588 0.0588 4.5000 0.0471 0.0486 0.0484 5.0000 0.0385 0.0385 0.0385例例 6 对对 在在-5,5上上,用用n=11个等距分点作分段线性插值和三次样条插值个等距分点作分段线性插值和三次样条插值,用用m=21个插值点个插值点作图作图,比较结果比较结果.211 yxxyy1
21、y2二、数据插值解解 在命令窗口输入在命令窗口输入:例例 7 在一天在一天24h内内,从零点开始每间隔从零点开始每间隔2h测得的环境温度为测得的环境温度为12,9,9,10,18,24,28,27,25,20,18,15,13二、数据插值 C(单位单位:)推测在每推测在每1s时的温度时的温度.并描绘温度曲线并描绘温度曲线.t=0:2:24T=12 9 9 10 18 24 28 27 25 20 18 15 13plot(t,T,*)ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,*,ti,T1i,r-)T2i=interp1(t,T,ti,spline)p
22、lot(t,T,*,ti,T1i,r-,ti,T2i,g-)例例 8 在飞机的机翼加工时在飞机的机翼加工时,由于机翼尺寸很大由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据通常在图纸上只能标出部分关键点的数据.某型号飞某型号飞机的机翼上缘轮廓线的部分数据如下机的机翼上缘轮廓线的部分数据如下:x 0 4.74 9.05 19 38 57 76 95 114 133y 0 5.23 8.1 11.97 16.15 17.1 16.34 14.63 12.16 6.69x 152 171 190y 7.03 3.99 0二、数据插值例例 8 在飞机的机翼加工时在飞机的机翼加工时,由于机翼尺寸很
23、大由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据通常在图纸上只能标出部分关键点的数据.某型号飞某型号飞机的机翼上缘轮廓线的部分数据如下机的机翼上缘轮廓线的部分数据如下:x=0 4.74 9.05 19 38 57 76 95 114 133 152 171 190y=0 5.23 8.1 11.97 16.15 17.1 16.34 14.63 12.16 9.69 7.03 3.99 0 xi=0:0.001:190yi=interp1(x,y,xi,spline)plot(xi,yi)二、数据插值例例9 天文学家在天文学家在1914年年8月份的月份的7次观测中次观测中,测得地球与金
24、星之间距离测得地球与金星之间距离(单位单位:m),并取其常用对数值并取其常用对数值与日期的一组历史数据如下所示与日期的一组历史数据如下所示,试推断何时金星与地球的距离试推断何时金星与地球的距离(单位单位:m)的对数值为的对数值为 9.9352.日期日期18 20 22 24 26 28 30距离对数距离对数9.9618 9.9544 9.9468 9.9391 9.9312 9.9232 9.9150解解 由于对数值由于对数值 9.9352 位于位于 24 和和 26 两天所对应的对数值之间两天所对应的对数值之间,所以对上述数据用三次样条插值所以对上述数据用三次样条插值加细为步长为加细为步长为
25、1的数据的数据:二、数据插值解解 由于对数值由于对数值 9.9352 位于位于 24 和和 26 两天所对应的对数值之间两天所对应的对数值之间,所以对上述数据用三次样条插值加细为所以对上述数据用三次样条插值加细为步长为步长为1的数据的数据:x=18:2:30y=9.9618 9.9544 9.9468 9.9391 9.9312 9.9232 9.9150 xi=18:1:30yi=interp1(x,y,xi,spline)A=xi;yi二、数据插值练习练习:1.设设 在区间在区间-2,2上用上用10等分点作为节点等分点作为节点,分别用三种插值方法分别用三种插值方法:二、数据插值 2,xf
26、xe(1)计算并输出在该区间的计算并输出在该区间的20等分点的函数值等分点的函数值.(2)输出这个函数及两个插值函数的图形输出这个函数及两个插值函数的图形.(3)对输出的数据和图形进行分析对输出的数据和图形进行分析.练习练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如表所示已知某型号飞机的机翼断面下缘轮廓线上的部分数据如表所示:假设需要得到假设需要得到 x 坐标每改变坐标每改变 0.1 时的时的 y 坐标坐标,分别用两种插值方法对机翼断面下缘轮廓线上的分别用两种插值方法对机翼断面下缘轮廓线上的部分数据加细部分数据加细,并作出插值函数的图形并作出插值函数的图形.xy0031.251.7
27、72.092.1112.0121.8131.2141.0151.6二、数据插值(1)打开曲线拟合工具界面 通过cftool命令打开曲线拟合工具界面三、拟合工具箱Data按钮:可输出、查看和平滑数据;Fitting按钮:可拟合数据、比较拟合曲线和数据集;Exclude按钮:可以从拟合曲线中排除特殊的数据点;Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集;Analysis按钮:可以做内插法、外推法、微分或积分拟合。三、拟合工具箱q五个按钮五个按钮 在输入数据之前,数据变量必须存在于matlab的工作区间。可以通过load命令输入变量。单击曲线拟合工具界面中的Data按钮,打开
28、Data对话框,在对话框中进行设置,可以输入数据。q注意:注意:三、拟合工具箱包括两个选项卡:Data Sets 和 Smooth.Data Sets选项卡:.Import workspace vectors 把向量输入工作区,要注意的是变量必须具有相同的维数,无穷大的值和不定值被忽略。X data 用于选择观测数据Y data 用于选择X的响应数据Weight 用于选择权重,与响应数据相联系的向量,如果没选择,默认值为1.qDataData对话框:对话框:三、拟合工具箱三、拟合工具箱.Preview 对所选向量进行图形化预览.Data set name 设置数据集的名称。工具箱可以随即产生唯
29、一的文件名,但用户可以重命名。.Data sets 选项以列表的形式显示所有拟合的数据集。当选择一个数据集时,可以对它做如下操作:.View 查看数据集,以图标形式和列表形式,可以选择方法排除异常值;.Rename 重命名 .Delete 删除数据组qDataData对话框:对话框:census 有两个变量:cdate和pop。cdate是一个年向量,包括1790-1990年,pop是对应年份的美国人口。whos-file census Name Size Bytes Class Attributes cdate 21x1 168 double pop 21x1 168 double load
30、 census cftool(cdate,pop)q例题,用例题,用matlabmatlab自带的文件自带的文件censuscensus拟合:拟合:三、拟合工具箱三、拟合工具箱散点图三、拟合工具箱单击Data按钮三、拟合工具箱在X data和Y data两个下拉式列表框中选择变量名,将在Data对话框中显示散点图的预览效果:三、拟合工具箱当选择Data sets列表框中的数据集时,单击View按钮,打开View Data Set对话框工作表方式在曲线拟合工具箱中,数据的预处理主要包括平滑法、排除法和区间排除法等。(1)平滑数据打开拟合工具箱,单击Data按钮,打开Data对话框,选择Smoot
31、h选项卡q数据预处理:数据预处理:三、拟合工具箱三、拟合工具箱.Original data set 用于挑选需要拟合的数据集;.Smoothed data set平滑数据的名称;.Method用于选择平滑数据的方法,每一个相应数据用通过特殊的曲线平滑方法所计算的结果来取代。平滑数据的方法包括:()Moving average 用移动平均值进行替换;()Lowess局部加权散点图平滑数据,采用线性最小二乘法和一阶多项式拟合得到的数据进行替换;qSmoothSmooth选项卡各选项的功能:选项卡各选项的功能:三、拟合工具箱三、拟合工具箱()Loess局部加权散点图平滑数据,采用线性最小二乘法和二阶
32、多项式拟合得到的数据进行交换;()Savitzky-Golay 采用未加权的线性最小二乘法过滤数据,利用指定阶数的多项式得到的数据进行替换;()Span用于进行平滑计算的数据点的数目;()Degree 用于Savitzky-Golay方法拟合多项式的阶数。qSmoothSmooth各选项卡功能:各选项卡功能:三、拟合工具箱.Smoothed data sets 对于所有平滑数据集进行列表。可以增加平滑数据集,通过单击Create smoothed data set按钮,可以创建经过平滑的数据集。.View按钮 打开查看数据集的GUI,以散点图方式和工作表方式查看数据,可以选择排除异常值的方法。
33、.Rename用于重命名。.Delete可删去数据组。.Save to workspace保存数据集。qSmoothSmooth各选项卡功能:各选项卡功能:排除法是对数据中的异常值进行排除。区间排除法是采用一定的区间去排除那些用于系统误差导致偏离正常值的异常值。在曲线拟合工具中单击Exclude按钮,可以打开Exclude对话框q排除法和区间排除法:排除法和区间排除法:三、拟合工具箱三、拟合工具箱三、拟合工具箱Exclusion rule name指定分离规则的名称Existing exclusion rules列表产生的文件名,当你选择一个文件名时,可以进行如下操作:Copy 复制分离规则的
34、文件;Rename重命名;delete 删去一个文件;View以图形的形式展示分离规则的文件。Select data set 挑选需要操作的数据集;Exclude graphically允许你以图形的形式去除异常值,排除个别的点用“”标记。qExcusionExcusion选项:选项:三、拟合工具箱Check to exclude point 挑选个别的点进行排除,可以通过在数据表中打勾来选择要排除的数据。Exclude Sections 选定区域排除数据:Exclude X选择预测数据X要排除的数据范围;Exclude Y选择响应数据Y要排除的数据范围。qExclusionExclusion
35、选项:选项:其他的预处理方法不便通过曲线拟合工具箱来完成,主要包括两部分:响应数据的转换和去除无穷大、缺失值和异常值。响应数据的转换一般包括对数转换、指数转换,用这些转换可以使非线性的模型线性化,便于曲线拟合。变量的转换一般在命令行里实现,然后把转换后的数据输入曲线拟合工具箱,进行拟合。q其他预处理方法:其他预处理方法:三、拟合工具箱三、拟合工具箱无穷大、不定值在曲线拟合中可以忽略,如果想把他们从数据集中删除,可以用isinf和isnan置换无穷大值和缺失值。q其他预处理:其他预处理:第一步:在命令行键入Cftool打开 curve fitting tool对话框;第二步:在curve fit
36、ting tool对话框中 单击Data按钮打开data对话框指 定要分析的(预先存在工作区间)数据;第三步:在curve fitting tool对话框中 单击fitting按钮打开fitting对话 框,进行设置,实现曲线拟合。q曲线的参数拟合:曲线的参数拟合:三、拟合工具箱三、拟合工具箱包括两个面板:“Fit Editor”面板和“Tabe of Fits”面板。(1)Fit editor 选择拟合的文件名、数据集,选择排除数据的文件,比较数据拟合的各种方法,包括库函数、自定义的拟合模型和拟合参数的选择。(2)Table of Fits 同时列出所有的拟合结果。qFittingFitti
37、ng对话框:对话框:三、拟合工具箱New fit 和 Copy fit 按钮:开始进行曲线拟合是,单击New fit按钮,它采用默认的线性多项式拟合数据。在原有的拟合形式上,选择不同的曲线拟合方法,可以用Copy fit 按钮。Fit name 选项为当前拟合曲线的名字。单击New fit 按钮时系统会产生默认的文件名。Data set 选项为当前的数据集。Exclusion rule 排除异常值的文件名,在数据预处理前建立的文件名。qFittingFitting对话框:对话框:三、拟合工具箱三、拟合工具箱Center and scale X data 可对观测数据进行中心化和离散化处理。Ty
38、pe of fit 拟合的类型,包括参数拟合和非参数拟合两种。具体包括:(1)Custom Equations 自定义拟合的线性或非线性方程;(2)New equation 使用Custom Equations 按钮前,必须单击New equation 按钮选择合适的方程;qFittingFitting对话框:对话框:三、拟合工具箱(3)Exponential指数拟合包括两种形式:y=a*exp(b*x)y=a*exp(b*x)+c*exp(d*x)(4)Fourier傅立叶拟合,正弦和余弦之和(共8个多项式))*8sin()*8cos()*sin()*cos()*2sin()*2cos()*
39、sin()*cos()*sin()*cos(8811022110110wxbwxawxbwxaawxbwxawxbwxaawxbwxaa qFittingFitting对话框:对话框:三、拟合工具箱(5)Gaussian 高斯法,包括8个公式:)2)/)(exp(*)2)/)(exp(*)2)/)(exp(*888111111cbxacbxacbxa (6)Interpolant 内插法,包括线性内插、最近邻内插、三次样条内插和shape-preserving内插;(7)Polynomial多项式,从一次到九次;三、拟合工具箱(8)Rational有理拟合,两个多项式之比,分子与分母都是多项式
40、;(9)Power指数拟合,包括两种形式:y=a*xb y=a*xb+c(10)Smoothing spline 平滑样条拟合,默认的平滑参数由拟合的数据集来决定,参数是0产生一个分段的线性多项式拟合,参数是1产生一个分段三次多项式拟合;三、拟合工具箱(11)Sum of Sin Functions 正弦函数的和,采用以下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*xb)三、拟合工具箱Fit options 包括一些拟合方法,如线性
41、拟合、非线性拟合,以及其他选项;单击Apply按钮:采用上述所选各种方法进行拟合;单击Immediate apply按钮,在选择一个拟合形式后立即输出结果并存储;Results罗列进行拟合的各种参数:(1)SSE-sum of squares due to error 误差平方和,越接近0曲线的拟合效果越好(2)R-square 越接近1,曲线的拟合效果越好三、拟合工具箱(3)Degree of Freedom Adjusted R-Square 调整自由度以后的残差的平方,数值越接近1,曲线的拟合效果越好(4)Root Mean Square Error 根的均方误差Table of fit
42、s 拟合曲线的列表,可以对每个列表做如下操作:Delete fit 删除所选的拟合曲线;Save to workspace 储存所有的拟合信息;Table options 选择与拟合相联系的信息。rand(state,0)%重置生成器到初始状态x=1:0.1:3 9:0.1:10;c=2.5-0.5 1.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文件,并运行上述文件,打开曲线拟合工具q例题用三次和五次多项式拟合:例题用三次和五次多项式拟合:三、拟合工具箱三、拟合工具箱三、拟合工具箱点击fi
43、tting按钮new fitcubic polynomial-applyLinear model Poly3:f(x)=p1*x3+p2*x2+p3*x+p4Coefficients(with 95%confidence bounds):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)Goodness of fit:SSE:2.587 R-square:0.9993 Adjusted R-square:0.9993 RMSE:0.3039q结果:
44、结果:三、拟合工具箱Linear model Poly5:f(x)=p1*x5+p2*x4+p3*x3+p4*x2+p5*x+p6Coefficients(with 95%confidence bounds):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)Goodness of fit:SSE:2.552 R-square:0.9993
45、 Adjusted R-square:0.9992 RMSE:0.3133q结果:结果:三、拟合工具箱q拟合图形:拟合图形:三、拟合工具箱练习:hahn1.m是matlab自带,描述铜的热膨胀与热力学温度的相关性,包括两个向量temp与thermex。load hahn1 cftool(temp,thermex)三、拟合工具箱 有时我们对拟合参数的提取或解释不感兴趣,只想得到一个平滑的通过各数据点的曲线,这种拟合曲线的形式称之为非参数拟合。非参数拟合的方法包括(1)插值法Interpolants(2)平滑样条内插法Smoothing spline q非参数插值:非参数插值:三、拟合工具箱在已知
46、数据点之间估计数值的过程,包括Linear 线性内插,在每一队数据之间用不同的线性多项式拟合;Nearest neighbor 最近邻内插,内插点在最相邻的数据点之间;Cubic spline 三次样条内插,在每一队数据之间用不同的三次多项式拟合;Shape-preserving 分段三次艾尔米特内插.q内插法:内插法:三、拟合工具箱是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,平滑的方法在数据的预处理中已经介绍。q平滑样条内插法:平滑样条内插法:三、拟合工具箱 load carbon12alpha cftool(counts,angle)fit 1Fittingtype of
47、fitInterpolant-Nearest neighbor fit 2Fittingtype of fitInterpolant-Shape-preservingq例:用内插法拟合例:用内插法拟合carbon12alpha.matcarbon12alpha.mat数据:数据:三、拟合工具箱三、拟合工具箱三、拟合工具箱 rand(state,0);x=(4*pi)*0 1 rand(1,25);y=sin(x)+.2*(rand(size(x)-.5);cftool(x,y)q例题:用三次样条内插和集中平滑样条内插法拟合:例题:用三次样条内插和集中平滑样条内插法拟合:三、拟合工具箱三、拟合工
48、具箱三、拟合工具箱三、拟合工具箱三、拟合工具箱Matlab还提供了一个方便简捷的拟合界面。它具有拟合快速,操作简便的有时,但拟合方法较少。使用步骤:(1)导入数据,并画图;(2)在tool菜单中单击Basic Fitting对话框q基本拟合界面:基本拟合界面:三、拟合工具箱load censusplot(cdate,pop,ro)q例题:用基本拟合界面拟合例题:用基本拟合界面拟合census.matcensus.mat:三、拟合工具箱三、拟合工具箱三、拟合工具箱三、拟合工具箱175018001850190019502000-10-50510residualsCubic:norm of residuals=12.2381750180018501900195020000100200300 y=0.92*z3+25*z2+74*z+62where z=(x-1.9e+003)/62data 1 cubic Y=f(X)谢谢大家!