您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 求职简历 > 实验二讲稿MATLAB拟合
工程应用数学B创新实训课堂Ⅱ合肥学院数理系大学数学教研室——曲线拟合实训课堂目的1、直观了解拟合基本内容2、掌握用Matlab求解拟合问题3、通过对实际问题的分析和研究,初步掌握建立数据拟合数学模型的方法实训课堂内容1、拟合问题引例及基本理论2、用数学软件求解拟合问题3、应用实例4、自主学习内容据人口统计年鉴,知我国从1997年至2006年人口数据资料如下:(人口数单位为:百万)(1)在直角坐标系上作出人口数的图象。(2)建立人口数与年份的函数关系,并估算2015年的人口数。年份19971998199920002001人口数1236.261247.611257.861267.431276.27年份20022003200420052006人口数1284.531292.271299.881307.561314.481.1拟合问题引例一、曲线拟合baxy线性模型如何确定a,b?曲线拟合问题的提出:已知一组(二维)数据,即平面上n个点(xi,yi)i=1,…n,寻求一个函数(曲线)y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。+++++++++xyy=f(x)(xi,yi)ii为点(xi,yi)与曲线y=f(x)的距离1.2拟合的基本原理niiiniiyxf1212])([确定f(x)使得达到最小最小二乘法用什么样的曲线拟合已知数据?常用的曲线函数系类型:1.通过理论分析建立数学模型来确定f(x);2.通过作图直观判断确定f(x).xaeay21指数曲线:21axay双曲线(一支):11mmmaxaxay多项式:21axay直线:++++++++++++++++++++++++++++++f=a1+a2xf=a1+a2x+a3x2f=a1+a2x+a3x2f=a1+a2/xf=aebxf=ae-bx拟合函数组中系数的确定22121211(,)[()]nniiiiiJaaaxay达到最小。为此,只需利用极值的必要条件)2,1(0kaJk得到关于21,aa的线性方程组,21,aa,)(21为例以axaxf使得,即确定21aa1211212[()]02[()]0niiiiniiiaxayxaxay212111121100nnniiiiiiinniiiixaxaxyxanay2121111211nnniiiiiiinniiiixaxaxyxanayMATLAB(4.m)clearclcx=1949:5:1994y=[541.67602.66672.09704.99806.71908.59975.421034.751106.761176.74]a11=sum(x.^2);a12=sum(x);a21=a12;a22=10;d1=sum(x.*y);d2=sum(y);A=[a11,a12;a21,a22]D=[d1;d2]a1a2=inv(A)*D1.作多项式f(x)=a1xm+…+amx+am+1拟合,可利用已有程序:a=polyfit(x,y,m)2.多项式在x处的值y可用以下命令计算:y=polyval(a,x)输出拟合多项式系数a=[a1,…am,am+1](数组)输入同长度的数组X,Y拟合多项式次数线性最小二乘拟合二、用MATLAB解拟合问题即要求出二次多项式:3221)(axaxaxf中的),,(321aaaA使得:1121[()]iiifxy最小对下面一组数据作二次多项式拟合xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.21)输入以下命令:x=0:0.1:1;y=[-0.4471.9783.286.167.087.347.669.569.489.3011.2];A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,'k+',x,z,'r')%作出数据点和拟合曲线的图形2)计算结果:A=-9.810820.1293-0.0317解:用多项式拟合的命令MATLAB(zxec2)00.20.40.60.81-20246810120317.01293.208108.9)(2xxxf补充:对该观测数据点进一步拟合分别用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.2]plot(x,y,'k.','markersize',25)axis([01.3-216]);%x的坐标范围是0到1.3,y的范围是-2到16p3=polyfit(x,y,3)p6=polyfit(x,y,6)编写Matlab程序如下:xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2t=0:0.1:1.2s=polyval(p3,t)s1=polyval(p6,t)holdonplot(t,s,'r-','linewidth',2)plot(t,s1,'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.2]plot(x,y,'k.','markersize',25)axis([01.3-216])p3=polyfit(x,y,3)p6=polyfit(x,y,6)00.20.40.60.811.2-20246810121416MATLAB(dianzu1)例1电阻问题温度t(0C)20.532.751.073.095.7电阻R()7658268739421032例.由数据拟合R=a1t+a2解法:用命令polyfit(x,y,m)得到a1=3.3940,a2=702.4918三、应用问题实例例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解:描出散点图,在命令窗口输入: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,'*')解:描出散点图,在命令窗口输入: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,'*')a=-0.301229.3804holdonplot(t,y1),holdoffa=polyfit(t,y,1)y1=-0.3012*t+29.3804拟合曲线为:y=-0.3012t+29.3804一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的。快速静脉注射后,浓度立即上升;然后迅速下降。当浓度太低时,达不到预期的治疗效果;当浓度太高,又可能导致药物中毒或副作用太强。临床上,每种药物有一个最小有效浓度c1和一个最大有效浓度c2。设计给药方案时,要使血药浓度保持在c1~c2之间。一种新药用于临床之前,必须设计给药方案。药物进入机体后血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度。例3给药方案问题本题设c1=10,c2=25(ug/ml).在实验方面,对某人用快速静脉注射方式一次注入该药物300mg后,在一定时刻t(小时)采集血药,测得血药浓度c(ug/ml)如下表:t(h)0.250.511.523468c(g/ml)19.2118.1515.3614.1012.899.327.455.243.01要设计给药方案,必须知道给药后血药浓度随时间变化的规律。从实验和理论两方面着手:给药方案。近似直线关系,即c(t)有按负指数规律减少的趋势.logtc给药方案1.在快速静脉注射的给药方式下,研究血药浓度(单位体积血液中的药物含量)的变化规律。问题2.给定药物的最小有效浓度和最大治疗浓度,设计给药方案:每次注射剂量多大;间隔时间多长。tc2cc10分析•理论:用一室模型研究血药浓度变化规律•实验:对血药浓度数据作拟合,符合负指数变化规律3.血液容积v,t=0注射剂量d,血药浓度立即为d/v.2.药物排除速率与血药浓度成正比,比例系数k(0).模型假设1.机体看作一个房室,室内血药浓度均匀,即为一室模型.模型建立d/c(0)3得:由假设-kcdtdc2得:由假设ktevdtc)(在此,d=300mg,t及c(t)在某些点处的值见前表,需经拟合求出参数k、v用线性最小二乘法拟合c(t)ktevdtc)()/ln(,,ln21vdakacyktvdc)/ln(ln2/,121aedvakatayMATLAB(lihe1)计算结果:)(02.15),/1(2347.0lvhkd=300;t=[0.250.511.523468];c=[19.2118.1515.3614.1012.899.327.455.243.01];y=log(c);a=polyfit(t,y,1)k=-a(1)v=d/exp(a(2))程序:给药方案设计cc2c10t•设每次注射剂量D,间隔时间•血药浓度c(t)应c1c(t)c2•初次剂量D0应加大,,0DD给药方案记为:kecc2112ln1cck2、)(,1220ccDcD1、计算结果:9.3,3.225,5.3750DDc1=10,c2=25k=0.2347v=15.02故可制定给药方案:)(4),(225),(3750hmgDmgD即:首次注射375mg,其余每次注射225mg,注射的间隔时间为4小时。1.已知观测数据点如表所示xy03.10.13.270.23.810.34.50.45.180.560.67.050.78.560.89.690.911.25113.17求用三次多项式进行拟合的曲线方程.三、实验作业在实际应用中常见的拟合曲线有:01yaxa直线101nnnyaxaxa多项式一般n=2,3,不宜过高.01ayax双曲线(一支)bxyae指数曲线四、自主学习内容非线性曲线拟合(lsqcurvefit)功能:x=lsqcurvefit(fun,x0,xdata,ydata)[x,resnorm]=lsqcurvefit(fun,x0,xdata,ydata)根据给定的数据xdata,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与已知数据点在最小二乘意义上充分接近.首先编写存储拟合函数的函数文件.functionf=nihehanshu(x,xdata)f=x(1)*exp(xdata)+x(2
本文标题:实验二讲稿MATLAB拟合
链接地址:https://www.777doc.com/doc-2458895 .html