第七章-数据处理(共33页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第七章-数据处理(共33页).doc》由会员分享,可在线阅读,更多相关《第七章-数据处理(共33页).doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第七章 数据处理及应用【教学目的】:本章着重介绍数据的插值、拟合与多元回归分析,并利用Matlab相应工具结合具体案例进行分析。【教学重点难点】:教学重点:插值与拟合,回归分析,聚类与分类。教学难点:定性与定量的结合,如何在定性分析基础上给出适当的定量关系。【课时安排】:8学时【教学方法】:采用多媒体教学手段,配合实例教学法,通过对典型例题的讲解启发学生思维,并给与学生适当的课后思考讨论的时间,加深知识掌握的程度。安排一定课时的上机操作。【教学内容】:7.1数据插值与拟合在工程和科学实验中,当研究对象的机理不清楚的时候,经常需要从一组实验观测数据 (xi , yi )
2、 (i = 1, 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 , y
3、i ) (i = 1, 2, , 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为任取的被插值点,可以是一个数值,也可以
5、是一个向量;yi为被插值点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名成年女子的身高与腿长的测量数据:身高1431451461491531551561571581
6、59162164腿长888588929396989796987072试研究身高与腿长的关系,并给出身高为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) %求身
7、高为148、150、160时腿长.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
9、表示最临近插值linear表示双线性插值,默认 cubic表示双三次插值 spline表示双三次样条函数插值注意上述method中所有的插值方法都要求x和y是单调的网格,x和y可以是等距的也可以是不等距的。xi和yi应是方向不同的向量,即一个是行向量,另一个是列向量。几种方法中最后一种插值的曲面比较平滑。例2:已知在某山区测得一些地点的高程如下表。其平面区域为,试用不同的插值方法作出该山区的地貌图。 x y12001600200024002800320036004000120011301250128012307409005007001600132014501420140013007009008
10、502000139015001500140090017076095024001500120017013501450120011507728001500120017015501600155013807703200150015501600155016001600160015503600148015001550157143013001200980解:输入程序代码:x=1200:400:4000;y=1200:400:3600;z=1130 12501280 1230740 900500 700132014501420 14001300 700900 850139015001500 1400900 1
11、70760 95015001200170 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,n
12、earest);surfc(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=in
13、terp2(x,y,z,x1,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,
14、y, z, xi, yi, method) %针对散乱数据的二维插值.说明 (1).输入参数说明:x,y,z都是n维向量,分别指明所给插值节点的横坐标、纵坐标和z坐标;zi 为被插值点 (xi, yi) 处的插值结果;xi和yi应是方向不同的向量,即一个是行向量,另一个是列向量;(2).其中method是选用的插值方法,具体有: nearest表示最临近插值linear表示双线性插值,默认 cubic表示双三次插值 v4表示matlab提供的插值方法其中v4方法比较好。针对二维散乱插值问题,在matlab中还提供了两个插值函数:e01sef()和e01sff()。通常两者要配合使用,其调用格式
15、为: fnodes, a, rnw, b, c = e01sef(x, y, z) sz(i, j), ifail =e01sff(x, y, z, rnw, fnodes, sx(i),sy(j)其中: x, y, z 为插值节点, 均为n维向量; sx(i), sy(j) 为被插值节点; sz(i, j)为被插值点(sx(i), sy(j)处的插值结果;其他输出参数涉及插值算法。两个函数中e01sef输出fnodes和rnw为确定插值的参数,它们是e01sff 需要的输入参数,因此两函数需配合使用。例3:在某海域测得一些点(x, y)处的水深 z(单位:英尺),见下表,水深数据是在低潮时测
16、得的。船的吃水深度为 5 英尺,问在矩形区域(75, 200)(-50, 150)内的哪些地方船要避免进入(AMCM 86A题)。x129.0140.073.588.0185.5195.075.5y7.5141.523.0147.022.5137.585.5z4868688x157.577.577.081.0162.0162.0117.5y-6.5-81.03.056.5-66.584.0-33.5z99889491. 基本假设 除了一些散乱的测量数据外,题目没有给出其他信息。为了简化问题,首先给出以下合理假设:(1).所给测量数据是精确可用的;(2).该海域海底是平滑的, 不存在珊瑚礁、水底
17、峡谷、山脊等突变地形。2.问题分析在假设基础上,可以考虑用某种光滑的曲面去拟合逼近已知的数据点或以已知的数据点为基础,利用二维插值方法补充一些点的水深,然后作出海底曲面图和等高线图,并求出水深小于5的海域范围。3.问题求解(1).先作出测量点的分布散点图:输入代码:x=129.0 140.0 73.5 88.0 185.5195.0 75.5 157.5 77.577.0 81.0 162.0 162.0 117.5;y=7.5 141.5 23.0 147.0 22.5 137.5 85.5 -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5;z=-4 8 6 8 6
18、8 8 9 9 88 9 4 9; %相当于以海平面作为xy平面.plot(x,y,o)title(测量数据xy平面分布图)图7.7从图7.7可以直观看出在矩形区域(75, 200)(-50, 150)内测量点是散乱分布的,所以用matlab中的griddata函数作海底二维插值。(2).海底地貌图绘制:xi=75:1:200;yi=-50:1:150;zi=griddata(x,y,z,xi,yi,v4); %用v4方法作散乱数据的二维插值.figure(2)mesh(xi,yi,zi)xlabel(X);ylabel(Y);zlabel(Z);title(海底地貌图)rotate3d %产
19、生可旋转的3D图形.图7.8图7.8给出了在矩形海域(75, 200)(-50, 150)内,海底的地貌图。其中明显有些区域海水深度较浅,不适合船只通过,为了更准确确定吃水深度为5英尺的船只不能进入的海域,下面我们绘出该区域的危险区域的海底地貌图。图7.9(3).危险区域,即水深小于5英尺的海底地貌图:u,v=find(zi-5); %在zi矩阵中找出值大于-5的元素并将坐标存入向量u,v,也就是找出水深小于5英尺的插值点.zzi=zeros(size(zi)-5; %产生一个与zi同型的, 元素均为-5的矩阵.for i=1:length(u) zzi(u(i),v(i)=zi(u(i),v
20、(i); %将zi中值大于-5的元素替换zzi中对应元素.endfigure(3)mesh(xi,yi,zzi) %绘出以z坐标等于-5为基底面的危险区域地貌图.rotate3d xlabel(X);ylabel(Y);zlabel(Z);title(海底危险区域地貌图)图7.9给出了水深小于5英尺的海底区域的地貌图,它可以理解成用z=-5的平面去截图7.8所得上半部分的图形。(4).危险区域平面图:危险区域平面图,即绘制z=5的等高线,代码和等值线图如下:.figure(4)contour(xi,yi,zi,-5,-5,r) %作深度为5的海底等值线图xlabel(X);ylabel(Y)t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 数据处理 33
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内