版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学建模中的数据处理方法数学建模中的数据处理方法(一一)插值与拟合插值与拟合插值与拟合插值与拟合一、插值的基本原理一、插值的基本原理二、插值的二、插值的MATLABMATLAB实现实现三、拟合的基本原理三、拟合的基本原理四、插值与拟合的关系四、插值与拟合的关系五、拟合的五、拟合的MatlabMatlab实现实现 我们经常会遇到大量的数据需要处理,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算数据拟合、参数估计、插值等数据处理算法。此类问题在法。此类问题在MATLAB中有很多现成的中有很多现成的函数可
2、以调用,熟悉函数可以调用,熟悉MATLAB,这些方法,这些方法都能游刃有余的用好。都能游刃有余的用好。 一、一、 在实际中,常常要处理由实验或测量所在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。数与已知数据有较高的拟合精度。 如果要求如果要求这个近似函数(曲线或曲面)这个近似函数(曲线或曲面)经过所已知的所有数据点经过所已知的所有数据点,则称此类问题为
3、,则称此类问题为插值问题插值问题。 (不需要函数表达式)(不需要函数表达式)二、二、 如果不要求近似函数通过所有数据点,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近而是要求它能较好地反映数据变化规律的近似函数的方法称为似函数的方法称为数据拟合数据拟合。(必须有函数。(必须有函数表达式)表达式) 二、二、例:从例:从1 1点到点到1212点点的的1111小时内,每隔小时内,每隔1 1小时测量一次小时测量一次温度,测得的温度的数值依次为:温度,测得的温度的数值依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,
4、2424试估计每隔试估计每隔1/101/10小时的温度值小时的温度值解题思路:不知道描述时间与温度关系的函数解题思路:不知道描述时间与温度关系的函数f(t),仅仅知道一些离散的数据点。首先求一个性质优良、便于知道一些离散的数据点。首先求一个性质优良、便于计算的函数计算的函数 ,作为,作为 f(t)的近似函数,并且在已知的近似函数,并且在已知的数据节点上的数据节点上( ) t ( )( )iitf t 1,2i 再通过再通过 求每隔求每隔1/101/10小时的温度值。小时的温度值。( ) t 4.1 4.1 (一维)插值问题的一般描述(一维)插值问题的一般描述设给出关于函数设给出关于函数y= f
5、 (x)的一组函数值,的一组函数值,x x0 x1 xny y0 y1 yn其中其中x0,x1, xn是是n+1个互不相同的点,求一个个互不相同的点,求一个近似函数近似函数 ,使得,使得( )x ()()iixf x 0,1i n即要求这个即要求这个近似函数近似函数经过所已知的所有数据点,经过所已知的所有数据点,则称此类问题为则称此类问题为插值问题插值问题。xyx0 xnx ( )x 近近似似函函数 Matlab 实现:实现插值不需要编制函实现:实现插值不需要编制函数程序,它自身提供了内部的功能函数数程序,它自身提供了内部的功能函数interp1(一维分段插值一维分段插值) interp2(二
6、维二维) interp3(三维三维) intern(n维维) 4.2 MATLAB 4.2 MATLAB实现插值实现插值用用MATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xi处的处的插值结果插值结果nearest 最近邻点插值;最近邻点插值;linear分段分段线性插值;线性插值;spline 三次样条插值;三次样条插值;cubic 三次多项式插值;三次多项式插值; 缺省时缺省时 分段线性插值分段线性插值 注意注意(1)所有的插值方法所有的插值方法都要求都要求x是单调的,并且是单调的
7、,并且xi不不能够超过能够超过x的范围;的范围;(2)interp1()并没有提供并没有提供插值函数的表达式。插值函数的表达式。 4.3.1 4.3.1一维插值一维插值例例1 1:从:从1 1点到点到1212点点的的1111小时内,每隔小时内,每隔1 1小时测量一次温小时测量一次温度,测得的温度的数值依次为:度,测得的温度的数值依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424试估计试估计(1)(1)每隔每隔1/101/10小时的小时的温度值温度值; ;(2 2)估计)估计1 1点点3030分和分和1313的温度值。的温度值
8、。hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline); plot(hours,temps,+,h,t,r:)xlabel(Hour),ylabel(Degrees Celsius)例例1 1:从:从1 1点点1212点点的的1111小时内,每隔小时内,每隔1 1小时测量一次温度,小时测量一次温度,测得的温度的数值依次为:测得的温度的数值依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424试估计试
9、估计(1)(1)每隔每隔1/101/10小时的温度小时的温度值值; ;(2 2)估计)估计1 1点点3030分和分和1313的温度值。的温度值。t=interp1(hours,temps,1.5, spline)t=interp1(hours,temps,13, spline, extrap)%当数据超出插值运算范围时,可以使用外推方法插值当数据超出插值运算范围时,可以使用外推方法插值例:测得平板表面例:测得平板表面3 35 5网格点处的温度分别为:网格点处的温度分别为: 82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 8
10、4 8484 84 82 85 86 82 85 86 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面z= =f( (x, ,y) )的图形的图形二维插值函数二维插值函数:z=interp2(x0,y0,z0,x,y,method)针对的是插值节点为网格节点针对的是插值节点为网格节点 4.3.2 4.3.2二维插值二维插值 一、针对于插值节点为网格节点的二维插值一、针对于插值节点为网格节点的二维插值要求要求x0, ,y0单调单调;x,y可取可取为矩阵,为矩阵,或或x取行向取行向量,量,y取为列向量,取为列向量,x,y的值分别不能超出的值分别不能超出x0, ,y0 0的范围的范围z=i
11、nterp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest 最邻近插值;最邻近插值;linear 双线性插值;双线性插值;cubic 双三次插值;双三次插值;缺省时缺省时 双线性插值双线性插值. .例:测得平板表面例:测得平板表面3 35 5网格点处的温度分别为:网格点处的温度分别为: 82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 8484 84 82 85 86 82 85 86 试作出平板表面的温度分布曲面
12、试作出平板表面的温度分布曲面z= =f( (x, ,y) )的图形的图形输入以下命令:输入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86; mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.x1=1:0.2:5;y1=1:0.2:3;z1=interp2(x,y,temps,x1,y1,cubic);mesh(x1,y1,z1)title(双三次插值温度分布图双三次插值温度分布图)%画出插值后的温度分布曲面图画出插值后的温
13、度分布曲面图. 2以平滑数据以平滑数据,在在 x、y方向上每隔方向上每隔0.2个单位的地方进行插值个单位的地方进行插值.注:注:surf(xi,yi,zi)title(双三次插值温度分布图双三次插值温度分布图)%画出插值后的温度分布曲面图画出插值后的温度分布曲面图. 二、针对于插值节点为散乱节点的二维插值二、针对于插值节点为散乱节点的二维插值 例例 在某海域测得一些点在某海域测得一些点( (x, ,y) )处的水深处的水深z由下表由下表给出,船的吃水深度为给出,船的吃水深度为5 5英尺,在矩形区域(英尺,在矩形区域(7575,200200)(-50-50,150150)里的哪些地方船要避免进入
14、)里的哪些地方船要避免进入 插值函数插值函数griddata格式为格式为: cz =griddata(x,y,z,cx,cy,method)用用MATLAB作散点数据的插值计算作散点数据的插值计算要求要求cx取行向量,取行向量,cy取为列向量取为列向量被插值点插值方法插值节点被插值点的函数值nearest最邻近插值最邻近插值linear 双线性插值双线性插值cubic 双三次插值双三次插值v4- MATLAB提供的插值方法提供的插值方法缺省时缺省时, , 双线性插值双线性插值 例例 在某海域测得一些点在某海域测得一些点( (x, ,y) )处的水深处的水深z由下表由下表给出,船的吃水深度为给出
15、,船的吃水深度为5 5英尺,在矩形区域(英尺,在矩形区域(7575,200200)(-50-50,150150)里的哪些地方船要避免进入)里的哪些地方船要避免进入返回返回4.作出水深小于作出水深小于5的海域范围的海域范围,即即z=5的等高线的等高线.2.在矩形区域在矩形区域(75,200)(-50,150)进行插值。进行插值。 1.输入插值基点数据输入插值基点数据 3. 作海底曲面图作海底曲面图 %程序一:插值并作海底曲面图程序一:插值并作海底曲面图 x =129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0
16、162.0 117.5 ;y = 7.5 141.5 23.0 147.0 22.5 137.5 85.5 -6.5 -81 3.0 56.5 -66.5 84.0 -33.5 ;z = 4 8 6 8 6 8 8 9 9 8 8 9 4 9 ;x1=75:1:200;y1=-50:1:150;z1=griddata(x,y,z,x1,y1,v4);meshc(x1,y1,z1) %meshc命令在三维图形下方绘制命令在三维图形下方绘制等值线等值线海底曲面图海底曲面图%程序二:作出水深小于程序二:作出水深小于5 5的海域范围。的海域范围。z1(z1=5)=nan; %将水深大于将水深大于5的置为的置为nan,这,这样绘图就不会显示出来样绘图就不会显示出来meshc(x1,y1,z1) 水深小于水
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专业广告制作服务协议模板
- 2024年中医医院工会会员权益保障协议版B版
- 2024年出租车租赁与服务协议范本版
- 二零二四年度化工厂病虫害防治服务合同2篇
- 2024年公司股权转让专项合同版
- 2024年升级版房产租赁协议样式版B版
- 2024年个人保密协议协议模板版B版
- 2024专业矿山中介服务协议模板版
- 2024年度销售代理合同区域产品销售代理权授予3篇
- 2024年专属三方借款合同范本版B版
- 班组管理论文
- 贵州省黔南州2023-2024学年九年级上学期期末考试英语试题(含答案)
- 吃早餐的重要性课件
- 计算机视觉与图像处理技术
- 危险化学品岗位安全操作规程
- 中国体育发展史-奥运情节
- 再保险案例课件
- 中医消化中心建设方案
- 雄安新区规划展馆
- 30道医院放射科医生岗位高频面试问题附考察点及参考回答
- 开封的导游词
评论
0/150
提交评论