收藏 分销(赏)

MatLab常用函数大全.doc

上传人:人****来 文档编号:4130845 上传时间:2024-07-31 格式:DOC 页数:12 大小:90.60KB
下载 相关 举报
MatLab常用函数大全.doc_第1页
第1页 / 共12页
MatLab常用函数大全.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述
1、求组合数 求,则输入: nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为: 注意:在p与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式和的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q返回多项式p1除以p2的商式,r返回p1除以p2的余式。这里,q和r仍是多项式系数向量。 例2-3 求多项式除以多项式的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x的最大值的函数有两种调用格式,分别是: (1)max(x):返回向量x的最大值,如果x中包含复数元素,则按模取最大值。 (2)[y, i]=max(x):返回向量x的最大值存入y,最大值的序号存入i,如果x中包含复数元素,则按模取最大值。 求向量x的最小值函数是min(x),用法与max(x)完全相同。 13、求矩阵的最大值和最小值 求矩阵A的最大值的函数有三种调用格式,分别是: (1)max(A):返回一个行向量,向量的i个元素是矩阵A的第i列的最大值。 (2)[y,u]=max(A):返回行向量y和u,y纪录A的每列的最大值,u纪录每列最大值的行号。 求矩阵A的最小值的函数min(A),用法与max(A)完全相同。 14、求和与求积 数据序列求和与求积函数是sum和prod,其使用方法类似。设x是一个向量,A是一个矩阵,函数的调用格式为: sum(x):返回向量x各元素之和。 Sum(A,1):返回矩阵A的列求和后的行向量 Sum(A,2):返回矩阵A的行求和后的列向量 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行的元素乘积。 15、平均值、标准方差 MATLAB提供了mean,std函数来计算平均值、标准方差或方差。这些函数的调用方法如下: mean(x):返回向量x的算术平均值。 std(x):返回向量x的标准方差。 对于矩阵A,mean函数的一般调用格式为: y=mean(A,dim) 这里,dim取1或2。当dim=1时,返回一个行向量y,y的第i个元素是A的第i列元素的平均值;当dim=2时,返回一个列向量y,y的第i个元素是A的第i行元素的平均值。 对于矩阵A,std函数的一般调用格式为: y=std(A,flag,dim) 这里,dim取1或2。当dim=1时,求各列元素的标准方差;当dim=2时,求各行元素的标准方差。flag取0或1,当flag=0时,按计算标准方差;当flag=1时,按计算方差。缺省flag=0,dim=1。 16、相关系数 对于两组数据序列,,其相关系数的计算, MATLAB提供了corrcoef函数来计算相关系数,corrcoef函数的调用格式为: r=corrcoef(x,y) 17、排序 对向量元素的进行排序是一种经常性的操作,MATLAB提供了sort函数对向量x进行排序。 y=sort(x):返回一个对x中元素按升序排列后的向量y。 [y,i]=sort(x):返回一个对x中的元素按升序排列的向量y,而i记录y中元素在x中的位置。 18、多项式的求导 对多项式求导数的函数是: p=polyder(p1):求多项式p1的导函数。 p=polyder(p1,p2):求多项式p1和p2乘积的导函数。 [p,q]=polyder(p1,p2):求多项式p1和p2之商的导函数,p、q是导函数的分子、分母。 例: 求有理分式的导函数。 命令如下: p1=[1,-1]; p2=[1,-1,3]; [p,q]=polyder(p1,p2) 19、多项式的求值 polyval函数用来求代数多项式的值,其调用格式为: y=polyval(p,x) 若x为一数值,则求多项式在该点的值;若x为向量,则对向量中的每个元素求其多项式的值。 例: 求多项式在点1,2,3,4的值。 命令如下: p=[1,2,1]; x=1:4; y=polyval(p,x) y = 4 9 16 25 roots函数用来求代数多项式的根,其调用格式为: x=roots(p) 如果x为向量,则p=poly(x)可以建立一个以x为其根的多项式。 20、多项式的求根 roots函数用来求代数多项式的根,其调用格式为: x=roots(p) 如果x为向量,则p=poly(x)可以建立一个以x为其根的多项式。 例:求多项式的根。 命令如下: p=[1,-6,11,-6]; x=roots(p) x = 3.0000 2.0000 1.0000 如果键入命令p=poly(x),则可得到以3,2,1为根的三次多项式的系数 p = 1.0000 -6.0000 11.0000 -6.0000 21、单变量非线性方程的求根 MATLAB还提供了一个fzero函数,可以用来求单变量非线性方程的求根。该函数的调用格式为: z=fzero(‘fname’,x0) 其中fname是待求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只能给出离x0最近的那个根。 例: 求函数在附近的根。 命令如下: fzero('x-10^x+2',0.5) ans = 0.3758 22、求单变量函数的最小值点 其调用格式为: x=fminbnd(‘fname’,x1,x2) 这里,fname是目标函数名,x1和x2限定自变量的取值范围,而x0是搜索起点的坐标。 例:求一元函数在[0,5]内的最小值点。 命令如下: fminbnd('x^3-2*x-5', 0, 5) ans = 0.8165 23、求多变量函数的最小值点 其调用格式为: x=fminsearch(‘fname’,x0) 例: 求多元函数在附近的最小值。 建立函数文件f.m。 function w=f(p) x=p(1); y=p(2); z=p(3); w=x+y^2/(4*x)+z^2/y+2/z; 调用fminsearch函数求多元函数在[1/2,1/2,1/2]附近的最小值点。 w=fminsearch('f ',[1/2,1/2,1/2]) w = 0.5000 1.0000 1.0000 计算多元函数的最小值。 f(w) ans = 4.0000 24、求函数的最大值点 MATLAB没有专门提供求函数最大值点的函数,当需要求函数在区间(a,b)上最大值点时,可将它转化为求-f(x)在(a,b)上的最小值点。 25、建立单个符号量(sym函数) sym函数用来建立单个符号量,一般调用格式为: 符号变量名=sym(‘符号字符串’) 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 例如,a=sym(‘a’)将建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。符号变量a和在其他过程中建立的非符号变量a是不同的。一个非符号变量在参与运算前必须赋值,变量的运算实际上是该变量所对应值的运算,其运算结果是一个和变量类型对应的值,而符号变量参与运算前无须赋值,其结果是一个由参与运算的变量名组成的表达式。下面的命令及其运算结果,说明了符号变量与非符号变量的差别。 在MATLAB命令窗口,输入以下命令: a=sym('a'); %定义符号变量a,b b=sym('b'); p1=sym('pi'); %定义符号常量 a=sym('3'); b=sym('4'); p2=pi; %定义数值常量 x=3; y=4; sin(p1/3) %符号计算 ans = 1/2*3^(1/2) sin(p2/3) %数值计算 ans = 0.8660 cos((a+b)^2)-sin(pi/4) %符号计算 ans = cos(49)-1/2*2^(1/2) cos((x+y)^2)-sin(pi/4) %数值计算 ans = -0.4065 26、建立多个符号量(syms函数) 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量2 … 符号变量n 用这种格式定义符号变量时,变量间用空格而不要用逗号分隔。例如,用syms函数定义4个符号变量a,b,命令如下: syms a b 27、建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1)利用单引号来生成符号表达式。例如 y='1/sqrt(2*x)' y = 1/sqrt(2*x) (2)利用sym函数建立符号表达式。例如 z=sym('3*x^2-5*y+2*x*y+6') z = 3*x^2-5*y+2*x*y+6 A=sym('[a,b;c,d]') A = [ a, b] [ c, d] 第一条命令建立一个符号函数表达式,第二条命令生成一个符号矩阵。 (3)利用已经定义的符号变量组成符号表达式。例如 syms x y; z=3*x^2-5*y+2*x*y+6 z = 3*x^2-5*y+2*x*y+6 28、符号表达式中变量的确定 利用函数findsym(s)可以确定符号表达式s中的全部符号变量。例如: syms a b x y; %定义4个符号变量 c=sym('3'); %定义1个符号常量 s=3*x+y; findsym(s) ans = x, y findsym(5*x+2) ans = x findsym(a*x+b*y+c) %符号变量c不会出现在结果中 ans = a, b, x, y 29、符号表达式四则运算 符号表达式的加、减、乘、除和幂运算可分别由函数symadd、symsub、symmul、symdiv和sympow来实现。例如 f='2*x^2+3*x-5' f = 2*x^2+3*x-5 g='x^2-x+7' g = x^2-x+7 symadd(f,g) %加法运算 ans = 3*x^2+2*x+2 sympow(f,'2*x') %乘幂运算 ans = (2*x^2+3*x-5)^(2*x) 30、符号表达式的因式分解与展开 符号表达式的因式分解和展开运算,可用函数factor和expand来实现,其调用格式为: factor(s):对符号表达式s分解因式。 expand(s):对符号表达式s进行展开。 例如: syms x y; s1=x^3-6*x^2+11*x-6 s1 = x^3-6*x^2+11*x-6 factor(s1) ans = (x-1)*(x-2)*(x-3) s2=(x-y)*(x+y) s2 = (x-y)*(x+y) expand(s2) ans = x^2-y^2 31、符号表达式与数值表达式之间的转换 利用函数sym可以将数值表达式转换成符号表达式。例如: sym(1.5) ans = 3/2 利用函数eval可以将符号表达式转换成数值表达式。例如: x='(1+sqrt(5))/2' x = (1+sqrt(5))/2 eval (x) ans = 1.6180 y='3/2' y = 3/2 eval (y) ans = 1.5000 32、符号极限 MATLAB中求函数极限的函数是limit,可用来求函数在指定点的极限值和左右极限值。对于极限值为“没有定义”的极限,MATLAB给出的结果为NaN,极限值为无穷大时,MATLAB给出的结果为inf。limit函数的调用格式为: (1)limit(f, x, a):求符号函数的极限值。 (2)limit(f, x, a, 'left'):求符号函数的右极限值。 (3)limit(f, x, a, 'right'):求符号函数的右极限值。 33、符号导数 diff函数用于对符号表达式求导数。该函数的一般调用格式为: diff(s, x, n):对符号表达式或符号函数s关于x求n阶导数,当n缺省时,表示求一阶导数。 例: 求下列函数导数 (1),求。 导数: syms x a; diff(‘exp(-a*x^2)+x’,x) ans = 34、符号积分 符号积分由函数int来实现。该函数的一般调用格式为: int(s,x):以符号表达式或符号函数s为被积函数,x为积分变量,计算不定积分。 int(s, x, a, b):以符号表达式或符号函数s为被积函数,a,b为积分的下限和上限,x为积分变量,计算定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷大。 例:求 积分: syms x; y=exp(-x^2); int(y, x, 0, inf) ans = pi^(1/2)/2 35、符号级数 symsum函数用于求无穷级数的和。该函数的一般调用格式为: symsum(s, x, n, m) s是一个符号函数,它是级数通项,x是求和变量,n和m是求和的开始项和未项。 例: 求下列级数之和 (1) (2) 级数1: syms n; s=1/n^2; symsum(s, n, 1, inf) ans = 1/6*pi^2 级数2: syms n; s=(-1)^(n-1)/(2*n-1); symsum(s, n, 1, inf) ans = 1/4*pi 36、函数的泰勒展开 taylor函数用于将一个函数展开为幂级数,其调用格式为: taylor(f , x, n, a) f是一个符号表达式或符号函数,它表示需要被展开的函数,x是函数自变量,n指需要展开的项数,其缺省值为6,a指定将函数f在x = a处展开,其缺省值为0。 例:求以下函数的泰勒级开式 (1)求函数在处的泰勒展开式的前5项。 展开式: syms x; f=log(x); taylor(f, x, 5, 1) ans = x-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4 37、符号方程求解 求解用符号表达式的代数方程可由函数solve实现,其调用格式为: x=solve(s, ' x '):求解符号表达式s组成的代数方程,求解变量为x。 [x1,x2,…,xn ]=solve(s1,s2,…,sn, ' x 1', ' x2 ',…, ' x n'):求解符号表达式s1,s2,…,sn组成的方程组,求解变量分别为x1,x2,…,xn。 例2-15 求解方程组 (为已知的互异实数) 在MATLAB命令窗口,输入命令: [x,y,z]=solve('x+a*y+a^2*z=a^3','x+b*y+b^2*z=b^3','x+c*y+c^2*z=c^3','x','y','z') x = b*c*a y = -b*a-c*b-c*a z = a+b+c 38、符号常微分方程求解 符号微分方程求解可以通过函数dsolve来实现,其调用格式为: dsolve(e, c, 'x') 求解符号表达式构成的常微分方程e,在由符号表达式给出的初值条件c下的特解,x是微分方程的自变量;如果没有给出初值条件c,则求方程的通解。 dsolve(e1, e2, …,en, c1, c2, …,cn, 'x1', 'x2', …, 'xn') 求解符号表达式构成的常微分方程组e1, e2, …,en,在由符号表达式给出的初值条件c1, c2, …,cn下的特解,x1, x2, …,xn是微分方程组的自变量;如果没有给出初值条件,则求方程组的通解。 例:求下列微分方程的解 (1)求的通解。 方程: [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t') x = -1/3*C1+4/3*C1*exp(3*t)-2/3*C2*exp(3*t)+2/3*C2 y = 2/3*C1*exp(3*t)-2/3*C1+4/3*C2-1/3*C2*exp(3*t) (2)求在下的特解。 方程2: y=dsolve('Dy=2*x*y^2','y(0)=1','x') y = -1/(x^2-1) 39、测量字符串向量的维数 例:s='this', dim=size(s),得 dim= 1 4 40、给出字符串中各个字符的ASCⅡ代码的值 例如:s='this', ascCode=abs(s),得 ascCode= 116 104 105 115 41、使整数型向量、字符向量必须以字符形式显示 例如:键入setstr(ascCode),则显示结果为 ans= this 注:ascCode为上题中的ascCode 42、将数值转化成字符串 num2str函数 例如:num2str(2);结果为’2’ 43、字符串的联接 在MATLAB中,字符串的联接十分方便,其一般格式为: [字符串变量1,字符串变量2,'字符集1', '字符集2',…] 例如:若键入['圆周率为',num2str(pi)],屏幕上显示出 ans = 圆周率为3.1416 44、使用solve函数求解一般的符号代数方程组 >>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服