Matlab数据拟合实用教程.ppt
《Matlab数据拟合实用教程.ppt》由会员分享,可在线阅读,更多相关《Matlab数据拟合实用教程.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例例1 已知观测数据点如表所示已知观测数据点如表所示xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.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程序如下
2、程序如下:t=0:0.1:1.2s=polyval(p3,t)s1=polyval(p6,t)hold onplot(t,s,r-,linewidth,2)plot(t,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 用切削机床进行金属品加工时用切削机床进行金属品加工时, 为了适当地调整为了适当地调整机床机床
3、, 需要测定刀具的磨损速度需要测定刀具的磨损速度. 在一定的时间测量刀在一定的时间测量刀具的厚度具的厚度, 得数据如表所示得数据如表所示:切削时间切削时间 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解解: 描出散点图描出散点图, 在命令窗口输入在命令窗口输入:t=0:1:16y=30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.
4、8 26.5 26.3 26.1 25.7 25.3 24.8 24.0plot(t,y,*)解解: 描出散点图描出散点图, 在命令窗口输入在命令窗口输入: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,*)a = -0.3012 29.3804hold onplot(t, y1), hold offa=polyfit(t,y,1)y1=-0.3012*t+29.3804例例2 用切削机床进行金属品加工时用切削机床进行金属品加工时, 为了
5、适当地调整为了适当地调整机床机床, 需要测定刀具的磨损速度需要测定刀具的磨损速度. 在一定的时间测量刀在一定的时间测量刀具的厚度具的厚度, 得数据如表所示得数据如表所示:切削时间切削时间 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拟合曲线为拟合曲线为: y=-0.3012t+29.3804例例3 一个一个15.4cm30.48cm的混凝土柱在加压实验中的的混凝土柱在加压实验
6、中的应力应力-应变关系测试点的数据如表所示应变关系测试点的数据如表所示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.517 10 已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述, 即假设即假设21 kke式中式中, 表示应力表示应力, 单位是单位是 N/m2; 表示应变表示应变. 2.8962375 10 31.219 10 已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线
7、来描述, 即假设即假设21 kke式中式中, 表示应力表示应力, 单位是单位是 N/m2; 表示应变表示应变. 解解 选取选取指数函数指数函数作拟合时作拟合时, 在拟合前需作变量代换在拟合前需作变量代换, 化为化为 k1, k2 的线性函数的线性函数.于是于是,12lnln kk令令0211ln,ln zakak即即01 zaa在命令窗口输入在命令窗口输入: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.953*1.0e+3 1.517*1.0e+3 1.219*
8、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-)已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述, 即假设即假设21 kke式中式中, 表示应力表示应力, 单位是单位是 N/m2; 表示应变表示应变. 拟合曲线为拟合曲线为:3 -494.52094.0275 10 e0211ln,ln, zakak01 zaa0211-494.5209,ln
9、8.3009, akak3124.0275 10 ,494.5209 kk令令则则求得求得于是于是在实际应用中常见的拟合曲线有在实际应用中常见的拟合曲线有: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)根据给定的数据根据给定的数据 xdat
10、a, ydata (对应点的横对应点的横, 纵坐标纵坐标), 按函数文件按函数文件 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=0,0,0;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,resnor
13、m=lsqcurvefit(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.8
15、2.334.50.644.9409.13652.436.9求求a, b, c的值的值, 使得曲线使得曲线 f(x)=aex+bsin x+c lnx 与已知数据与已知数据点在最小二乘意义上充分接近点在最小二乘意义上充分接近.插值问题插值问题已知已知 n+1+1个节点个节点, 1 , 0(),(njyxjj其中其中jx互不相同互不相同, 不妨设不妨设01), na xxxb求任一插值点求任一插值点)(*jxx 处的插值处的插值.*y节点可视为由节点可视为由)(xgy 产生产生,g 表达式复杂表达式复杂,甚至无表达式甚至无表达式0 x1xnx0y1y*x*y(,) (0,1,) jjxyjn1.1
16、.分段线性插值分段线性插值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)用用M
17、atlab作插值计算作插值计算例例 5 对对 在在-1, 1上上, 用用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解解 在命令窗
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 数据 拟合 实用教程
限制150内