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相同,但含
- 多项式的求根
-
- 插值
-
- 在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)
返回行向量Y和U,Y向量记录A中每列的最大值,U向
量记录每列最大值元素的行号。
(3)max(A,[],dim)
dim取1或2。
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取0或1,当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])的作用一
样,用于求X、Y向量之间的相关系数。
排序
(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)
多项式相乘,其中,P1、P2是两个多项式系数向量。
(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)
该语句将根据X、Y的值,计算函数在X1处的值。其中,X、Y是两个等长
的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要
插值的点。
method参数用于指定插值方法
,常用的取值有以下四种(1)linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连
接,然后在直线上选取对应插值点的数据。
(2)nearest:最近点插值。选择最近样本点的值作为插值数据。
(3)pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条
件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光
滑的同时,还具有保形性。
(4)spline:3次样条插值。每个分段内构造一个三次多项式,使其插值
函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。
MATLAB中的二维插值函数为interp2(),其调用格式为:Z1=interp2(X,Y,Z,X1,Y1,method)
其中,X、Y是两个向量,表示两个参数的采样点,Z是采样
点对应的函数值。X1、Y1是两个标量或向量,表示要插值
的点。
曲线拟合
MATLAB中的多项式拟合函数为polyfit(),其功能为求得最小二乘拟合多项式系
数,其调用格式为:
(1)P=polyfit(X,Y,m)(p返回的是一个多项式的系数)
(2)[P,S]=polyfit(X,Y,m)
(3)[P,S,mu]=polyfit(X,Y,m)
根据样本数据X和Y,产生一个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)。