Matlab数据拟合..ppt
《Matlab数据拟合..ppt》由会员分享,可在线阅读,更多相关《Matlab数据拟合..ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用用Matlab进行进行数据拟合数据拟合1.多项式曲线拟合多项式曲线拟合:polyfit.y0=polyval(p,x0)p=polyfit(x,y,m)其中其中,x,y为已知数据点向量为已知数据点向量,分别表示横分别表示横,纵纵坐标坐标,m为拟合多项式的次数为拟合多项式的次数,结果返回结果返回m次次拟合多项式系数拟合多项式系数,从高次到低次存放在向量从高次到低次存放在向量p中中.可求得多项式在可求得多项式在x0处的值处的值y0.例例1 已知观测数据点如表所示已知观测数据点如表所示xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.
2、560.89.480.99.3111.2分别用分别用3次和次和6次多项式曲线拟合这些数据点次多项式曲线拟合这些数据点.x=0:0.1:1y=-0.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)p3=polyfit(x,y,3)p6=polyfit(x,y,6)编写编写Matlab程序如下程序如下:t=0:0.1:1.2s=polyval(p3,t)s1=polyval(p6,t)hold onplot(t,s,r-,linewidth,2)plot(t
3、,s,b-,linewidth,2)gridx=0:0.1:1y=-0.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)p3=polyfit(x,y,3)p6=polyfit(x,y,6)例例2 用切削机床进行金属品加工时用切削机床进行金属品加工时,为了适当地调整为了适当地调整机床机床,需要测定刀具的磨损速度需要测定刀具的磨损速度.在一定的时间测量在一定的时间测量刀具的厚度刀具的厚度,得数据如表所示得数据如表所示:切削时间切削时间 t/h030.0129
4、.1228.4328.1428.0527.7627.5727.2827.0刀具厚度刀具厚度 y/cm切削时间切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度刀具厚度 y/cm解解:描出散点图描出散点图,在命令窗口输入在命令窗口输入:t=0:1:16y=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.0plot(t,y,*)解解:描出散点图描出散点图,在命令窗口输入在命令窗口输入:t=0:1:16y=30.0
5、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.0plot(t,y,*)a=-0.3012 29.3804hold onplot(t,y1),hold offa=polyfit(t,y,1)y1=-0.3012*t+29.3804例例2 用切削机床进行金属品加工时用切削机床进行金属品加工时,为了适当地调整为了适当地调整机床机床,需要测定刀具的磨损速度需要测定刀具的磨损速度.在一定的时间测量在一定的时间测量刀具的厚度刀具的厚度,得数据如表所示得数据如表所示:切削时间切削时间 t/h030.
6、0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度刀具厚度 y/cm切削时间切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度刀具厚度 y/cm拟合曲线为拟合曲线为:y=-0.3012t+29.3804例例3 一个一个15.4cm30.48cm的混凝土柱在加压实验中的应的混凝土柱在加压实验中的应力力-应变关系测试点的数据如表所示应变关系测试点的数据如表所示1.552.472.933.03已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式
7、中,表示应力表示应力,单位是单位是 N/m2;表示应表示应变变.2.89已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式中,表示应力表示应力,单位是单位是 N/m2;表示应表示应变变.解解 选取选取指数函数指数函数作拟合时作拟合时,在拟合前需作变量代换在拟合前需作变量代换,化为化为 k1,k2 的线性函的线性函数数.于是于是,令令即即在命令窗口输入在命令窗口输入:x=500*1.0e-6 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6y=3.103*1.0e+3 2.465*1.0e+3 1.
8、953*1.0e+3 1.517*1.0e+3 1.219*1.0e+3z=log(y)a=polyfit(x,z,1)k1=exp(8.3009)w=1.55 2.47 2.93 3.03 2.89plot(x,w,*)y1=exp(8.3009)*x.*exp(-494.5209*x)plot(x,w,*,x,y1,r-)已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式中,表示应力表示应力,单位是单位是 N/m2;表示应表示应变变.拟合曲线为拟合曲线为:令令则则求得求得于是于是在实际应用中常见的拟合曲线有在实际应用中常见的拟合曲线有:直
9、线直线多项式多项式一般一般 n=2,3,不宜过高不宜过高.双曲线双曲线(一支一支)指数曲线指数曲线2.非线性曲线拟合非线性曲线拟合:lsqcurvefit.功能功能:x=lsqcurvefit(fun,x0,xdata,ydata)x,resnorm=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据根据给定的数据 xdata,ydata(对应点的横对应点的横,纵坐标纵坐标),按函数文件按函数文件 fun 给定的函数给定的函数,以以x0为初值作为初值作最小二乘拟合最小二乘拟合,返回函数返回函数 fun中中的系数向量的系数向量x和残差的平方和和残差的平方和resnorm
10、.例例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 与与已知数据点在最小二乘意义上充分接近已知数据点在最小二乘意义上充分接近.首先编写存储拟合函数的函数文件首先编写存储拟合函数的函数文件.function f=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2)*xdata.2+x(3)*xdata.3保存为文件保存为文件 ni
11、hehanshu.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 与与已知数据点在最小二乘意义上充分接近已知数据点在最小二乘意义上充分接近.编写下面的程序调用拟合函数编写下面的程序调用拟合函数.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;
12、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=lsqcurvefit(nihehanshu,x0,xdata,ydata)程序运行后显示程序运行后显示x=3.0022 4.0304 0.9404resnorm=0.0912例例4 已知观测数据点如表所示已知观测数据点如表所示xy03.10.13.270.23.81
13、0.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.94 x3.此时的残差是此时的残差是:0.0912.f(x)=3ex+4.03x2+0.94 x3.拟合函数为拟合函数为:练习练习:1.已知观测数据点如表所示已知观测数据点如表所示xy03.10.13.270.23.810
14、.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+bsin x+c lnx 与已知数与已知数据点在最小二乘意义上充分接近据点在最小二乘意义上充分接近.插值问题插值问题已知已知 n+1+1个节点个节点其中其中互不相同互不相同,不妨不妨设设求任一
15、插值点求任一插值点处的插值处的插值节点可视为由节点可视为由产生产生,g 表达式复杂表达式复杂,甚至无表达式甚至无表达式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.三次样条插值三次样条插值:已有程序已有程序
16、y=interp1(x0,y0,x,spline)或或 y=spline(x0,y0,x)用用Matlab作插值计算作插值计算例例 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,*)例例 6 对对 在在-5,5上上,用用n=11个等距分点作分段线性个等距分点作分段线性插值和三次样条插值插值和三次样条插值,用用m=21个插
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 数据 拟合
限制150内