第三讲数据处理与程序设计

上传人:豆浆 文档编号:7137790 上传时间:2017-09-01 格式:PDF 页数:53 大小:530.38KB
返回 下载 相关 举报
第三讲数据处理与程序设计_第1页
第1页 / 共53页
第三讲数据处理与程序设计_第2页
第2页 / 共53页
第三讲数据处理与程序设计_第3页
第3页 / 共53页
第三讲数据处理与程序设计_第4页
第4页 / 共53页
第三讲数据处理与程序设计_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第三讲数据处理与程序设计》由会员分享,可在线阅读,更多相关《第三讲数据处理与程序设计(53页珍藏版)》请在金锄头文库上搜索。

1、第三讲 Matlab数据处理及程序设计Matlab在工程及数据处理中的应用第三讲内容:nMatlab在数据处理中的应用n Matlab程序设计n操作实例3.1Matlab在数据处理中的应用n插值与拟合n积分与微分n求解方程和方程组n特征值问题n常微分方程的解法n数据分析和统计插值:认为数据是准确的,求取其中描述点之间的数据。3.1.1曲线拟合与插值在分析试验数据时,常常要面临将试验数据作解析描述的任务,这个问题有曲线拟合和插值两种方法。曲线拟合:假定已知曲线的规律,作曲线的最佳逼近,但不需要经过所有的数据点;Matlab中的曲线拟合最小二乘法拟合:误差平方和最小。从一组实验数据(xi,yi)中

2、 寻找出自变量x和因变量y之间的函数关系yf(x)。由于观测数据往往不够准确,因此并不要求yf(x)经过所有的(xi,yi) 点 , 而只要求在给定点xi上 误 差 在数据点的误差平方和最小,且所用的曲线限定为多项式 。曲线的阶数:如果曲线的阶数选择的过小,拟合效果不好;如果曲线的阶数过高,虽然数据点上看到效果好,数据点之间会出现有数据振荡的问题,阶数不宜过高,小于5阶。n曲线拟合:用一个解析函数描述数据(通常是测量值),找出某条光滑曲线,它最佳地拟合数据。matlab函 数 : P=polyfit( x,y,n)x、 y:输入数据,n:曲线的阶数。polyval( P,xi) x=0 .1

3、.2 .3 .4 .5 .6 .7 .8 .9 1; y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; n=2; % polynomial order p=polyfit(x, y, n)p =-9.8108 20.1293 -0.0317 y = 9.8108x2 20.1293x 0.0317 xi=linspace(0, 1, 100); % x-axis data for plotting z=polyval(p, xi); plot(x, y, o , x, y, xi, z, : ) xlabel( x ), y

4、label( y=f(x) ), title( Second Order Curve Fitting )振荡现象,例程nihe.m例 : 最小二乘法曲线拟合应正确运用!Matlab中的插值插值:对数据点之间函数的估值方法,这些数据点是由某些集合给定。当人们不能很快地求出所需中间点的函数值时,插值是一个有价值的工具。matlab常用插值方法:Lagrange插值、分段线性插值、Hermite插值、三次样条插值等。一维插值、二维插值、三维插值。高阶多项式插值易出现病态问题,三次样条使用分段多项式,各点上的三次导数相等。它光滑、导数连续。样条函数可以给出光滑的插值曲线或曲面,因此在数值逼近、常微分方

5、程和偏微分方程的数值解及科学和工程的计算中起到重要作用。插值nLagrange插值对给定的n个插值节点x1、x2、 、xn及对应的函数值y1、y2、 、yn,可利用(n-1)次 Lagrange插值多项式公式。对插值区间内任意x的函数值y可以通过以下式求得:有时存在发散的问题.例程largrzd.mn 分 段 插值yi=interp1(x,y,xi,method)method可 取 nearest、 linearspline、 cubic。 默 认为linearn 例 : 取 n=10, 用 分 段 插值法进行插值计算x=-5:1:5y=1./(1+x.2);x0=-5:0.1:5;y1=1.

6、/(1+x0.2);plot(x0,y1,-b)hold ony2=interp1(x,y,x0);plot(x0,y2,*m) = = nknkjj jkjk xxxxyxy1 1)(0 1 2 3 4 5 6 7-1-0.500.51xsin(x)Linear Interpolation线 性 插值精度稍差,但不会出现不收敛的现象,在科研和工程计算中应用广泛.-505-505-501-500.5-500-499.5-499-498.5【 例 】 二 维 插值:假设有一组海底深度测量数据,采用插值方式绘制海底形状图。(1)randn(state,2)x=-5:5;y=-5:5; %10个点X

7、,Y=meshgrid(x,y);zz=1.2*exp(-(X-1).2+(Y-2).2)-0.7*exp(-(X+2).2+(Y+1).2);Z=-500+zz+randn(size(X)*0.05;surf(X,Y,Z);view(-25,25) ( 2)xi=linspace(-5,5,50); %分成50个点yi=linspace(-5,5,50);XI,YI=meshgrid(xi,yi);ZI=interp2(X,Y,Z,XI,YI,*cubic);surf(XI,YI,ZI),view(-25,25)例程chazhi.m高阶多项式插值易出现病态问题,三次样条使用分段多项式,各点上

8、的三次导数相等。它光滑、导数连续。样条插值Matlab函 数 : yi=spline(x,y,xi);3.1.2积分与微分n 矩形求积公式元素累积和函数cumsum(x)或 cumsum(X,DIM)n 梯形求积公式trapz(Y)或 trapz(X,Y)n 自 适 应法Simpson求积公式quad(F,a,b)或 quad(F,a,b,tol)n 自 适 应法Cotes求积公式quad8(F,a,b)或 quad8(F,a,b,tol)n 数值的微分计算数组中元素间的差分 diff(F)或 diff(F,N)例 : 求积分1.建立fun.mfunction y=fun(t)y=exp(-0

9、.5*t).*sin(t+pi/6);2.在 Matlab命令窗口中输入d=pi/1000;t=0:d:3*pi;nt=length(t);y=fun(t);sc=cumsum(y)*d;scf=sc(nt)scf0.9016186193z=trapz(y)*dz0.90084027660688 +p p30 5.0 )6/sin( dtte t该 积分精确解为0.9008407878, 后者精度高一些。如 第 一次课介绍的带噪声的实测信号微分描述了函数在一点处的斜率,是函数的微观性质,它对函数的微小变化十分敏感,函数的很小的变化,容易产生相邻点斜率的巨大变化。尽量避免使用数值微分,尤其是试验

10、数据的微分。如果迫切需要,最好先将试验数据进行最小二乘拟合或者三次样条拟合,然后对拟合函数进行微分。实 测 信号图3.1.3求解方程组和方程线性方程组直接解法矩阵除法例:求解下列方程组3x1+4x2+5x3=77x1-x2+2x3=4x1+2x2-7x3=9解 :a=3 4 5;7 -1 2;1 2 -7b=7 4 9x=ab方程解法1.二分法2.非 线 性 方程Newton迭代法Newton迭代公式为:1.建立newton.mfunction y=newton(x0)x1=x0-fc(x0)/df(x0);n=1;while(abs(x1-x0)=1.0e-6)&(nA=-1 1 0;-4

11、3 0;1 0 2;V,D=eig(A)结 果 显示为V =0 0.4082 -0.40820 0.8165 -0.81651.0000 -0.4082 0.4082D =2 0 00 1 00 0 1xAx =物 理 、 力 学 和 工 程 技术中的一些问题,如振动问题和稳定性问题,常归结为求一个矩阵的特征值和特征向量。3.1.5求解常微分方程例:用R-K方法求解解:1.建立函数文件fun.mfunction f=fun(x,y)f=-2*y+2*x.2+2*x;2.在 Matlab窗口中输入:x,y=ode23(fun,0,0.5,1);plot(x,y,-o)xxyy 222 2 +=

12、1)0(),5.00( = yx常微分方程数值解用逐步积分方法实现,Runge-Kutta法是应用最多的微分方程数值解的方法。两种Runge-Kutta法 函 数 :t,x=ode23(xfun,t0 tf,x0,tol)t,x=ode45(xfun,t0 tf,x0,tol)输入变量t0、 tf为积分的起始和中止时间,单位是秒。y0为初始状态。tol控 制 结 果 的精度,可以缺省。一般来说,ode45比ode23运 算 速 度 快一些。初值的影响3.1.6数据分析和统计由于MATLAB面 向 矩阵,所以它很容易对数据集合进行统计分析。按规定,数据集存储在面向列的矩阵里。也就是,一个矩阵的每

13、一列代表不同的被测变量,每一行代表各个样本或观察值。统计量的数字特征:简单数学期望和均值、数据比较、累积和累和、方差和标准差、偏斜度和峰度、协方差和相关系数、协方差矩阵统计图:直方图、角度扇形图、正态分布图、显示数据采样的盒图等。统计分布的数字特征:期望和方差、概率密度函数、分布函数、逆分布函数和随机数的产生求和最大值和最小值差 分和梯度乘积n 统计命令平均值、中值、标准差排 序n 统计频数直方图和棒图n图表Fourier分析n在函数逼近中,当函数为周期函数时,显然用三角多项式逼近比用代数多项式更合适,这时引入Fourier逼近和快速Fourier变 化 。它 是 一 种有效算法,在信号处理中

14、应用很广。例程fftest.mfiltery=filter(b,a,x)a,b:滤波器的分子分母,x输入a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + . + b(nb+1)*x(n-nb) - a(2)*y(n-1) - . - a(na+1)*y(n-na)buttermatlab信号滤波函数3.2 Matlab程序设计3.2.1程序设计概述nMatlab程序设计特点:q控制流的程序设计;q以m为扩展名的M文件;q语言简单、可读性强、调试容易、调用方便。nM文件简介q实现指令的命令集文件q命令式和函数式n命令的简单叠加,Matlab就 会自动按顺序执行文件中的命

15、令。n用以解决参数传递和函数调用的问题,以function语句引导。M文件的建立、编辑和运行第一步:新建M文件;第二步:编辑M文件;第三步:运行M文件。File - New - Script 输入Matlab命令、循环、函数等。保存文件,在Command窗口输入文件名。在 word文件中编辑和运行程序第一步:在Command窗口输入如下命令notebook -setup第二步:在word文 档 中 编 辑 文件程序和文本混合编辑第三步:确定Matlab脚 本 文件Word菜 单 - notebook - Define input cell notebook (打开一个word文 档 )第 四 步 : 运 行文件Word菜 单 - notebook - Evaluate cell q 常 量 和 变量q数据类型q程序结构q程序流控制语句q函数调用的方法和技巧3.2.2 M

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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