完整word版MatLab常用函数大全推荐文档.docx
- 文档编号:10966951
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:27
- 大小:65.68KB
完整word版MatLab常用函数大全推荐文档.docx
《完整word版MatLab常用函数大全推荐文档.docx》由会员分享,可在线阅读,更多相关《完整word版MatLab常用函数大全推荐文档.docx(27页珍藏版)》请在冰豆网上搜索。
完整word版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)=0.6931
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=
3.0000
2.0000
1.0000
如果键入命令p=poly(x),则可得到以3,2,1为根的三次多项式的系数
p=
1.0000-6.000011.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。
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=
0.50001.00001.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,命令如下:
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(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)
求
。
导数:
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=
圆周率为3.1416
44、使用solve函数求解一般的符号代数方程组
>>[x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0')
1. 特殊变量与常数
主题词
意义
主题词
意义
ans
计算结果的变量名
computer
确定运行的计算机
eps
浮点相对精度
Inf
无穷大
I
虚数单位
inputname
输入参数名
NaN
非数
nargin
输入参数个数
nargout
输出参数的数目
pi
圆周率
nargoutchk
有效的输出参数数目
realmax
最大正浮点数
realmin
最小正浮点数
varargin
实际输入的参量
varargout
实际返回的参量
2. 操作符与特殊字符
主题词
意义
主题词
意义
+
加
-
减
*
矩阵乘法
.*
数组乘(对应元素相乘)
^
矩阵幂
.^
数组幂(各个元素求幂)
\
左除或反斜杠
/
右除或斜面杠
./
数组除(对应元素除)
kron
Kronecker张量积
:
冒号
()
圆括号
[]
方括
.
小数点
..
父目录
...
继续,下一行接着上一行
逗号(分割多条命令)
;
分号(禁止结果显示),矩阵行分割
%
注释
!
感叹号
'
转置或引用
=
赋值
==
相等
<>或~=
不等于
&
逻辑与
|
逻辑或
~
逻辑非
xor
逻辑异或
3、基本数学函数
主题词
意义
主题词
意义
abs
绝对值和复数模长
acos,acosh
反余弦,反双曲余弦
acot,acoth
反余切,反双曲余切
acsc,acsch
反余割,反双曲余割
angle
复数z的相角(Phaseangle)
asec,asech
反正割,反双曲正割
secant
正切
asin,asinh
反正弦,反双曲正弦
atan,atanh
反正切,双曲正切
tangent
正切
atan2
四象限反正切
ceil
向着无穷大舍入
complex
建立一个复数
conj
复数z的共轭复数
cos,cosh
余弦,双曲余弦
csc,csch
余切,双曲余切
cot,coth
余切,双曲余切
exp
指数
fix
朝0方向取整
gcd
最大公因数
lcm
最小公倍数
log
自然对数
log2
以2为底的对数
log10
常用对数
mod
有符号的求余
nchoosek
二项式系数和全部组合数
real
复数的实部
imag
复数值的虚部
rem
相除后求余
round
取整为最近的整数
sec,sech
正割,双曲正割
sign
符号数
sin,sinh
正弦,双曲正弦
sqrt
平方根
tan,tanh
正切,双曲正切
floor
朝负无穷取整
4、基本矩阵和矩阵操作
主题词
意义
主题词
意义
blkding
从输入参量建立块对角矩阵
eye
单位矩阵
linespace
产生线性间隔的向量
logspace
产生对数间隔的向量
numel
元素个数
cat
连接数组
zeros
建立一个全0矩阵
colon
等间隔向量
ones
产生全为1的数组
rand
均匀颁随机数和数组
randn
正态分布随机数和数组
diag
对角矩阵和矩阵对角线
fliplr
从左自右翻转矩阵
flipud
从上到下翻转矩阵
repmat
复制一个数组
reshape
改造矩阵
roy90
矩阵翻转90度
tril
矩阵的下三角
triu
矩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word MatLab 常用 函数 大全 推荐 文档