第七章 数据处理.doc

上传人:cn****1 文档编号:551600982 上传时间:2023-10-12 格式:DOC 页数:33 大小:1.14MB
返回 下载 相关 举报
第七章 数据处理.doc_第1页
第1页 / 共33页
第七章 数据处理.doc_第2页
第2页 / 共33页
第七章 数据处理.doc_第3页
第3页 / 共33页
第七章 数据处理.doc_第4页
第4页 / 共33页
第七章 数据处理.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第七章 数据处理.doc》由会员分享,可在线阅读,更多相关《第七章 数据处理.doc(33页珍藏版)》请在金锄头文库上搜索。

1、第七章 数据处理及应用【教学目的】:本章着重介绍数据的插值、拟合与多元回归分析,并利用Matlab相应工具结合具体案例进行分析。【教学重点难点】:教学重点:插值与拟合,回归分析,聚类与分类。教学难点:定性与定量的结合,如何在定性分析基础上给出适当的定量关系。【课时安排】:8学时【教学方法】:采用多媒体教学手段,配合实例教学法,通过对典型例题的讲解启发学生思维,并给与学生适当的课后思考讨论的时间,加深知识掌握的程度。安排一定课时的上机操作。【教学内容】:7.1数据插值与拟合在工程和科学实验中,当研究对象的机理不清楚的时候,经常需要从一组实验观测数据 (xi , yi ) (i = 1, 2, ,

2、 n)中寻找自变量x与因变量y之间的某种函数关系 y = f(x)。比如测量了人的身高和体重的一些数据,要确定两者的函数关系,但身高与体重的机理我们不清楚,所以寻找尽量吻合这组测量数据的近似函数模型就很重要了。函数 f(x) 的产生办法因观测数据与要求的不同而异,通常可采用数据插值与数据拟合的方法。7.1.1数据插值1.插值问题的描述对给定的一组测量数据,要确定通过所有这些数据点的曲线或曲面的问题就是插值问题。对一维插值问题可以这样描述:设f(x)在区间a, b上连续,x0,x1,xn为 a, b上n+1个互不相同的点,且已知f(x)的一组实验观测数据 (xi , yi ) (i = 1, 2

3、, , n),要求一个性质优良、便于计算的近似函数j(x),使得,i =0,1,n (7.1)成立,这就是一维插值问题。其中称a, b为插值区间,点x0,x1,xn为插值节点,函数j(x)为插值函数,f(x)为被插值函数,式(1)为插值条件。求插值函数j(x)的方法称为插值法。关于高维插值可类似定义,本节只介绍一维和二维插值。 2.基本插值方法简介 插值函数的取法很多,可以是代数多项式,也可以是三角多项式或有理函数;可以是a, b上任意光滑函数,也可以是分段光滑函数。对一维插值,最常用最基本的插值方法有:分段多项式插值与三次样条插值;二维插值根据数据分布规律可分为网格节点插值和散乱数据插值,相

4、应的方法有双三次样条插值方法和改进的Shepard方法。具体的方法原理请参阅计算方法的专业书籍,这里不再详细介绍。下面我们着重介绍Matlab中如何实现数据插值。3.插值方法的Matlab实现一维数据插值MATLAB中用函数interp1()来处理一维数据插值,它提供了四种插值方法供选择:线性插值、三次样条插值、三次插值和最临近插值。命令 interp1格式 yi = interp1(x, y, xi, method) %对被插值节点xi, 用method方法进行插值.说明 (1).输入参数说明:x,y为插值节点,均为向量;xi为任取的被插值点,可以是一个数值,也可以是一个向量;yi为被插值点

5、xi处的插值结果;(2).其中method是选用的插值方法,具体有: nearest表示最临近插值linear表示线性插值,默认 cubic表示三次插值 spline表示三次样条函数插值注意上述method中所有的插值方法都要求x是单调的,并且xi不能超过x的取值范围, 其中最后一种插值的曲线比较平滑; (3)三次样条插值函数的调用格式有两种等价格式: yi = interp1(x, y, xi, spline) yi = spline(x, y, xi)例1:下表给出了12名成年女子的身高与腿长的测量数据:身高143145146149153155156157158159162164腿长888

6、588929396989796987072试研究身高与腿长的关系,并给出身高为148、150、160时腿长的预测值。解:在matlab中输入代码:x=143145146149153155156157158159162164; %插值节点y=888588929396989796987072; x1=143:0.2:164; %被插值节点,用于确定插值函数.plot(x,y,o);hold on %原始测量数据散点图.y1=interp1(x,y,x1,spline); %求被插值节点处的函数值.yp=interp1(x,y,148 150 160,spline) %求身高为148、150、160

7、时腿长.plot(x1,y1,x,y,r:) %画出插值函数图形及测量数据的折线图.xlabel(身高),ylabel(腿长) %加坐标轴标签输出结果为:yp = 91.4561 92.1942 99.4787 %对应身高的腿长输出图形见图7.1:图7.1注意:1).matlab只会给出被插值节点处的函数值,而不会给出具体的函数解析表达式,这有点类似于我们求微分方程的数值解。需要求点对应的插值(未知的),可以将被插值节点放在xi中;2).图7.1中有三条曲线,其中圆圈点是原始测量数据点(横坐标为插值节点),实线是插值函数图形,虚线是插值节点间的连接折线段。二维数据插值针对二维插值中的插值基点为

8、网格节点和散乱节点,MATLAB中分别提供了函数interp2()和griddata()来进行二维插值。先介绍规则区域上给定数据有规律分布的二维插值。命令 interp2格式 zi = interp2(x, y, z, xi, yi, method) %针对网格节点的二维插值.说明 (1).输入参数说明:x,y,z为插值节点,其中x和y是自变量,x是m维向量,指明数据网格的横坐标,y是n维向量,指明数据网格的纵坐标,z是阶矩阵,表示相应于网格点的函数值;zi 为被插值点 (xi, yi) 处的插值结果;(2).其中method是选用的插值方法,具体有: nearest表示最临近插值linear

9、表示双线性插值,默认 cubic表示双三次插值 spline表示双三次样条函数插值注意上述method中所有的插值方法都要求x和y是单调的网格,x和y可以是等距的也可以是不等距的。xi和yi应是方向不同的向量,即一个是行向量,另一个是列向量。几种方法中最后一种插值的曲面比较平滑。例2:已知在某山区测得一些地点的高程如下表。其平面区域为,试用不同的插值方法作出该山区的地貌图。 x y120016002000240028003200360040001200113012501280123074090050070016001320145014201400130070090085020001390150

10、01500140090017076095024001500120017013501450120011507728001500120017015501600155013807703200150015501600155016001600160015503600148015001550157143013001200980解:输入程序代码:x=1200:400:4000;y=1200:400:3600;z=1130 12501280 1230740 900500 700132014501420 14001300 700900 850139015001500 1400900 170760 9501500

11、1200170 13501450 12001150 7715001200170 15501600 15501380 770150015501600 15501600 16001600 1550148015001550 1571430 13001200 980;%原始数据的山区地貌图figure(1)meshz(x,y,z)xlabel(X),ylabel(Y),zlabel(Z)title(原始数据地貌图)%为平滑曲面,加密网格x1=1200:50:4000;y1=1200:50:3600;%最临近插值figure(2)zn=interp2(x,y,z,x1,y1,nearest);surfc

12、(x1,y1,zn)xlabel(X),ylabel(Y),zlabel(Z)title(最临近插值地貌图)%双线性插值figure(3)zl=interp2(x,y,z,x1,y1,linear);surfc(x1,y1,zl)xlabel(X),ylabel(Y),zlabel(Z)title(双线性插值地貌图)%双三次插值figure(4)zc=interp2(x,y,z,x1,y1,cubic);surfc(x1,y1,zc)xlabel(X),ylabel(Y),zlabel(Z)title(双三次插值地貌图)%双三次样条函数插值figure(5)zs=interp2(x,y,z,x

13、1,y1,spline);surfc(x1,y1,zs)xlabel(X),ylabel(Y),zlabel(Z)title(双三次样条函数插值地貌图)输出可视化图形分别见图7.2图7.6: 图7.2 图7.3 图7.4 图7.5图7.6从图形可以看出,原始数据地貌图是很粗糙的,因为测量点比较少。几种插值方法中最临近插值和双线性插值效果较差,而最后一种插值的曲面比较平滑,效果较好。如果给定的数据是在规则区域上的散乱数据或随机分布的数据,即数据不是在网格上取的,则可用函数griddata()来解决二维插值问题。命令 griddata格式 zi =griddata(x, y, z, xi, yi, method) %针对散乱数据的二维插值.说明 (1).输入参数说明:x,y,z都是n维向量,分别指明所给插值节点的横坐标、纵坐标和z坐标;zi 为被插值点 (xi, yi) 处的插值结果;xi和yi应是方向不同的向量,即一个是行向量,另一个是列向量;(2).其中method是选用的插值方法,具体有:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号