MALAB数据与多项式计算_第1页
MALAB数据与多项式计算_第2页
MALAB数据与多项式计算_第3页
MALAB数据与多项式计算_第4页
MALAB数据与多项式计算_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第6章MATLAB数据分析与多项式计算本章内容6.1数据统计处理6.2数据插值6.3曲线拟合6.4离散傅立叶变换6.5多项式计算6.1数据统计处理6.1.1最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。1.求向量的最大值和最小值求一个向量X的最大值的函数有两种调用格式,分别是:(1)y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。例6-1求向量x的最大值。命令如下:x=[-43,72,9,16,23,47];y=max(x)%求向量x中的最大值[y,I]=max(x)%求向量x中的最大值及其该元素的位置(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。求向量X的最小值的函数是min(X),用法和max(X)完全相同。2.求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:(1)max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。(2)[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。(3)max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。求最小值的函数是min,其用法和max完全相同。例6-2分别求4×4魔方矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。3.两个向量或矩阵对应元素的比较函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:(1)U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。(2)U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。min函数的用法和max完全相同。例6-3求两个2×3矩阵x,y所有同一位置上的较大元素构成的新矩阵p。6.1.2求和与求积数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。例6-4求矩阵A的每行元素的乘积和全部元素的乘积。6.1.3平均值和中值求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为:mean(X):返回向量X的算术平均值。median(X):返回向量X的中值。mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。median(A):返回一个行向量,其第i个元素是A的第i列的中值。mean(A,dim):当当dim为为1时,该该函数等同同于mean(A);当dim为2时时,返回一一个列向量量,其第i个元素是是A的第i行的算术术平均值。。median(A,dim):当dim为1时时,该函数数等同于median(A);当dim为2时,返回回一个列向向量,其第第i个元素素是A的第第i行的中中值。例6-5分分别求求向量x与与y的平均均值和中值值。6.1.4累加加和与累乘乘积在MATLAB中,,使用cumsum和cumprod函数能方方便地求得得向量和矩矩阵元素的的累加和与与累乘积向向量,函数数的调用格格式为:cumsum(X):返回向向量X累加加和向量。。cumprod(X):返回回向量X累累乘积向量量。cumsum(A)::返回一一个矩阵阵,其第第i列是是A的第第i列的的累加和和向量。。cumprod(A)::返回一个矩矩阵,其第i列是A的第第i列的累乘乘积向量。cumsum(A,dim):当dim为1时时,该函数等等同于cumsum(A);当dim为2时,,返回一个矩矩阵,其第i行是A的第第i行的累加加和向量。cumprod(A,dim):当当dim为1时,该函数数等同于cumprod(A);当当dim为2时,返回一一个向量,其其第i行是A的第i行的的累乘积向量量。例6-6求求X=[413;213;314;345]的累加和及及累乘积。6.1.5标标准方差差与相关系数数1.求标准方方差在MATLAB中,提供供了计算数据据序列的标准准方差的函数数std。对对于向量X,,std(X)返回一个个标准方差。。对于矩阵A,std(A)返回一一个行向量,,它的各个元元素便是矩阵阵A各列或各各行的标准方方差。std函数的一般般调用格式为为:Y=std(A,flag,dim)其中dim取取1或2。当当dim=1时,求各列列元素的标准准方差;当dim=2时时,则求各行行元素的标准准方差。flag取0或或1,当flag=0时时,按σ1所所列公式计算算标准方差,,当flag=1时,按按σ2所列公公式计算标准准方差。缺省省flag=0,dim=1。例6-7对对二维矩阵阵x,从不同同维方向求出出其标准方差差。2.相关系数数MATLAB提供了corrcoef函数,可可以求出数据据的相关系数数矩阵。corrcoef函数的调调用格式为::corrcoef(X):返回从矩矩阵X形成的的一个相关系系数矩阵。它它把矩阵X的的每列作为一一个变量,然然后求它们的的相关系数。。corrcoef(X,Y):在这这里,X,Y是向量,它它们与corrcoef([X,Y])的作用用一样。例6-8生生成满足正正态分布的10×5随机机矩阵,然后后求各列元素素的均值和标标准方差,再再求这5列随随机数据的相相关系数矩阵阵。命令如下:X=randn(10,5);M=mean(X);D=std(X);R=corrcoef(X);6.1.6排排序序MATLAB中中对对向向量量X是是排排序序函函数数是是sort(X),,函函数数返返回回一一个个对对X中中的的元元素素按按升升序序排排列列的的新新向向量量。。sort函函数数也也可可以以对对矩矩阵阵A的的各各列列或或各各行行重重新新排排序序,,其其调调用用格格式式为为::[Y,I]=sort(A,dim)其中中dim指指明明对对A的的列列还还是是行行进进行行排排序序。。若若dim=1,,则则按按列列排排;;若若dim=2,,则则按按行行排排。。Y是是排排序序后后的的矩矩阵阵,,而而I记记录录Y中中的的元元素素在在A中中位位置置。。例6-9对对二维矩矩阵做各各种排序序。6.2数数据据插值6.2.1一一维数数据插值值在MATLAB中,实实现这些些插值的的函数是是interp1,其其调用格格式为::Y1=interp1(X,Y,X1,'method')函数根据据X,Y的值,,计算函函数在X1处的的值。X,Y是是两个等等长的已已知向量量,分别别描述采采样点和和样本值值,X1是一个个向量或或标量,,描述欲欲插值的的点,Y1是一一个与X1等长长的插值值结果。。method是插值值方法,,允许的的取值有有‘linear’、、‘nearest’、‘cubic’、、‘spline’。。注意:X1的取取值范围围不能超超出X的的给定范范围,否否则,会会给出““NaN”错误误。MATLAB中中有一个个专门的的3次样样条插值值函数Y1=spline(X,Y,X1),其其功能及及使用方方法与函函数Y1=interp1(X,Y,X1,‘spline’’)完全全相同。。例6-11某某观测测站测得得某日6:00时至18:00时之之间每隔隔2小时时的室内内外温度度(℃),用3次样条条插值分分别求得得该日室室内外6:30至17:30时之间间每隔2小时各各点的近近似温度度(℃)。设时间变变量h为为一行向向量,温温度变量量t为一一个两列列矩阵,,其中第第一列存存放室内内温度,,第二列列储存室室外温度度。命令令如下::h=6:2:18;t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';XI=6.5:2:17.5YI=interp1(h,t,XI,‘‘spline’)%用用3次次样条条插值值计算算6.2.2二二维维数据据插值值在MATLAB中,,提供供了解解决二二维插插值问问题的的函数数interp2,,其调调用格格式为为:Z1=interp2(X,Y,Z,X1,Y1,'method')其中X,Y是两两个向向量,,分别别描述述两个个参数数的采采样点点,Z是与与参数数采样样点对对应的的函数数值,,X1,Y1是是两个个向量量或标标量,,描述述欲插插值的的点。。Z1是根根据相相应的的插值值方法法得到到的插插值结结果。。method的的取值值与一一维插插值函函数相相同。。X,Y,Z也也可以以是矩矩阵形形式。。同样,X1,Y1的的取值范围围不能超出出X,Y的的给定范围围,否则,,会给出““NaN””错误。例6-13某实实验对一根根长10米米的钢轨进进行热源的的温度传播播测试。用用x表示测测量点0:2.5:10(米米),用h表示测量量时间0:30:60(秒),用T表表示测试所所得各点的的温度(℃℃)。试用用线性插值值求出在一一分钟内每每隔20秒秒、钢轨每每隔1米处处的温度TI。命令如下::x=0:2.5:10;h=[0:30:60]';T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];xi=[0:10];hi=[0:20:60]';TI=interp2(x,h,T,xi,hi);6.3曲曲线拟合合在MATLAB中,,用polyfit函数来求求得最小二二乘拟合多多项式的系系数,再用用polyval函函数按所得得的多项式式计算所给给出的点上上的函数近近似值。polyfit函函数数的的调调用用格格式式为为::[P,S]=polyfit(X,Y,m)函数数根根据据采采样样点点X和和采采样样点点函函数数值值Y,,产产生生一一个个m次次多多项项式式P及及其其在在采采样样点点的的误误差差向向量量S。。其其中中X,Y是是两两个个等等长长的的向向量量,,P是是一一个个长长度度为为m+1的的向向量量,,P的的元元素素为为多多项项式式系系数数。。polyval函数的功功能是按多项项式的系数计计算x点多项项式的值,将将在6.5.3节中详细细介绍。例6-14已已知数据据表[t,y],试求3次拟合多项项式p(t),然后求ti=1.5,2.5,3.5,4.5各点点的函数近似似值。t=[12345];y=[5.543.1128290.7498.4];p=polyfit(t,y,3);ti=[1.5,2.5,3.5,4.5];yi=polyval(p,ti);plot(t,y,'-',ti,yi,'o');gridon6.4离离散傅立叶变变换6.4.1离离散傅立叶叶变换的实现现一维离散傅立立叶变换函数数,其调用格格式与功能为为:(1)fft(X)::返回向量X的离散傅立立叶变换。设设X的长度(即元素个数数)为N,若若N为2的幂幂次,则为以以2为基数的的快速傅立叶叶变换,否则则为运算速度度很慢的非2幂次的算法法。对于矩阵阵X,fft(X)应用用于矩阵的每每一列。(2)fft(X,N):计算N点离散傅立立叶变换。它它限定向量的的长度为N,,若X的长度度小于N,则则不足部分补补上零;若大大于N,则删删去超出N的的那些元素。。对于矩阵X,它同样应应用于矩阵的的每一列,只只是限定了向向量的长度为为N。(3)fft(X,[],dim)或fft(X,N,dim)::这是对于矩矩阵而言的函函数调用格式式,前者的功功能与FFT(X)基本本相同,而后后者则与FFT(X,N)基本相同同。只是当参参数dim=1时,该函函数作用于X的每一列;;当dim=2时,则作作用于X的每每一行。值得一提的是是,当已知给给出的样本数数N0不是2的幂次次时,可以取取一个N使它它大于N0且是2的幂次次,然后利用用函数格式fft(X,N)或fft(X,N,dim)便可进行快快速傅立叶变变换。这样,,计算速度将将大大加快。。相应地,一维维离散傅立叶叶逆变换函数数是ifft。ifft(F)返回回F的一维离离散傅立叶逆逆变换;ifft(F,N)为N点点逆变换;ifft(F,[],dim)或ifft(F,N,dim)则由N或dim确确定逆变换的的点数或操作作方向。例6-15给给定数学学函数x(t)=12sin(2π×10t+π/4)+5cos(2π××40t)取N=128,试对t从从0~1秒采采样,用fft作快速傅傅立叶变换,,绘制相应的的振幅-频率率图。在0~1秒时时间范围内采采样128点点,从而可以以确定采样周周期和采样频频率。由于离离散傅立叶变变换时的下标标应是从0到到N-1,故故在实际应用用时下标应该该前移1。又又考虑到对离离散傅立叶变变换来说,其其振幅|F(k)|是是关于N/2对称的,故故只须使k从从0到N/2即可。程序如下:N=128;%采采样点数T=1;%采采样样时间间终点点t=linspace(0,T,N);%给给出N个采采样时时间ti(I=1:N)x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t);%求求各采采样点点样本本值xdt=t(2)-t(1);%采采样样周期期f=1/dt;%采采样频频率(Hz)X=fft(x);%计计算算x的的快速速傅立立叶变变换XF=X(1:N/2+1);%F(k)=X(k)(k=1:N/2+1)f=f*(0:N/2)/N;%使使频频率轴轴f从从零开开始plot(f,abs(F),'-*')%绘绘制制振幅幅-频频率图图xlabel('Frequency');ylabel('|F(k)|')6.5多多项项式计计算6.5.1多多项项式的的四则则运算算1.多多项式式的加加减运运算2.多多项式式乘法法运算算函数conv(P1,P2)用于于求多多项式式P1和P2的的乘积积。这这里,,P1、P2是是两个个多项项式系系数向向量。。例6-16求求多多项式式x4+8x3-10与多多项式式2x2-x+3的的乘积积。3.多多项式式除法法函数[Q,r]=deconv(P1,P2)用于于对多多项式式P1和P2作作除法法运算算。其其中Q返回回多项项式P1除除以P2的的商式式,r返回回P1除以以P2的余余式。。这里里,Q和r仍是是多项项式系系数向向量。。deconv是是conv的逆逆函数数,即即有P1=conv(P2,Q)+r。例6-17求求多多项式式x4+8x3-10除以以多项项式2x2-x+3的的结果果。6.5.2多多项项式的的导函函数对多项项式求求导数数的函函数是是:p=polyder(P)::求多多项式式P的的导函函数p=polyder(P,Q)::求P·Q的导导函数数[p,q]=polyder(P,Q)::求P/Q的导导函数数,导导函数数的分分子存存入p,分分母存存入q。上述述函函数数中中,,参参数数P,Q是是多多项项式式的的向向量量表表示示,,结结果果p,q也也是是多多项项式式的的向向量量表表示示。。例6-18求求有有理理分分式式的的导导数数。。命令令如如下下::P=[1];Q=[1,0,5];[p,q]=polyder(P,Q)6.5.3多多项项式式的的求求值值MATLAB提提供供了了两两种种求求多多项项式式值值的的函函数数::polyval与与polyvalm,,它它们们的的输输入入参参数数均均为为多多项项式式系系数数向向量量P和和自自变变量量x。。两两者者的的区区别别在在于于前前者者是是代代数数多多项项式式求求值值,,而而后后者者是是矩矩阵阵多多项项式式求求值值。。1..代代数数多多项项式式求求值值polyval函函数数用用来来求求代代数数多多项项式式的的值值,,其其调调用用格格式式为为::Y=polyval(P,x)若x为一一数值,,则求多多项式在在该点的的值;若若x为向向量或矩矩阵,则则对向量量或矩阵阵中的每每个元素素求其多多项式的的值。例6-19已已知多多项式x4+8x3-10,,分别取取x=1.2和和一个2×3矩矩阵为自自变量计计算该多多项式的的值。2.矩阵阵多项式式求值polyvalm函数数用来求求矩阵多多项式的的值,其其调用格格式与polyval相同,,但含义义不同。。polyvalm函函数要求求x为方方阵,它它以方阵

温馨提示

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

评论

0/150

提交评论