matlab常用函数

matlab常用函数

  • 数据统计函数
    • 当参数为向量时
      • (1)y=max(X)
      • (2)[y,k]=max(X)
    • 当参数为矩阵时,函数有三种调用格式:
      • (1)max(A)
      • (2)[Y,U]=max(A)
      • (3)max(A,[],dim)
      • (4) max(A(:))
    • 求矩阵的平均值和中值
      • mean():求算术平均值。
      • median():求中值。
    • 求和与求积
      • sum():求和函数。
      • prod():求积函数
      • cumsum():累加和函数
      • cumprod():累乘积函数
    • 标准差
      • (1)std(X)
      • (2)std(A)
      • (3)std(A,flag,dim)
    • 相关系数
      • (1)corrcoef(A)
      • (2)corrcoef(X,Y)
    • 排序
      • (1)sort(X)
      • (2)[Y,I]=sort(A,dim,mode)
  • 多项式计算
    • 多项式的四则运算
      • (1)多项式的加减运算
      • (2)多项式乘法conv(P1,P2)
      • (3)多项式除法[Q,r]=deconv(P1,P2)
    • 多项式求导
      • (1)p=polyder(p ) :求多项式P的导函数。
      • (2)p=polyder(P,Q):求P×Q的导函数。
      • (3)[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。
    • 多项式的求值
      • polyval(p,x)
      • polyvalm(p,x):矩阵多项式求值,其调用格式与polyval相同,但含
    • 多项式的求根
      • roots(p) 其中p为多项式的系数向量
  • 插值
    • 在MATLAB中,一维插值函数为interp1(),其调用格式为:Y1=interp1(X,Y,X1,method)
      • method参数用于指定插值方法
      • MATLAB中的二维插值函数为interp2(),其调用格式为:Z1=interp2(X,Y,Z,X1,Y1,method)
  • 曲线拟合
    • (1)P=polyfit(X,Y,m)(p返回的是一个多项式的系数)
    • (2)[P,S]=polyfit(X,Y,m)
    • (3)[P,S,mu]=polyfit(X,Y,m)
  • 数值微分与数值积分
    • 差分
      • dx=diff(x)
      • dx=diff(x,n)
      • dx=diff(A,n,dim)
    • 数值积分
      • 适用于必须有上下限且不能为无穷大
      •  基于自适应辛普森方法 [I,n]=quad(filename,a,b,tol,trace)
      •  基于自适应Gauss-Lobatto方法 [I,n]=quadl(filename,a,b,tol,trace)
      • 适用于无穷大
        • 基于全局自适应积分方法I=integral(filename,a,b)
        • 基于自适应高斯-克朗罗德方法[I,err]=quadgk(filename,a,b)
        •  基于梯形积分法I=trapz(x,y)向量x、y定义函数关系y=f(x)。
      • 多重定积分的数值求解
      • I=integral2(filename,a,b,c,d)
      • I=quad2d(filename,a,b,c,d)
      • I=dblquad(filename,a,b,c,d,tol)
        • 求三重积分的数值解:
          • I=integral3(filename,a,b,c,d,e,f)
          • I=triplequad(filename,a,b,c,d,e,f,tol)
  • 线性方程组求解
    • [L,U]=lu(A) x=U\(L\b)
    • [L,U,P]=lu(A) x=U\(L\P*b)
    • [y,n]=jacobi(A,b,x0,ep)
    • [y,n]=gauseidel(A,b,x0,ep)
  • 非线性方程求解
    • x=fzero(filename,x0)
    • x=fsolve(filename,x0,option)
  • 函数极值
    • [xmin,fmin]=fminbnd(filename,x1,x2,option)
    • [xmin,fmin]=fminsearch(filename,x0,option)
    • [xmin,fmin]=fminunc(filename,x0,option)
    • [xmin,fmin]=fmincon(filename,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,option)
  • 常微分方程
    • [t,y]=solver(filename,tspan,y0,option)

数据统计函数

当参数为向量时

(1)y=max(X)

返回向量X的最大值存入y,如果X中包含复数元素,
则按模取最大值。

(2)[y,k]=max(X)

返回向量X的最大值存入y,最大值元素的序号
存入k,如果X中包含复数元素,则按模取最大值。

当参数为矩阵时,函数有三种调用格式:

(1)max(A)

返回一个行向量,向量的第i个元素是矩阵A的第i列上的最
大值。

(2)[Y,U]=max(A)

返回行向量YUY向量记录A中每列的最大值,U向
量记录每列最大值元素的行号。

(3)max(A,[],dim)


dim取12。
dim取1时,该函数的功能和max(A)完全
相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上
的最大值。

(4) max(A(:))

把矩阵变成一列,求矩阵的最大值

求矩阵的平均值和中值

mean():求算术平均值。

平均值:指算术平均值,即每项数据之和除以项数。

median():求中值。

中值:指在数据序列中其值的大小恰好处在中间的元素。如果数据个数为奇
数,则取值为大小位于中间的元素;如果数据个数为偶数,则取中间两个元
素的平均值。

求和与求积

sum():求和函数。

prod():求积函数

cumsum():累加和函数

cumprod():累乘积函数

标准差

在这里插入图片描述

(1)std(X)

计算向量X的标准差。

(2)std(A)

计算矩阵A的各列的标准差。

(3)std(A,flag,dim)

 flag取01,当flag=0时,按S1所列公式计
算样本标准方差;当flag=1时,按S2所列公式计算总体标准方差。在默
认情况下,flag=0,dim=1

相关系数

在这里插入图片描述

(1)corrcoef(A)

返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j
列的元素表示原矩阵A中第i列和第j列的相关系数。

(2)corrcoef(X,Y)

在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一
样,用于求XY向量之间的相关系数。

排序

(1)sort(X)

对向量X按升序排列。

(2)[Y,I]=sort(A,dim,mode)

[Y,I]=sort(a,2,'descend')只是单纯的对每一行单独排序
其中dim指明对A的列还是行进行排序。mode
指明按升序还是降序排序,若取“ascend”,则按升序;若取“descend”,
则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素
在A中位置。

多项式计算

MATLAB中创建多项式向量时,要注意三点:
(1)多项式系数向量的顺序是从高到低。
(2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数
加1。
(3)如果有的项没有,系数向量相应位置应用0补足。

多项式的四则运算

(1)多项式的加减运算

多项式的加减运算非常简单,即相应向量相加减。

(2)多项式乘法conv(P1,P2)

多项式相乘,其中,P1P2是两个多项式系数向量。

(3)多项式除法[Q,r]=deconv(P1,P2)

多项式相除,其中Q返回多项式P1除以P2的商式,r返
回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函
数,因此有下式成立。

P1=conv(Q,P2)+r

多项式求导

(1)p=polyder(p ) :求多项式P的导函数。

(2)p=polyder(P,Q):求P×Q的导函数。

(3)[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。

多项式的求值

polyval(p,x)

代数多项式求值,其中,p为多项式系数向量,x可以
是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向
量或矩阵,则对向量或矩阵中的每个元素求多项式的值。

polyvalm(p,x):矩阵多项式求值,其调用格式与polyval相同,但含

义不同。polyvalm函数要求x为方阵,以方阵为自变量求多项式的值。

多项式的求根

roots§ 其中p为多项式的系数向量

插值

在MATLAB中,一维插值函数为interp1(),其调用格式为:Y1=interp1(X,Y,X1,method)

该语句将根据XY的值,计算函数在X1处的值。其中,XY是两个等长
的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要
插值的点。

method参数用于指定插值方法

,常用的取值有以下四种(1)linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连
接,然后在直线上选取对应插值点的数据。
(2)nearest:最近点插值。选择最近样本点的值作为插值数据。
(3)pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条
件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光
滑的同时,还具有保形性。
(4)spline:3次样条插值。每个分段内构造一个三次多项式,使其插值
函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。

MATLAB中的二维插值函数为interp2(),其调用格式为:Z1=interp2(X,Y,Z,X1,Y1,method)

其中,XY是两个向量,表示两个参数的采样点,Z是采样
点对应的函数值。X1Y1是两个标量或向量,表示要插值
的点。

曲线拟合

	MATLAB中的多项式拟合函数为polyfit(),其功能为求得最小二乘拟合多项式系
数,其调用格式为:

(1)P=polyfit(X,Y,m)(p返回的是一个多项式的系数)

(2)[P,S]=polyfit(X,Y,m)

(3)[P,S,mu]=polyfit(X,Y,m)


根据样本数据XY,产生一个m次多项式P及其在采样点误差数据S,mu是一个二元向量,mu(1)mean(X),而mu(2)std(X)

数值微分与数值积分

差分

dx=diff(x)

计算向量x的向前差分,dx(i)=x(i+1)-x(i),i=1,2,…,n-1。

dx=diff(x,n)

计算向量x的n阶向前差分。例如,diff(x,2)=diff(diff(x))。

dx=diff(A,n,dim)

计算矩阵A的n阶差分,dim=1时(默认状态),按列计算差分;dim=2,按行计算差分。

数值积分

适用于必须有上下限且不能为无穷大

 基于自适应辛普森方法 [I,n]=quad(filename,a,b,tol,trace)

 基于自适应Gauss-Lobatto方法 [I,n]=quadl(filename,a,b,tol,trace)

其中,filename是被积函数名;a和b分别是定积分的下限和上限,积分限[a,b]
必须是有限的,不能为无穷大(Inf);tol用来控制积分精度,默认时取
tol=10-6;trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展
现,默认时取trace=0;返回参数I即定积分的值,n为被积函数的调用次数。

适用于无穷大

基于全局自适应积分方法I=integral(filename,a,b)

基于自适应高斯-克朗罗德方法[I,err]=quadgk(filename,a,b)

 基于梯形积分法I=trapz(x,y)向量x、y定义函数关系y=f(x)。

多重定积分的数值求解

I=integral2(filename,a,b,c,d)

I=quad2d(filename,a,b,c,d)

I=dblquad(filename,a,b,c,d,tol)

求三重积分的数值解:

I=integral3(filename,a,b,c,d,e,f)
I=triplequad(filename,a,b,c,d,e,f,tol)

线性方程组求解

[L,U]=lu(A) x=U(L\b)

产生一个上三角阵U和一个变换形式的下三角阵L,使之满足
A=LU。注意,这里的矩阵A必须是方阵。

[L,U,P]=lu(A) x=U(L\P*b)

产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,
使之满足PA=LU。同样,矩阵A必须是方阵。

[y,n]=jacobi(A,b,x0,ep)

A是线性方程的系数
b是常数
ep精确度

[y,n]=gauseidel(A,b,x0,ep)

非线性方程求解

x=fzero(filename,x0)

其中,filename是待求根方程左端的函数表达式,x0是初始值

x=fsolve(filename,x0,option)

其中,x为返回的近似解,filename是待求根方程左端的函数表达式,x0是初值,
option用于设置优化工具箱的优化参数,可以调用optimset函数来完成。例如,
Display参数设置为‘off’时不显示中间结果。
x1=fsolve(f,-5,optimset(‘Display’,‘off’))

函数极值

[xmin,fmin]=fminbnd(filename,x1,x2,option)

[xmin,fmin]=fminsearch(filename,x0,option)

[xmin,fmin]=fminunc(filename,x0,option)

其中,xmin表示极小值点,fmin表示最小值,filename是定义的目标函数。第一
个函数的输入变量xl、x2分别表示被研究区间的左、右边界。后两个函数的输入
变量x0是一个向量,表示极值点的初值。option为优化参数,可以通过optimset
函数来设置。

[xmin,fmin]=fmincon(filename,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,option)

其中,xmin、fmin、filename、x0和option的含义与求最小值函数相同。其余
参数为约束条件,包括线性不等式约束、线性等式约束、x的下界和上界以及定
义非线性约束的函数。如果某个约束不存在,则用空矩阵来表示。

常微分方程

[t,y]=solver(filename,tspan,y0,option)

其中,t和y分别给出时间向量和相应的数值解。solver为求常微分方程数值解
的函数。filename是定义f(t,y)的函数名,该函数必须返回一个列向量。
tspan形式为[t0,tf],表示求解区间。y0是初始状态向量。Option是可选参数,
用于设置求解属性,常用的属性包括相对误差值RelTol(默认值是10-3)和绝对误
差值AbsTol(默认值是10-6)。

你可能感兴趣的:(matlab,matlab)