第4章 MATLAB的其他函数库_第1页
第4章 MATLAB的其他函数库_第2页
第4章 MATLAB的其他函数库_第3页
第4章 MATLAB的其他函数库_第4页
第4章 MATLAB的其他函数库_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、4.1 数据分析函数库datafun4.1.1 基本的数据分析 1.最大值和最小值 求数据序列最大值的函数是max,调用格式为:(1). max(A):如果A是向量,则返回向量A的最大值。如果A 是矩阵,则返回一个行向量,向量的第i个 元素是矩阵的第i列上 的最大值。(2). Y,U=max(A):Y记录矩阵A每列的最大值,U记录每列最大值的行号。(3).max(A,dim):仅用于矩阵。dim取1或2。取1时该函数和(1)相同;取2时,该函数返回一个列向量,其第i个元素是A 矩阵的第i行上的最大值。例:分别求矩阵中各列和各行元素中的最大值。 求矩阵最小值的函数是min,其用法和max完全相同

2、。1871122354643290454538654 2.平均值和中值求平均值的函数是mean,其调用格式为:(1).mean(A):如果A是一个向量,则返回向量的算数平均值。如果A是一个矩阵,则返回一个行向量,其第i个元素是A 的第i列的算数平均值。(2). mean(A,dim):当dim为1时,同上,按列求平均值,当dim为2时,为按行求平均值。求数据序列中值的函数是median,其用法和mean完全相同。例:分别求向量x=9,4,7,-8,2与y=9,4,7,-8,2,10的平均值和中值。 3.求和与求积数据序列求和的函数是sum,调用格式为:(1).sum(A):如果A是一个向量,则

3、返回向量各元素的和。如果A是一个矩阵,则返回一个行向量,其第i个元素是A 的第i列的元素和。(2). sum(A,dim):当dim为1时,等同于sum(A),当dim为2时,返回一个列向量,其第i个元素是A 的第i行的各元素之和。数据序列求和的函数是prod,其用法和sum完全相同。例:已知 ,求矩阵A的每行元素的乘积和全部元素的乘积 。121110987654321A 4.标准方差 方差描述了一组数据波动的大小,方差越小,数据波动越小。std(标准差):列中N个元素与该列平均值之差的平方和的算术平方根。例:某次射击选拔比赛中小明与小华的10次射击成绩(单位:环)如表所示,试比较两人的成绩。

4、 选手射击成绩表小明74981078787小华761059810956 5.累加和与累加积 所谓累加和或累加积,是指从数据序列的第1个元素开始直到当前元素进行累加或累乘,作为结果序列的当前元素值。矩阵元素求累加和用cumsum函数,其调用格式为:(1).cumsum(A):如果A是一个向量,则返回向量的累加和。如果A 是一个矩阵,则返回一个矩阵,其第i列是A的第i列的累加和向量。(2). cumsum(A,dim):当dim为1时,同上按列累加,当dim为2时,进行按行累加。例:求 的值。1022.221sv4.1.3 用于随机数据分析的函数rand(m,n) :产生0与1之间均匀分布的m行n

5、列随机矩阵,均值为0.5,标准差为0.2887。randn(m,n):产生正态分布的m行n列随机矩阵,均值为0,标准差为1。hist(x,N):直方图命令,N为直方图横坐标的分割数,默认为10。 4.1.4 用于相关分析和傅里叶分析的函数l corrcoef:给出两个同长信号的相关系数。 相关系数用来衡量两组数据之间的线性相关程度。相关系数的绝对值越接近于1,说明两组数据相关程度越高。l cov(x,y):给出x,y的协方差矩阵l conv(x,y):给出x,y的卷积l filter(b,a,x):根据输入信号x和线性系统的特性求输出信号的函数, b/a分别为传函的分子/分母多项式的系数向量。

6、fft(x,N):求时域信号x的N点离散傅里叶变换。ifft(X):傅里叶反变换。 sound(u,s):在音箱中产生u所对应的声音,s为规定重放的速度。 4.2 矩阵的分解与变换matfun 4.2.1 线性方程组的系数矩阵det: (方阵)的行列式rank:矩阵的秩inv:(方阵)的逆矩阵trace:主对角线上元素的和(迹)cond:矩阵的条件数。v 4.2.2 矩阵的分解 矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。通过这些分解方法求解线性方程组的优点是运算速度快,可以节省存储空间。 1.三角分解(lu分解):把任意方阵分解成一个准下三角方阵的一个上三角方阵的乘

7、积。 MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为: L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。 实现LU分解后,线性方程组Ax=b的解x=U(Lb) ,这样可以大大提高运算速度。 2.正交分解(qr分解):把任意nm矩阵分解为一个正交方阵和一个与原矩阵有同样阶数的上三角矩阵的乘积。其调用格式为: Q,R=qr(X):产生一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR。实现QR分解后,线性方程组Ax=b的解x=R(Qb) 3.奇异值分解(svd 分解):把任意nm矩阵分解为三个矩阵的乘积,即

8、两端分别为n和m阶正交方阵,中间为nm阶对角阵,其对角线上的元素为原矩阵的奇异值,阶数取n或m中的较小者。 例:分别用左除运算、求逆运算、LU分解方法求解下列线性方程组。程序如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;ticx1=Ab;tocticx2=inv(A)*btocticL,U=lu(A);x3=U(Lb);tocx1=x1x2=x2x3=x304662975135243214324214321xxxxxxxxxxxxxxElapsed time is 0.047000 seconds.Elapsed time is 0

9、.016000 seconds.Elapsed time is 0.000000 seconds.x1 = -66.5556 25.6667 -18.7778 26.5556x2 = -66.5556 25.6667 -18.7778 26.5556x3 = -66.5556 25.6667 -18.7778 26.5556 4.2.3 矩阵的特征值分析e,r=eig(a):求方阵a的特征值r和特征向量e。 4.3 多项式函数库polyfun4.3.1 多项式的四则运算 在MATLAB中,多项式的运算转换为系数向量的运算,n次多项式:用一个长度为n+1的行向量表示,即为012211.)(axa

10、xaxaxaxPnnnnnn,.,0121aaaaannn多项式相乘:函数conv(P1,P2)用于求多项式P1和P2的乘积。这里,P1、P2是按降幂排列的两个多项式系数向量。多项式相除:函数Q,r=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回商式的系数向量,r返回余式的系数向量。 deconv是conv的逆函数,即有 P1=conv(P2,Q)+r。多项式相加减:长度相同的向量可相加减。若长度不同则须补0后再相加减。4.3.2 多项式求导、求根和求值 1. 多项式求导:p=polyder(P):求多项式P的导函数p=polyder(P,Q):求PQ的导函数p,q=p

11、olyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。 上述函数中,参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。例:求有理分式 的导数。51)(2xxf 2.多项式求根: n次多项式具有n个根,当然这些根可能是实根也可能含有若干对共轭复根。MATLAB提供的roots函数用于求多项式的全部根,其调用格式为: x=roots(P) 其中P为多项式的系数向量,求得的根赋给向量x,即x(1),x(2),x(n)分别代表多项式的n个根。若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为: P=poly(x) x为具有n个元素的向量。 3. 多项

12、式求值: polyval函数用来求代数多项式的值,其调用格式为:Y=polyval(P,x) 若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。例:已知多项式 ,分别取x=1.2和一个23矩阵为自变量计算该多项式的值。10834 xx 4.3.3 多项式拟合在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。 polyfit函数的调用格式为:P,S=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X,

13、Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数。 4.3.4 多项式插值1. 一维数据插值 在MATLAB中,实现这些插值的函数是interp1,其调用格式为:Y1=interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有linear、nearest、cubic、spline。 2. 二维数据插值 在MATLAB中,提供了解决二维插值问题的函数interp2,其调用格式为:Z1=int

14、erp2(X,Y,Z,X1,Y1,method) 其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 method的取值与一维插值函数相同。X,Y,Z也可以是矩阵形式。4.3.5 线性微分方程的解 线性常微分方程的解可用拉普拉斯算子s表示为Y(s)=B(s)/A(s),其中B(s)和A(s)均为s的多项式,且A(s) 的次数不低于B(s)的次数,在时域的解y(t)是Y(s)的拉氏反变换。可用residue函数完成将上述多项式分解为多个s的分式之和的形式。其步骤为:1. 用r,p,k=

15、 residue(b,a)求出Y(s)的极点数组p和留数数组r,故Y(s)可表示为:.)3()3()2()2() 1 () 1 ()(psrpsrpsrsY.)3()2() 1 ()()3()2()1(tptptpererertyv4.4 函数功能和数值积分函数库funfunv4.4.1 函数功能和数值积分函数库的主要子程序 主要包括:最优化和求根;数值定积分;函数绘图;内联函数对象;常微分方程数值积分器和ODE输出函数等。4.4.2 非线性函数的分析1. 在MATLAB中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为: z=fzero(fname,x0,tol,

16、trace) 其中fname是待求根的函数文件名,x0为搜索的起点。2. 函数极值 MATLAB提供了基于单纯形算法求解函数极值的函数fmin和fmins, 它们分别用于单变量函数和多变量函数的最小值,其调用格式为:x=fmin(fname,x1,x2)x=fmins(fname,x0) 这两个函数的调用格式相似。其中fmin函数用于求单变量函数的最小值点3. 非线性方程组的求解 对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为:X=fsolve(fun,X0,option) 其中X为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,X0是求根

17、过程的初值,option为最优化工具箱的选项设定4. 绘制函数曲线 格式为:x=fplot(fname,x1,x2) fname是被绘制的目标函数名,x1和x2限定自变量的取值范围,即初值和终值。 4.4.3 任意函数的数值积分一、 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson) 法、牛顿柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间a,b分成n个子区间xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。1. 变步长辛普生法 基于变步长辛普生法,MATLAB给出了qu

18、ad函数来求定积分。该函数的调用格式为:I,n=quad(fname,a,b,tol,trace) 其中fname是被积函数名。a和b分别是定积分的 下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则在现积分过程,取0则不在现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。2. 牛顿柯特斯法 基于牛顿柯特斯法,MATLAB给出了quad8函数来求定积分。该函数的调用格式为:I,n=quad8(fname,a,b,tol,trace) 其中参数的含义和quad函数相似,只是tol的缺省值取10-6。二、微分方程的数字解 基于龙格库塔法,MATLAB提供了求常微分 方程数值解的函数,一般调用格式为:t,y=ode23(fname,tspan,y0)t,y=ode45(fname,tspan,y0) 其中fname是定义f(t,y)的函数文件名,该函数必须返回一个列向量。tspan形式为t0,tf,表示求解区间。y0是初始状态列向量。t和y分别给出时间向量和相应的状态向量。4.5 字符串函数库strfun

温馨提示

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

评论

0/150

提交评论