matlab学习资料:第四章 matlab数据分析_第1页
matlab学习资料:第四章 matlab数据分析_第2页
matlab学习资料:第四章 matlab数据分析_第3页
matlab学习资料:第四章 matlab数据分析_第4页
matlab学习资料:第四章 matlab数据分析_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第四章 MATLAB数据分析,数据统计处理 数据插值 曲线拟合,1.数据统计处理,基础统计分析函数,当这些参数的输入参数是一维数组时,则以该一维数组为数据集进行统计计算。若输入参数是二维数组时,则以二维数组每一列为一个数据集分别进行统计分析。,1.数据统计处理,例 基础数据统计分析,A=randn(100,5); mx,mxrow=max(A) %求各列数据的最大值和所在行号 运行结果: mx= 2.3672 1.8705 2.6903 2.1704 2.7316 mxrow=82 39 93 67 56 mmx=max(A(:) %求所有数据的总体最大值 运行结果: mmx=2.7316

2、mx2=max(A(:,2) %求第二列数据最大值 m2x=max(A(2,:) %求第二行数据(5个数)的最大值,其他函数与此类似。,1.数据统计处理,设X是一个向量,A是一个矩阵,函数的调用格式为: sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,以二维数组的每一列为一个数据集进行求和。 sum(A,dim):当dim为1时,对列求和,与sum(A)相同;当dim为2时,对行求和。,求和与求积,1.数据统计处理,B=randn(2,5); sum(B) ans = -0.8317 -1.9851 0.1020 1.6615 2.

3、2484 sum(B,1) ans = -0.8317 -1.9851 0.1020 1.6615 2.2484 sum(B,2) ans = -1.3683 2.5635,例 矩阵求和,1.数据统计处理,累计和,cumsum(x) 返回x中元素累计和的向量,即第2个元素是x 中前2个元素之和,以此类推。 cumsum(A) 返回一个与A同样大小的矩阵,他的列是A中 列的累计和。 cumsum(A,dim) 给出A中dim维累计和。,1.数据统计处理, B B = -1.4440 -1.3235 -0.1461 -0.0766 1.6220 0.6123 -0.6616 0.2481 1.73

4、82 0.6264 cumsum(B) ans = -1.4440 -1.3235 -0.1461 -0.0766 1.6220 -0.8317 -1.9851 0.1020 1.6615 2.2484 cumsum(B,2) ans = -1.4440 -2.7675 -2.9136 -2.9903 -1.3683 0.6123 -0.0492 0.1988 1.9370 2.5635,1.数据统计处理,corrcoef(X):返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一个变量,然后求它们的相关系数。 corrcoef(X,Y):在这里,X,Y

5、是向量,它们与corrcoef(X,Y)的作用一样。,相关系数,2.数据插值,科研或工程中,常有这样的问题:给一批数据点,需确定满足特定要求的曲线或曲面。如果要求所求曲线(面)通过所给所以数据点,这就是插值问题。 当数据较多,插值函数是一个次数很高的函数,比较复杂,同时,给定的数据一般是由观察测量所得,往往带有随机误差,因而,求曲线(面)通过所有数据点就既不现实也不必要。如果不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,可得到更简单实用的近似函数,这就是数据拟合。,2.数据插值,x,y数据点的横纵坐标,x必须单调 cx需要插值的横坐标数据(或数组), cx不能超出x的范围

6、method可选参数,一维插值,2.数据插值,例:在12h内,每隔1h测量一次温度,温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。每隔1/10h估计一次温度值。,hours=1:12; temps=5 8 9 15 25 29 31 30 22 25 27 24; h=1:.1:12; t=interp1(hours,temps,h,spline); plot(hours,temps,+,h,t,hours,temps,r) xlabel(Hour),ylabel(Degrees),2.数据插值,1.插值基点为网格节点 cz=interp2(x,y,z,cx,c

7、y,method),x,y自变量,x,y必须单调递增 cx,cy给定网格点的横坐标、纵坐标数据(或数组),一个行向量,一个列向量 Z是mn维矩阵 method可选参数,Nearest:最邻近点插值 Linear:线性插值 Spline:三次样条插值 cubic :三次插值,二维插值,2.数据插值,2.插值基点为散乱节点 cz=griddata(x,y,z,cx,cy,method),x,y自变量,x,y必须单调递增 cx,cy给定节点的横坐标、纵坐标数据(或数组),一个行向量,一个列向量 Z是mn维矩阵 method可选参数,Nearest:最邻近点插值 Linear:线性插值 V4:MATL

8、AB提供的方法 cubic :三次插值,二维插值,2.数据插值,例:测得平板53网格点处的温度依次为: 82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 作出平板表面温度分布曲面。,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),2.数据插值,xi=1:.2:5; yi=1:.2:3; zi=interp2(x,y,temps,xi,yi,cubic); mesh(xi,yi,zi),2.数据插值,例:在某海域测得一些点(x,y)处的水深z

9、,由下表给出,在矩形区域(75,200)(50,150)内画出海底曲面的图形。,x=129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5; y=7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5; z=-1*4 8 6 8 6 8 8 9 9 8 89 4 9; cx=75:.5:200; cy=-50:.5:150; cz=griddata(x,y,z,cx,cy,cubic); meshz(cx,cy,cz),当插值点落在已知数据集外面时,

10、叫外插,一般对此些点赋值为NaN或0.,2.数据插值,2.数据插值,某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度()。,练习,3.曲线拟合,(1). 多项式曲线拟合: polyfit.,y0=polyval(p, x0),p=polyfit(x,y,m),其中, x, y为已知数据点向量, 分别表示横,纵坐标, m为拟合多项式的次数, 结果返回m次拟合多项式系数, 从高次到低次存放在向量p中.,可求得多项式在x0处的值y0.,用matlab进行数据拟合,3.曲线拟合,例1 已知观测数据

11、点如表所示,分别用3次和6次多项式曲线拟合这些数据点.,x=0:0.1:1 y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2 plot(x,y,k.,markersize,25) axis(0 1.3 -2 16) p3=polyfit(x,y,3) p6=polyfit(x,y,6),编写Matlab程序如下:,3.曲线拟合,t=0:0.1:1.2; s=polyval(p3,t); s1=polyval(p6,t); hold on plot(t,s,r-,linewidth,2) plot(t,s,b-,linewidt

12、h,2) grid,x=0:0.1:1; y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2; plot(x,y,k.,markersize,25); axis(0 1.3 -2 16); p3=polyfit(x,y,3); p6=polyfit(x,y,6);,3次和6次效果一样,所以曲线重合在一起了。,3.曲线拟合,例2 一个15.4cm30.48cm的混凝土柱在加压实验中的应力-应变关系测试点的数据如表所示,1.55,2.47,2. 93,3. 03,已知应力-应变关系可以用一条指数曲线来描述, 即假设,式中, 表示应力

13、, 单位是 N/m2; 表示应变.,2.89,3.曲线拟合,已知应力-应变关系可以用一条指数曲线来描述, 即假设,式中, 表示应力, 单位是 N/m2; 表示应变.,解 选取指数函数作拟合时, 在拟合前需作变量代换,化为 k1, k2 的线性函数.,于是,令,即,3.曲线拟合,在命令窗口输入:,x=500*1.0e-6 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6 y=3.103*1.0e+3 2.465*1.0e+3 1.953*1.0e+3 1.517*1.0e+3 1.219*1.0e+3 z=log(y) a=polyfit(x,z,1

14、) k1=exp(8.3009) w=1.55 2.47 2.93 3.03 2.89 plot(x,w,*),y1=exp(8.3009)*x.*exp( -494.5209*x),plot(x,w,*,x,y1,r-),3.曲线拟合,在实际应用中常见的拟合曲线有:,直线,多项式,一般 n=2, 3, 不宜过高.,双曲线(一支),指数曲线,3.曲线拟合,(2). 非线性曲线拟合: lsqcurvefit.,功能:,x=lsqcurvefit(fun, x0, xdata, ydata),x, resnorm=lsqcurvefit(fun, x0, xdata, ydata),根据给定的数据

15、 xdata, ydata (对应点的横, 纵坐标), 按函数文件 fun 给定的函数, 以x0为初值作最小二乘拟合, 返回函数 fun中的系数向量x和残差的平方和resnorm.,3.曲线拟合,例4 已知观测数据点如表所示,求三个参数 a, b, c的值, 使得曲线 f(x)=aex+bx2+cx3 与已知数据点在最小二乘意义上充分接近.,首先编写存储拟合函数的函数文件.,function f=nihehanshu(x,xdata) f=x(1)*exp(xdata)+x(2)*xdata.2+x(3)*xdata.3,保存为文件 nihehanshu.m,3.曲线拟合,编写下面的程序调用拟

16、合函数.,xdata=0:0.1:1; ydata=3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17; x0=0,0,0; x,resnorm=lsqcurvefit(nihehanshu,x0,xdata,ydata),程序运行后显示,x = 3.0022 4.0304 0.9404,resnorm = 0.0912,3.曲线拟合,说明: 最小二乘意义上的最佳拟合函数为,f(x)= 3ex+ 4.03x2 + 0.94 x3.,此时的残差是: 0.0912.,3.曲线拟合,曲线拟合还可以通过工具箱实现。,打开曲线拟合工具界面 通过cftool命令打开曲线拟合工具界面,3.曲线拟合,5个命令按钮,Data按钮:可输出、查看和平滑数据; Fitting按钮:可拟合数据、比较拟合曲线和数据集; Exclude按钮:可以从拟合曲线中排除特殊的数据点; Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论