MATLAB常用函数总结Matlab的内部常数pi圆周率exp(1)自然对数的底数ei或j虚数单位Inf或inf无穷大Matlab的常用内部数学函数指数函数exp(x)以e为底数对数函数log(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x)以2为底数的x的对数开方函数sqrt(x)表示x的算术平方根绝对值函数abs(x)表示实数的绝对值以及复数的模三角函数(自变量的单位为弧度)sin(x)正弦函数cos(x)余弦函数tan(x)正切函数cot(x)余切函数sec(x)正割函数csc(x)余割函数反三角函数asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数acot(x)反余切函数asec(x)反正割函数acsc(x)反余割函数双曲函数sinh(x)双曲正弦函数cosh(x)双曲余弦函数tanh(x)双曲正切函数coth(x)双曲余切函数sech(x)双曲正割函数csch(x)双曲余割函数反双曲函数asinh(x)反双曲正弦函数acosh(x)反双曲余弦函数atanh(x)反双曲正切函数acoth(x)反双曲余切函数asech(x)反双曲正割函数acsch(x)反双曲余割函数求角度函数atan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为(,]数论函数gcd(a,b)两个整数的最大公约数lcm(a,b)两个整数的最小公倍数排列组合函数factorial(n)阶乘函数,表示n的阶乘复数函数real(z)实部函数imag(z)虚部函数abs(z)求复数z的模angle(z)求复数z的辐角,其范围是(,]conj(z)求复数z的共轭复数求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小于或等于实数x的最大整数round(x)最接近x的整数最大、最小函数max([a,b,c,...])求最大数min([a,b,c,..])求最小数符号函数sign(x)Matlab中的数学运算符a+b加法a./b数组右除a-b减法a.\b数组左除a*b矩阵乘法a^b矩阵乘方a.*b数组乘法a.^b数组乘方a/b矩阵右除-a负号a\b矩阵左除'共轭转置.'一般转置Matlab的关系运算符==等于小于大于=小于或等于=大于或等于~=不等于如何用matlab求阶乘factorial(n)求n的阶乘如何用matlab进行多项式运算(1)合并同类项syms表达式中包含的变量collect(表达式,指定的变量)(2)因式分解syms表达式中包含的变量factor(表达式)(3)展开syms表达式中包含的变量expand(表达式)(4)化简syms表达式中包含的变量simplify(表达式)如何用matlab进行复数运算a+b*i或a+b*j表示复数a+bi或a+bjreal(z)求复数z的实部imag(z)求复数z的虚部abs(z)求复数z的模angle(z)求复数z的辐角,conj(z)求复数z的共轭复数exp(z)复数的指数函数,表示e^z如何用Matlab求集合的交集、并集、差集和补集union(A,B)求集合A和B的并集intersect(A,B)求集合A和B的交集setdiff(A,B)求集合A和B的差集A-Bsetdiff(U,A)求集合A关于全集U的补集如何用matlab排序sort(v)将向量v的元素从小到大排列(升序排列)sort(v,dim,’descendorascend’)当dim=1时矩阵按列排序,descendorascend用来控制升序还是降序当dim=2时矩阵按行排序,descendorascend用来控制升序还是降序如何用Matlab求极限(1)极限:symsxlimit(f(x),x,a)求f(x)关于x趋于a时的极限(2)单侧极限:左极限:symsxlimit(f(x),x,a,’left’)求f(x)关于x趋于a时的左极限右极限:symsxlimit(f(x),x,a,’right’)求f(x)关于x趋于a时的右极限如何用Matlab求导数diff('f(x)')diff('f(x)','x')求f(x)关于x的导数或者:symsxdiff(f(x))symsxdiff(f(x),x)如何用Matlab求高阶导数如何用Matlab求高阶导数diff('f(x)',n)diff('f(x)','x',n)求f(x)关于x的n阶导数symsxdiff(f(x),n)symsxdiff(f(x),x,n)如何用Matlab求不定积分int('f(x)')int('f(x)','x')求f(x)关于x的积分symsxint(f(x))symsxint(f(x),x)如何用Matlab求定积分、广义积分int('f(x)',a,b)int('f(x)','x',a,b)求f(x)关于x的积分,区间为a到bsymsxint(f(x),a,b)symsxint(f(x),x,a,b)如何用Matlab展开级数symsxtaylor(f(x),x,n,a)如何在Matlab中进行积分变换symsstlaplace(f(t),t,s)拉普拉斯变换ilaplace(F(s),s,t)拉普拉斯变换的逆变换symstωfourier(f(t),t,ω)傅立叶变换ifourier(F(ω),ω,t)傅立叶变换的逆变换symsnzztrans(f(n),n,z)Z变换iztrans(F(z),z,n)Z变换的逆变换如何用Matlab解微分方程dsolve('微分方程','自变量')dsolve('微分方程','初始条件或边界条件','自变量')dsolve('D2x+2*x+x=sin(t)','x(0)=1','Dx(0)=1','t')如何用matlab求多变量函数的极限以两个变量为例说明,多于两个变量的函数极限可以依次类推。limit(limit(f(x,y),x,a),y,b)计算极限也可调用maple的命令,调用方法如下:maple(‘limit(f(x,y),{x=a,y=b})’)计算极限如何用matlab求多元函数的偏导数Matlab没有提供求偏导数的专门函数,只能通过求导函数diff实现,比如diff(diff(f,x,m),y,n)或diff(diff(f,y,n),x,m)求偏导数也可调用maple的命令,调用格式如下:maple(‘diff(f,x1,x2,…,xn)’)求偏导数如何用matlab求多变量函数的泰勒展开式Matlab符号运算工具箱没有提供专门的函数求多变量函数的泰勒展开式,但我们可以调用maple的命令求求解,调用格式如下:maple(‘mtaylor(f,[x=x0,y=y0,...],n)’)在x=x0,y=y0,...处求函数f的泰勒展开式,其中n为展开的次数maple(‘mtaylor(f,[x,y,...],n)’)在x=0,y=0,...处求函数f的泰勒展开式,其中n为展开的次数如何用matlab求重积分matlab没有提供专门的命令求重积分,只能通过数个定积分的计算来完成。也可调用maple的指令来完成二重积分和三重积分的计算,调用格式如下:首先要加载student链接库,加载方法为:maple(‘with(student)’)Maple(‘maple中求二重积分或三重积分的命令’)如何用matlab求梯度、散度、旋度gradient(f)求f的梯度divergence(x,y,z,u,v,w)求{u,v,w}的散度curl(x,y,z,u,v,w)求{u,v,w}的旋度注:Matlab中这几个命令的用法还没有完全掌握,有待进一步研究。不过可以调用maple的命令,调用方法如下:首先要加载maple的软件包VectorCalculus,加载方法为:maple(‘with(VectorCalculus)’)然后运行:maple(‘maple中求梯度或散度或旋度的命令’)如何用Matlab求函数的最大值和最小值(1)无约束条件的极值x=fminunc(‘f(x)’,x0,options)求函数f(x)的极小值点。其中x0为极小值点的猜测值,x、x0可以是标量、向量或矩阵;options为参数说明语句。[x,fval]=fminunc(‘f(x)’,x0,options)返回的x为极小值点,fval为函数的极小值注:①Matlab没有提供求极大值的命令。要求函数f(x)的极大值点,只需求函数-f(x)的极小值点。-f(x)的极小值的相反数就是f(x)的极大值。②fminunc(‘f(x)’,x0,options)的局限性1.只能处理实数函数的优化问题。2.目标函数必须是连续的。3.给出的可能只是局部解。(2)有约束条件的极值x=fmincon(‘f(x)’,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)f(x)为需要优化的目标函数,x0为变量的估计初值,x、x0可以是标量、向量或矩阵,options为参数说明语句。A,b,Aeq,beq,lb,ub,nonlcon为优化的约束条件。[x,fval]=fmincon(‘f(x)’,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)返回的x为极小值点,fval为函数的极小值注:①优化的约束条件A,b(线性不等式约束)Aeq,beq(线性等式约束)lb,ub(边界约束)nonlconA*xbA=[],B=[]lb≤x≤ub非线性的不等式和等式约束在表达约束条件时,默认为线性不等式约束,线性等式约束,边界约束,非线性不等式约束和非线性等式约束在形式上按顺序同时存在于命令函数声明约束的位置上。如果某种约束不存在,则以空向量表示。不等式约束在形式上是一个函数表达式,系统默认为其小于或等于0,等式约束在形式上也是一个函数表达式,系统默认为其等于0。这样就需要把待求问题的约束条件转化为小于0或等于0的形式。②fmincon(‘f(x)’,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)的局限性1.目标函数和约束函数必须为实数函数,不能为复数函数。2.目标函数和约束函数必须是连续的。3.给出的可能只是局部解。线性代数如何用matlab建立矩阵[a11,a12,...,a1n;a21,a22,...,a2n;...am1,an2,...,amn]表示矩阵(aij)m×n,aij为矩阵第i行的第j个元素(可以把逗号改为空格,即同行元素间可用空格分开;不同行间用分号或回车分隔,外面必须用中括号)zeros(m,n)建立m行n列元素全为0的矩阵ones(m,n)建立m行n列元素全为1的矩阵eye(n)建立n阶单位矩阵rand(m,n)建立m行n列均匀分布随机数矩阵randn(m,n)建立m行n列正态分布随机数矩阵如何用matlab求行列式的值det(A)求矩阵A的行列式若矩阵中含有未知的变量时,必须要先声明,然后再用求行列式的命令,格式如下:先运行:syms空格矩阵中包含的各变量(各变量用空格分开,不能用逗号分开)再运行:det(A)如何用matlab求逆矩阵inv(A)求矩阵A的逆矩阵如何用matlab求转置矩阵transpose(A)求矩阵A的非共轭转置矩阵A.'求矩阵A的非共轭转置矩阵A'求矩阵A的共轭转置矩阵如何用matlab求矩阵的秩rank(A)求矩阵A的秩如何用Matlab求矩阵的迹trace(A)求方阵A的迹如何用matlab求特征值和特征向量eig(A)只求矩阵A的特征值[V,D]=eig(A)求矩阵A的特征值和特征向量。其中D为一个对角矩阵,其对角线上的元素为矩阵A的特征值,而矩阵V的列是矩阵A的特征向量如何用matlab解线性方程组solve(’方程1’,’方程2’,…,’方程n’,’变元1’,’变元2’,…,’变元n’)linsolve(M,B)解满足矩阵方程MX=B的向量X向量代数如何用matla