数学建模~插值与拟合(课件ppt).ppt
- 文档编号:18755888
- 上传时间:2023-10-30
- 格式:PPT
- 页数:47
- 大小:1.46MB
数学建模~插值与拟合(课件ppt).ppt
《数学建模~插值与拟合(课件ppt).ppt》由会员分享,可在线阅读,更多相关《数学建模~插值与拟合(课件ppt).ppt(47页珍藏版)》请在冰点文库上搜索。
插值与拟合,一、插值的基本原理,二、拟合的基本原理,三、插值与拟合的关系,四、插值的MATLAB实现,五、拟合的Matlab实现,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算法。
此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。
一、概述,数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,例如98年美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,2003年吵的沸沸扬扬的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理,2005年的雨量预报的评价的插值计算。
2001年的公交车调度拟合问题,2003年的饮酒驾车拟合问题。
插值问题雨量预报的评价,预测点和实测点的图形,插值后的图形,拟合问题饮酒驾车,喝两瓶酒的拟合曲线,喝1-5瓶酒的拟合曲线,在实际中,常常要处理由实验或测量所得到的一些离散数据。
插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。
如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为插值问题。
(不需要函数表达式),二、基本概念,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近似函数的方法称为数据拟合。
(必须有函数表达式)近似函数不一定(曲线或曲面)通过所有的数据点。
1、联系都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。
2、区别插值问题不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。
数据拟合要求得到一个具体的近似函数的表达式。
三、插值与拟合的区别和联系,四、插值的使用及求解,当数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法。
实际问题当中碰到的函数f(x)是各种各样的,有的表达式很复杂,有的甚至给不出数学的式子,只提供了一些离散数据,警如,某些点上的函数值和导数值。
4.1引言,选用不同类型的插值函数,逼近的效果就不同,一般有:
(1)拉格朗日插值(lagrange插值)
(2)分段线性插值(3)Hermite(4)三次样条插值。
4.2插值方法,Matlab实现:
实现分段线性插值不需要编制函数程序,它自身提供了内部的功能函数interp1(一维插值)intep2(二维)interp3(三维)intern(n维),4.3MATLAB实现插值,用MATLAB作插值计算,一维插值函数:
yi=interp1(x,y,xi,method),nearest最邻近插值;linear线性插值;spline三次样条插值;cubic立方插值;缺省时分段线性插值,注意:
所有的插值方法都要求x是单调的,并且xi不能够超过x的范围,例:
从1点12点的11小时内,每隔1小时测量一次温度,测得的温度的数值依次为:
5,8,9,15,25,29,31,30,22,25,27,24试估计每隔1/10小时的温度值,ToMATLAB(temp),hours=1:
12;temps=589152529313022252724;h=1:
0.1:
12;t=interp1(hours,temps,h,spline);plot(hours,temps,+,h,t,hours,temps,r:
)%作图xlabel(Hour),ylabel(DegreesCelsius),例已知飞机下轮廓线上数据如下,求x每改变0.1时的y值,ToMATLAB(plane),返回,要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围,z=interp2(x0,y0,z0,x,y,method),用MATLAB作网格节点数据的插值,nearest最邻近插值;linear双线性插值;cubic双三次插值;缺省时双线性插值.,例:
测得平板表面35网格点处的温度分别为:
828180828479636165818484828586试作出平板表面的温度分布曲面z=f(x,y)的图形,输入以下命令:
x=1:
5;y=1:
3;temps=8281808284;7963616581;8484828586;mesh(x,y,temps),1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.,2以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.,再输入以下命令:
xi=1:
0.2:
5;yi=1:
0.2:
3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图.,ToMATLAB(wendu),通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较,ToMATLAB(moutain),返回,插值函数griddata格式为:
cz=griddata(x,y,z,cx,cy,method),用MATLAB作散点数据的插值计算,要求cx取行向量,cy取为列向量,nearest最邻近插值linear双线性插值cubic双三次插值v4-MATLAB提供的插值方法缺省时,双线性插值,例在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)(-50,150)里的哪些地方船要避免进入,ToMATLABhd1,返回,4.作出水深小于5的海域范围,即z=5的等高线.,2.在矩形区域(75,200)(-50,150)进行插值。
1.输入插值基点数据,3.作海底曲面图,%程序一:
插值并作海底曲面图x=129.0140.0103.588.0185.5195.0105.5157.5107.577.081.0162.0162.0117.5;y=7.5141.523.0147.022.5137.585.5-6.5-813.056.5-66.584.0-33.5;z=48686889988949;x1=75:
1:
200;y1=-50:
1:
150;x1,y1=meshgrid(x1,y1);z1=griddata(x,y,z,x1,y1,v4);meshc(x1,y1,z1),海底曲面图,%程序二:
插值并作出水深小于5的海域范围。
x1=75:
1:
200;y1=-50:
1:
150;x1,y1=meshgrid(x1,y1);z1=griddata(x,y,z,x1,y1,v4);%插值z1(z1=5)=nan;%将水深大于5的置为nan,这样绘图就不会显示出来meshc(x1,y1,z1),水深小于5的海域范围,实验作业1,山区地貌:
在某山区测得一些地点的高程如下表:
(平面区域1200x4000,1200y3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较,返回,5.1引言对于情况较复杂的实际问题(因素不易化简,作用机理不详)可直接使用数据组建模,寻找简单的因果变量之间的数量关系,从而对未知的情形作预报。
这样组建的模型为拟合模型。
拟合模型的组建主要是处理好观测数据的误差,使用数学表达式从数量上近似因果变量之间的关系。
拟合模型的组建是通过对有关变量的观测数据的观察、分析和选择恰当的数学表达方式得到的。
五、拟合的使用及求解,5.2拟合模型的分类,5.2.1直线拟合5.2.2曲线拟合5.2.3观察数据修匀对于已给一批实测数据,由于实测方法、实验环境等一些外界因素的影响,不可避免地会产生随机干扰和误差。
我们自然希望根据数据分布的总趋势去剔除观察数据中的偶然误差,这就是所谓的数据修匀(或称数据平滑)问题。
直线拟合问题引例1,求60C时的电阻R,设R=at+ba,b为待定系数,曲线拟合问题引例2,求血药浓度随时间的变化规律c(t).,在直角坐标系下作图如下(plot),MATLAB(aa1),曲线拟合问题的提法,已知一组(二维)数据,即平面上n个点(xi,yi)i=1,n,寻求一个函数(曲线)y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好,y=f(x),i为点(xi,yi)与曲线y=f(x)的距离,曲线拟合问题最常用的解法线性最小二乘法的基本思路,第一步:
先选定一组函数r1(x),r2(x),rm(x),mn,令f(x)=a1r1(x)+a2r2(x)+amrm(x)
(1)其中a1,a2,am为待定系数,第二步:
确定a1,a2,am的准则(最小二乘准则):
使n个点(xi,yi)与曲线y=f(x)的距离i的平方和最小,记,问题归结为,求a1,a2,am使J(a1,a2,am)最小,用MATLAB作线性最小二乘拟合,1.作多项式f(x)=a1xm+amx+am+1拟合,可利用已有程序:
a=polyfit(x,y,m),2.多项式在x处的值y可用以下命令计算:
y=polyval(a,x),1)输入以下命令:
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)计算结果:
=-9.810820.1293-0.0317,用多项式拟合的命令,MATLAB(zxec2),如何预报人口的增长人口的增长是当前世界上引起普遍关注的问题,并且我们会发现在不同的刊物预报同一时间的人口数字不相同,这显然是由于用了不同的人口模型计算的结果。
我国是世界第一人口大国,基本上地球每九个人中就有一个中国人。
有效地控制我国人口的增长是使我过全面进入小康社会、到21世纪中叶建成富强民主文明的社会主义国家的需要。
而有效控制人口增长的前提是要认识人口数量的变化规律,建立人口模型,作出较准确的预报。
例:
如何预报人口的增长,例如:
1949年1994年我国人口数据资料如下:
年份xi1949195419591964196919741979198419891994人口数yi5.46.06.77.08.19.19.810.311.311.8建模分析我国人口增长的规律,预报1999年我国人口数。
模型一:
假设人口随时间线性地增加,模型:
参数估计观测值的模型:
拟合的精度:
误差平方和。
可以算出:
a=-283.2320b=0.1480模型:
y=1.93+0.146x,则可看成是线性方程,用polyfit命令计算得:
模型二:
指数增长模型,可变为,Y,A,=,+,BX,a=2.33,b=0.0179,则所求模型为:
程序如下:
x=1949195419591964196919741979198419891994;y=5.46.06.77.08.19.19.810.311.311.8;a=polyfit(x,y,1);x1=1949:
10:
1994;y1=a
(2)+a
(1)*x1;b=polyfit(x,log(y),1);y2=exp(b
(2)*exp(b
(1)*x1);plot(x,y,*)holdonplot(x1,y1,-r)holdonplot(x1,y2,-k)legend(原曲线,模型一曲线,模型二曲线),结论的比较如下表:
年份xi1949195419591964196919741979198419891994人口数yi5.46.06.77.08.19.19.810.311.311.8模型一值5.245.976.707.438.168.909.6210.3611.0911.82误差0.160.030.00-0.43-0.060.200.18-0.060.01-0.02模型二值5.556.066.627.237.908.649.4410.3111.2612.31误差-0.15-0.060.08-0.230.200.460.36-0.01-0.13-0.51,结果分析:
(1)Q1=0.29150.7437=Q2.线性模型更适合中国人口的增长。
(2)预报:
1999年12.55亿,13.43亿,(3)统计年鉴:
2005年13.3亿,2010年14亿模型I2005年13.43亿,2010年14.16亿模型II2005年14.94亿,2010年16.33亿,1.lsqcurvefit已知数据点:
xdata=(xdata1,xdata2,xdatan),ydata=(ydata1,ydata2,ydatan),用MATLAB作非线性最小二乘拟合,MATLAB提供了求非线性最小二乘拟合的函数:
lsqcurvefit这个命令都要先建立M文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题.,lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),F(x,xdatan)T中的参变量x(向量),使得,输入格式为:
(1)x=lsqcurvefit(fun,x0,xdata,ydata);
(2)x=lsqcurvefit(fun,x0,xdata,ydata,options);(3)x=lsqcurvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,);(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);,说明:
x=lsqcurvefit(fun,x0,xdata,ydata,options);,迭代初值,选项见无约束优化,最小二乘拟合:
lsqcurvefit()例假设有一组实测数据xi0.10.20.30.40.50.60.70.80.91.0yi2.32012.6472.97073.28853.60083.9094.21474.51914.82325.1275,假设已知该数据可能满足的原型函数为,试求出满足下面数据的最小二乘解的a,b,c,d的值。
先建立原型函数:
functiony=f1(a,x)y=a
(1)*x+a
(2)*x.2.*exp(-a(3)*x)+a(4);在命令窗口中输入:
x=0.10.20.30.40.50.60.70.80.91.0;y=2.32012.6472.97073.28853.60083.9094.21474.51914.82325.1275;a=lsqcurvefit(f1,1;2;2;2,x,y),实验作业2,完成数学建模竞赛2005年C题(雨量预报的评价),返回,谢谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 拟合 课件 ppt
![提示](https://static.bingdoc.com/images/bang_tan.gif)