ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:157.64KB ,
资源ID:10327098      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10327098.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(插值拟合与MATLAB编程.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

插值拟合与MATLAB编程.docx

1、插值拟合与MATLAB编程插值、拟合与MATLAB编程相关知识在生产和科学实验中,自变量与因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。当要求知道其它点的函数值时,需要估计函数值在该点的值。为了完成这样的任务,需要构造一个比较简单的函数,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数有很多方法。根据测量数据的类型有以下两类处理观测数据的方法。(1)测量值是准确的,没有误差,一般用插值。(2)测量值与真实值有误差,一般用曲线拟合。在MATLAB中,无论是插值还是拟合,都有相应的函数来处理

2、。一、插 值1、一维插值:已知离散点上的数据集,即已知在点集X=上的函数值Y=,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。MATLAB命令:yi=interp1(X, Y, xi, method)该命令用指定的算法找出一个一元函数,然后以给出处的值。xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一:nearest:最近邻点插值,直接完成计算; spline:三次样条函数插值;linear:线性插值(缺省方式),直接完成计算; cubic:三次函数插值;对于minxi,maxxi外的值,MATLAB使用外推

3、的方法计算数值。例1:已知某产品从1900年到2010年每隔10年的产量为:75.995, 91.972, 105.711, 123.203, 131.699, 150.697, 179.323, 203.212, 226.505, 249.633, 256.344, 267.893,计算出1995年的产量,用三次样条插值的方法,画出每隔一年的插值曲线图形,同时将原始的数据画在同一图上。解:程序如下year=1900:10:2010;product=75.995, 91.972, 105.711, 123.203, 131.699, 150.697, 179.323, 203.212, 226

4、.505, 249.633, 256.344, 267.893p1995=interp1(year,product,1995) x=1900:2010;y=interp1(year,product,x,cubic);plot(year,product,o,x,y);计算结果为:p1995=252.9885。2、二维插值已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲面)通过这些点,并能够求出这些已知点以外的点的函数值,这一过程称为二维插值。MATLAB函数:Zi=interp2(X,Y,Z,Xi,Yi,method)该命令用指定的算法找出一个二元函数,然后以给出处的

5、值。返回数据矩阵,Xi,Yi是向量,且必须单调,和meshgrid(Xi,Yi)是同类型的。method可以下列方法之一:nearest:最近邻点插值,直接完成计算; spline:三次样条函数插值;linear:线性插值(缺省方式),直接完成计算; cubic:三次函数插值;例2:已知1950年到1990年间每隔10年,服务年限从10年到30年每隔10年的劳动报酬表如下:表:某企业工作人员的月平均工资(元)服务年限年份1020301950150.697169.592187.6521960179.323195.072250.2871970203.212239.092322.7671980226

6、.505273.706426.7301990249.633370.281598.243试计算1975年时,15年工龄的工作人员平均工资。解:程序如下:years=1950:10:1990;service=10:10:30;wage=150.697 169.592 187.652 179.323 195.072 250.287 203.212 239.092 322.767 226.505 273.706 426.730249.633 370.281 598.243;mesh(service,years,wage) %绘原始数据图w=interp2(service,years,wage,15,1

7、975); %求点(15,1975)处的值计算结果为:235.6288例3:设有数据x=1,2,3,4,5,6,y=1,2,3,4,在由x,y构成的网格上,数据为:12,10,11,11,13,1516,22,28,35,27,2018,21,26,32,28,2520,25,30,33,32,20求通过这些点的插值曲面。解:程序为:x=1:6;y=1:4;t=12,10,11,11,13,15 16,22,28,35,27,20 18,21,26,32,28,25; 20,25,30,33,32,20subplot(1,2,1)mesh(x,y,t)x1=1:0.1:6;y1=1:0.1:4

8、;x2,y2=meshgrid(x1,y1);t1=interp2(x,y,t,x2,y2,cubic);subplot(1,2,2)mesh(x1,y1,t1);结果如右图。作业:已知某处山区地形选点测量坐标数据为:x=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 y=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 海拔高度数据为: z=89 90 87 85 92 91 96 93 90 87 82 92 96 98 99 95 91 89 86 84 82 84 96 98 95 92 90 88 85 84 83 81 85 80 81 8

9、2 89 95 96 93 92 89 86 86 82 85 87 98 99 96 97 88 85 82 83 82 85 89 94 95 93 92 91 86 84 88 88 92 93 94 95 89 87 86 83 81 92 92 96 97 98 96 93 95 84 82 81 84 85 85 81 82 80 80 81 85 90 93 95 84 86 81 98 99 98 97 96 95 84 87 80 81 85 82 83 84 87 90 95 86 88 80 82 81 84 85 86 83 82 81 80 82 87 88 89 9

10、8 99 97 96 98 94 92 871、画出原始数据图;2、画出加密后的地貌图,并在图中标出原始数据。二、拟合曲线拟合已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值,这一过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法,该方法是寻找函数使得最小。MATLAB函数:p=polyfit(x,y,n) p,s= polyfit(x,y,n) 说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。(见下一函数polyval)多项式曲线求值函数:polyva

11、l( ) 调用格式: y=polyval(p,x) y,DELTA=polyval(p,x,s) 说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。y,DELTA=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。例5:求如下给定数据的拟合曲线,x=0.5,1.0,1.5,2.0,2.5,3.0,y=1.75,2.45,3.81,4.80,7.00,8.60。解:MATLAB程序如下:x=0.5,1.0,1.5,2.

12、0,2.5,3.0;y=1.75,2.45,3.81,4.80,7.00,8.60;p=polyfit(x,y,2)x1=0.5:0.05:3.0;y1=polyval(p,x1);plot(x,y,*r,x1,y1,-b)计算结果为:p =0.5614 0.8287 1.1560此结果表示拟合函数为:,用此函数拟合数据的效果如图所示。例2:由离散数据x0.1.2.3.4.5.6.7.8.91y.3.511.41.61.9.6.4.81.52拟合出多项式。程序: x=0:.1:1; y=.3 .5 1 1.4 1.6 1.9 .6 .4 .8 1.5 2 n=3; p=polyfit(x,y,

13、n) xi=linspace(0,1,100); z=polyval(p,xi); %多项式求值 plot(x,y,o,xi,z,k:,x,y,b) legend(原始数据,3阶曲线) 结果: p =16.7832 -25.7459 10.9802 -0.0035多项式为:16.7832x3-25.7459x2+10.9802x-0.0035曲线拟合图形: 也可由函数给出数据。例3:x=1:20,y=x+3*sin(x)程序: x=1:20; y=x+3*sin(x); p=polyfit(x,y,6) xi=linspace(1,20,100); z=polyval(p,xi); %plot

14、(x,y,o,xi,z,k:,x,y,b) 结果: p =0.0000 -0.0021 0.0505 -0.5971 3.6472 -9.7295 11.3304再用10阶多项式拟合程序:x=1:20; y=x+3*sin(x); p=polyfit(x,y,10) xi=linspace(1,20,100); z=polyval(p,xi); plot(x,y,o,xi,z,k:,x,y,b) 结果:p =Columns 1 through 7 0.0000 -0.0000 0.0004 -0.0114 0.1814 -1.8065 11.2360Columns 8 through 11 -

15、42.0861 88.5907 -92.8155 40.267可用不同阶的多项式来拟合数据,但也不是阶数越高拟合的越好。作业:1已知x=0.1,0.8,1.3,1.9,2.5,3.1,y=1.2,1.6,2.7,2.0,1.3,0.5,利用其中的部分数据,分别用线性函数插值,3次函数插值,求x=2.0处的值。2已知二元函数在点集上的值为,其中,左上角位置表示,右下角位置表示,求该数据集的插值曲面。3已知x=1.2,1.8,2.1,2.4,2.6,3.0,3.3,y=4.85,5.2,5.6,6.2,6.5,7.0,7.5,求对x,y分别进行4,5,6阶多项式拟合的系数,并画出相应的图形。4学习函数interp3(X,Y,Z,V,X1,Y1,Z1,method),对MATLAB提供的flow数据实现三维插值。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1