《数学建模Matlab数据拟合详解.pptx》由会员分享,可在线阅读,更多相关《数学建模Matlab数据拟合详解.pptx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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程序如下:第1页/共44页t=0:0.1:1.2s=polyval(p3
2、,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页/共44页例例2 用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度.在一定的时间测量刀具的厚度,得数据如表所示:切削时间 t/h0
3、30.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度 y/cm切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度 y/cm第3页/共44页解解:描出散点图,在命令窗口输入: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,*)第4页/共44页解解:描出散点图,在命令窗口输入:t=0:1:16y=30.0 29.1 28.4 28.
4、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第5页/共44页例例2 用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度.在一定的时间测量刀具的厚度,得数据如表所示:切削时间 t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度 y/cm切削时间 t/h926.
5、81026.51126.31226.11325.71425.31524.81624.0刀具厚度 y/cm拟合曲线为:y=-0.3012t+29.3804第6页/共44页例例3 一个15.4cm30.48cm的混凝土柱在加压实验中的应力-应变关系测试点的数据如表所示1.552.472.933.03已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是 N/m2;表示应变.2.89第7页/共44页已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是 N/m2;表示应变.解解 选取指数函数指数函数作拟合时,在拟合前需作变量代换,化为 k1,k2 的线性函数.于是
6、,令即第8页/共44页在命令窗口输入:x=500*1.0e-6 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6z=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-)第9页/共44页已知应力-应变关系可以用一条指数曲线来描述,即假设式中,表示应力,单位是 N/m2;表示应变.拟合曲线为:令则求得于是第10页/共44页在实际应用中常见的拟合曲线有:直线
7、多项式一般 n=2,3,不宜过高.双曲线(一支)指数曲线第11页/共44页2.非线性曲线拟合:lsqcurvefit.功能:x=lsqcurvefit(fun,x0,xdata,ydata)x,resnorm=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据 xdata,ydata(对应点的横,纵坐标),按函数文件 fun 给定的函数,以x0为初值作最小二乘拟合,返回函数 fun中的系数向量x和残差的平方和resnorm.第12页/共44页例例4 已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.
8、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保存为文件 nihehanshu.m第13页/共44页例例4 已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求三个参数 a,b,c的值,使得曲线
9、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;x,resnorm=lsqcurvefit(nihehanshu,x0,xdata,ydata)第14页/共44页编写下面的程序调用拟合函数.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=lsqcurv
10、efit(nihehanshu,x0,xdata,ydata)程序运行后显示x=3.0022 4.0304 0.9404resnorm=0.0912第15页/共44页例例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.94 x3.此时的残差是:0.0912.第16页/共44页f(x)=3ex+4
11、.03x2+0.94 x3.拟合函数为:第17页/共44页练习练习: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+bsin x+c lnx 与已知数据点在最小二乘意义上充分接近.第18页/共44页插值问题插值问题已知 n+1+1个节点其中
12、互不相同,不妨设求任一插值点处的插值节点可视为由节点可视为由产生产生,g 表达式复杂表达式复杂,甚至无表达式甚至无表达式第19页/共44页1.1.分段线性插值分段线性插值xjxj-1xj+1x0 xn实用插实用插值方法值方法机翼下轮廓机翼下轮廓线线2.三次样条插值三次样条插值细木条细木条:样条样条第20页/共44页输入输入:节点节点x0,y0,插值点插值点x(均为均为数组数组,长度自定义长度自定义);输出输出:插值插值y(与与x同长度数组同长度数组).1.分段线性插值分段线性插值:已有程序已有程序 y=interp1(x0,y0,x)y=interp1(x0,y0,x,linear)2.三次样
13、条插值三次样条插值:已有程序已有程序 y=interp1(x0,y0,x,spline)或或 y=spline(x0,y0,x)用用Matlab作插值计算作插值计算第21页/共44页例例 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,*)第22页/共44页例例 6 对对 在在-5,5上上,用n=11个等距分点作分段线性插值和三次样条插值,用m=21个插值点作图,比较结果.解解 在命
14、令窗口输入: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 y2plot(x,z,r,x,y,k:,x,y1,b,x,y2,g)gtext(Piece.-linear.),gtext(Spline),gtext(y=1/(1+x2)第23页/共44页 0 1.0000 1.0000 1.0000 0.5000 0.8000 0.7500 0.8205 1.0000 0.5000 0.5000 0.5
15、000 1.5000 0.3077 0.3500 0.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个插值点作图,比较结果.xyy1y2第24页/共44
16、页解解 在命令窗口输入:例例 7 在一天在一天24h内内,从零点开始每间隔从零点开始每间隔2h测得的环境温度为测得的环境温度为12,9,9,10,18,24,28,27,25,20,18,15,13(单位:)推测在每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)plot(t,T,*,ti,T1i,r-,ti,T2i,g-)第25页/共44页
17、例例 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第26页/共44页例例 8 在飞机的机翼加工时在飞机的机翼加工时,由于机翼尺寸很大由于机翼尺寸很大,通常在图通常在图纸上只能标出部分关
18、键点的数据纸上只能标出部分关键点的数据.某型号飞机的机翼上缘某型号飞机的机翼上缘轮廓线的部分数据如下轮廓线的部分数据如下: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)第27页/共44页例例9 天文学家在天文学家在1914年年8月份的月份的7次观测中次观测中,测得地球与金测得地球与金星之间距离星之间距离(单位单位:m)
19、,并取其常用对数值与日期的一组历并取其常用对数值与日期的一组历史数据如下所示史数据如下所示,试推断何时金星与地球的距离试推断何时金星与地球的距离(单位单位: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 两天所对应的对数值之间,所以对上述数据用三次样条插值加细为步长为1的数据:第28页/共44页解解 由于对数值 9.9352 位于 24 和 26 两天所对应的对数值之间,所以对上述数据用三次样条插值加细
20、为步长为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;yiA=18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 24.0000 25.0000 26.0000 27.0000 28.0000 29.0000 30.00009.9618 9.9581 9.9544 9.9506 9.9468 9.9430 9.9391 9.9352 9.9312 9.9272 9.9232 9.9191
21、9.9150第29页/共44页练习练习:1.设 在区间-2,2上用10等分点作为节点,分别用三种插值方法:(1)计算并输出在该区间的20等分点的函数值.(2)输出这个函数及两个插值函数的图形.(3)对输出的数据和图形进行分析.第30页/共44页1.设 在区间-2,2上用10等分点作为节点,分别用三种插值方法:(1)计算并输出在该区间的20等分点的函数值.zi=0.0183 0.0387 0.0773 0.1411 0.2369 0.3685 0.5273 0.6980 0.8521 0.9599 1.0000 0.9599 0.8521 0.6980 0.5273 0.3685 0.2369
22、0.1411 0.0773 0.0387 0.0183第31页/共44页1.设 在区间-2,2上用10等分点作为节点,分别用两种插值方法:(2)输出这个函数及两个插值函数的图形.第32页/共44页练习练习:2.已知某型号飞机的机翼断面下缘轮廓线上的部分数据如表所示:假设需要得到 x 坐标每改变 0.1 时的 y 坐标,分别用两种插值方法对机翼断面下缘轮廓线上的部分数据加细,并作出插值函数的图形.xy0031.251.772.092.1112.0121.8131.2141.0151.6第33页/共44页例例5 给药方案。一种新药用于临床之前,必须设计给药方案.在快速静脉注射的给药方式下,所谓给药
23、方案是指,每次注射剂量多大,间隔时间多长.药物进入机体后随血液输送到全身,在这个过程中不断地被吸收,分布,代谢,最终排除体外.药物在血液中的浓度,即单位体积血液中的药物含量,称血药浓度.在最简单的一室模型中,将整个机体看作一个房室,称中心室,室内的血药浓度是均匀的.快速静脉注射后,浓度立即上升;然后逐渐下降.当浓度太低时,达不到预期的治疗效果;血药浓度太高,又可能导致药物中毒或副作用太强.临床上,每种药物有一个最小有效浓度 c1 和一个最大治疗浓度 c2.设计给药方案时,要使血药浓度保持在 c1-c2 之间.设本题所研究药物的最小有效浓度c1=10,最大治疗浓度 c2=25第34页/共44页例
24、例5 给药方案。显然,要设计给药方案,必须知道给药后血药浓度随时间变化的规律.为此,从实验和理论两方面着手.在实验方面,对某人用快速静脉注射方式一次注入该药物300mg后,在一定时刻 t(小时)采集血样,测得血药浓度c 如表:血药浓度c(t)的测试数据t0.250.511.523468c 19.21 18.1515.3614.1012.899.327.455.243.01第35页/共44页例例5 给药方案。近似直线关系,即 c(t)有按负指数规律减少的趋势.第36页/共44页例例5 给药方案1.确定血药浓度的变化规律假设:a)药物向体外排除的速率与中心室的血药浓度成正比,比例系数为 k(0),
25、称排除速率.b)中心室血液容积为常数 V,t=0 瞬时注入药物的剂量为 d,血药浓度立即为由假设 a),中心室的血药浓度 c(t)应满足微分方程由假设 b),方程的初始条件为:求解得:即血药浓度c(t)按指数规律下降.第37页/共44页2.给药方案设计简单实用的给药方案是:每隔一定时间 ,重复注入固定剂量 D,使血药浓度 c(t)呈周期性变化,并保持在 c1-c2 之间.x0yc1c2第38页/共44页2.给药方案设计简单实用的给药方案是:每隔一定时间 ,重复注入固定剂量 D,使血药浓度 c(t)呈周期性变化,并保持在 c1-c2 之间.为此,初次剂量需加大到 D0.由式 得到:显然,当 c1
26、,c2 给定后,要确定给药方案必须知道参数 V 和 k.第39页/共44页2.由实验数据作曲线拟合以确定参数问题化为由数据 ti,yi(i=1,8)拟合直线记为了用线性最小二乘法拟合 的系数 V 和 k,先取对数得用Matlab作线性最小二乘法拟合,得到第40页/共44页问题化为由数据 ti,yi(i=1,8)拟合直线记为了用线性最小二乘法拟合 的系数 V 和 k,先取对数得用Matlab作线性最小二乘法拟合,得到由实验数据 d=300(mg)算出:第41页/共44页拟合曲线为:第42页/共44页3.结论将 k,V 和给出的 c1=10,c2=25 代入得:D0=375.5,D=225.3,给药方案不妨定为:D0=375 mg,D=225 mg,小时.第43页/共44页感谢您的观看!第44页/共44页