MatLab常用函数大全.docx

上传人:b****9 文档编号:25107331 上传时间:2023-06-05 格式:DOCX 页数:20 大小:60.29KB
下载 相关 举报
MatLab常用函数大全.docx_第1页
第1页 / 共20页
MatLab常用函数大全.docx_第2页
第2页 / 共20页
MatLab常用函数大全.docx_第3页
第3页 / 共20页
MatLab常用函数大全.docx_第4页
第4页 / 共20页
MatLab常用函数大全.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MatLab常用函数大全.docx

《MatLab常用函数大全.docx》由会员分享,可在线阅读,更多相关《MatLab常用函数大全.docx(20页珍藏版)》请在冰豆网上搜索。

MatLab常用函数大全.docx

MatLab常用函数大全

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=

321

312

231

213

123

132

4、求指数

求a^b:

Power(a,b);

例:

求2^3;

Ans=pow(2,3);

5、求行列式

求矩阵A的行列式:

det(A);

例:

A=[12;34];

则det(A)=-2;

6、求矩阵的转置

求矩阵A的转置矩阵:

A’

转置符号为单引号.

7、求向量的指数

求向量p=[1234]'的三次方:

p.^3

例:

p=[1234]'

A=[p,p.^2,p.^3,p.^4]

结果为:

注意:

在p与符号”^”之间的”.”不可少.

8、求自然对数

求ln(x):

Log(x)

例:

log

(2)=

9、求矩阵的逆矩阵

求矩阵A的逆矩阵:

inv(A)

例:

a=[12;34];

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=

491625

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=

如果键入命令p=poly(x),则可得到以3,2,1为根的三次多项式的系数

p=

21、单变量非线性方程的求根

MATLAB还提供了一个fzero函数,可以用来求单变量非线性方程的求根。

该函数的调用格式为:

z=fzero(‘fname’,x0)

其中fname是待求根的函数文件名,x0为搜索的起点。

一个函数可能有多个根,但fzero函数只能给出离x0最近的那个根。

例:

求函数

附近的根。

命令如下:

fzero('x-10^x+2',

ans=

22、求单变量函数的最小值点

其调用格式为:

x=fminbnd(‘fname’,x1,x2)

这里,fname是目标函数名,x1和x2限定自变量的取值范围,而x0是搜索起点的坐标。

例:

求一元函数

在[0,5]内的最小值点。

命令如下:

fminbnd('x^3-2*x-5',0,5)

ans=

23、求多变量函数的最小值点

其调用格式为:

x=fminsearch(‘fname’,x0)

例:

求多元函数

附近的最小值。

建立函数文件。

functionw=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=

计算多元函数的最小值。

f(w)

ans=

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=

cos((a+b)^2)-sin(pi/4)%符号计算

ans=

cos(49)-1/2*2^(1/2)

cos((x+y)^2)-sin(pi/4)%数值计算

ans=

26、建立多个符号量(syms函数)

函数sym一次只能定义一个符号变量,使用不方便。

MATLAB提供了另一个函数syms,一次可以定义多个符号变量。

syms函数的一般调用格式为:

syms符号变量名1符号变量2…符号变量n

用这种格式定义符号变量时,变量间用空格而不要用逗号分隔。

例如,用syms函数定义4个符号变量a,b,命令如下:

symsab

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)利用已经定义的符号变量组成符号表达式。

例如

symsxy;

z=3*x^2-5*y+2*x*y+6

z=

3*x^2-5*y+2*x*y+6

28、符号表达式中变量的确定

利用函数findsym(s)可以确定符号表达式s中的全部符号变量。

例如:

symsabxy;%定义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进行展开。

例如:

symsxy;

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

ans=

3/2

利用函数eval可以将符号表达式转换成数值表达式。

例如:

x='(1+sqrt(5))/2'

x=

(1+sqrt(5))/2

eval(x)

ans=

y='3/2'

y=

3/2

eval(y)

ans=

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)

导数:

symsxa;

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可以是两个具体的数,也可以是一个符号表达式,还可以是无穷大。

例:

积分:

symsx;

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:

symsn;

s=1/n^2;

symsum(s,n,1,inf)

ans=

1/6*pi^2

级数2:

symsn;

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项。

展开式:

symsx;

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,'x1','x2',…,'xn'):

求解符号表达式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=

14

40、给出字符串中各个字符的ASCⅡ代码的值

例如:

s='this',

ascCode=abs(s),得

ascCode=

116104105115

41、使整数型向量、字符向量必须以字符形式显示

例如:

键入setstr(ascCode),则显示结果为

ans=

this

注:

ascCode为上题中的ascCode

42、将数值转化成字符串

num2str函数

例如:

num2str

(2);结果为’2’

43、字符串的联接

在MATLAB中,字符串的联接十分方便,其一般格式为:

[字符串变量1,字符串变量2,'字符集1','字符集2',…]

例如:

若键入['圆周率为',num2str(pi)],屏幕上显示出

ans=

圆周率为

44、使用solve函数求解一般的符号代数方程组

>>[x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0')

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1