2024年5月2日发(作者:)
MATLAB 常用函数总结
Matlab的内部常数
pi 圆周率
exp(1)
自然对数的底数e
i 或j
虚数单位
Inf或 inf
无穷大
Matlab的常用内部数学函数
指数函数
exp(x)
log(x)
对数函数
log10(x)
log2(x)
开方函数
绝对值函数
sqrt(x)
abs(x)
sin(x)
cos(x)
三角函数
(自变量的单
位为弧度)
tan(x)
cot(x)
sec(x)
csc(x)
asin(x)
反三角函数
acos(x)
atan(x)
反余弦函数
反正切函数
以e为底数
自然对数,即以e为底数的对数
常用对数,即以10为底数的对数
以2为底数的x的对数
表示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)
gcd(a,b)
数论函数
lcm(a,b)
排列组合函数
factorial(n)
反余切函数
反正割函数
反余割函数
双曲正弦函数
双曲余弦函数
双曲正切函数
双曲余切函数
双曲正割函数
双曲余割函数
反双曲正弦函数
反双曲余弦函数
反双曲正切函数
反双曲余切函数
反双曲正割函数
反双曲余割函数
以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的
射线为终边的角,其单位为弧度,范围为(
,
]
两个整数的最大公约数
两个整数的最小公倍数
阶乘函数,表示n的阶乘
real(z)
imag(z)
复数函数
abs(z)
angle(z)
conj(z)
实部函数
虚部函数
求复数z的模
求复数z的辐角,其范围是(
求复数z的共轭复数
,
]
ceil(x)
求整函数与截
尾函数
floor(x)
round(x)
最大、最小函
数
max([a,b,
c,...])
min([a,b,
c,..])
表示大于或等于实数x的最小整数
表示小于或等于实数x的最大整数
最接近x的整数
求最大数
求最小数
符号函数
sign(x)
Matlab
中的数学运算符
a+b
a-b
a*b
a.*b
a/b
ab
加法
减法
矩阵乘法
数组乘法
矩阵右除
矩阵左除
a./b
a.b
a^b
a.^b
-a
数组右除
数组左除
矩阵乘方
数组乘方
负号
共轭转置
一般转置
'
.'
Matlab的关系运算符
==
<
>
<=
等于
小于
大于
小于或等于
>=
~=
大于或等于
不等于
如何用matlab求阶乘
factorial(n) 求n的阶乘
如何用matlab进行多项式运算
(1) 合并同类项
syms 表达式中包含的变量 collect(表达式,指定的变量)
(2)因式分解
syms 表达式中包含的变量 factor(表达式)
(3)展开
syms 表达式中包含的变量 expand(表达式)
(4)化简
syms 表达式中包含的变量 simplify(表达式)
如何用matlab进行复数运算
表示复数a+bi 或 a+bj
求复数z的实部
求复数z的虚部
求复数z的模
求复数z的辐角,
求复数z的共轭复数
复数的指数函数,表示e^z
a+b*i 或 a +b*j
real(z)
imag(z)
abs(z)
angle(z)
conj(z)
exp(z)
如何用Matlab求集合的交集、并集、差集和补集
union(A,B)
intersect(A,B)
setdiff(A,B)
setdiff(U,A)
求集合A和B的并集
求集合A和B的交集
求集合A和B的差集A-B
求集合A关于全集U的补集
如何用matlab排序
sort(v) 将向量v的元素从小到大排列(升序排列)
sort(v,dim,’descend or ascend’)
当dim=1时矩阵按列排序,descend or ascend用来控制升序还是降序
当dim=2时矩阵按行排序,descend or ascend用来控制升序还是降序
如何用Matlab求极限
(1) 极限:
syms x
limit(f(x), x, a) 求f(x)关于x趋于a时的极限
(2)
单侧极限:
左极限:syms x limit(f(x), x, a,’left’)
求f(x)关于x趋于a时的左极限
右极限:syms x limit(f(x), x, a,’right’)
求f(x)关于x趋于a时的右极限
如何用Matlab求导数
diff('f(x)') diff('f(x)','x') 求f(x)关于x的导数
或者:syms x diff(f(x))
syms x diff(f(x), x)
如何用Matlab求高阶导数
如何用Matlab求高阶导数
diff('f(x)',n) diff('f(x)','x',n) 求f(x)关于x的n阶导数
syms x diff(f(x),n)
syms x diff(f(x), x,n)
如何用Matlab求不定积分
int('f(x)') int ('f(x)','x') 求f(x)关于x的积分
syms x int(f(x))
syms x int(f(x), x)
如何用Matlab求定积分、广义积分
int('f(x)',a,b) int ('f(x)','x',a,b) 求f(x)关于x的积分,区间为a到b
syms x int(f(x),a,b)
syms x int(f(x), x,a,b)
如何用Matlab展开级数
syms x taylor(f(x), x, n, )
a
如何在Matlab中进行积分变换
syms s t
laplace( f(t), t, s ) 拉普拉斯变换
ilaplace( F(s), s, t ) 拉普拉斯变换的逆变换
syms t ω
fourier( f(t), t, ω) 傅立叶变换
ifourier( F(ω), ω, t ) 傅立叶变换的逆变换
syms n z
ztrans( 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,x
1
,x
2
,…, x
n
)’) 求偏导数
如何用matlab求多变量函数的泰勒展开式
Matlab符号运算工具箱没有提供专门的函数求多变量函数的泰勒展开式,但我们可以调用
maple的命令求求解,调用格式如下:
maple(‘mtaylor(f,[x=x
0
,y=y
0
,...],n)’)
在x=x
0
,y=y
0
,...处求函数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)’,x
0
,options)
求函数f(x)的极小值点。其中x
0
为极小值点的猜测值,x、x
0
可以是标量、向量或矩阵;
options为参数说明语句。
[x,fval]=fminunc(‘f(x)’,x
0
,options)
返回的x为极小值点,fval为函数的极小值
注:①Matlab没有提供求极大值的命令。要求函数f(x)的极大值点,只需求函数-f(x)的极小
值点。-f(x)的极小值的相反数就是f(x)的极大值。
② fminunc(‘f(x)’,x
0
,options)的局限性
1.
只能处理实数函数的优化问题。
2.
目标函数必须是连续的。
3.
给出的可能只是局部解。
(2)
有约束条件的极值
x=fmincon(‘f(x)’,x
0
,A,b,Aeq,beq,lb,ub,nonlcon,options)
f(x)为需要优化的目标函数,x
0
为变量的估计初值,x、x
0
可以是标量、向量或矩阵, options
为参数说明语句。A,b,Aeq,beq,lb,ub,nonlcon为优化的约束条件。
[x,fval]=fmincon(‘f(x)’,x
0
,A,b,Aeq,beq,lb,ub,nonlcon,options)
返回的x为极小值点,fval为函数的极小值
注:
①优化的约束条件
A,b
(线性不等式约束)
Aeq,beq
(线性等式约束)
lb,ub
nonlcon
(边界约束)
lb≤x≤ub
A*x
在表达约束条件时,默认为线性不等式约束,线性等式约束,边界约束,非线性不等式约束
和非线性等式约束在形式上按顺序同时存在于命令函数声明约束的位置上。如果某种约束不
存在,则以空向量表示。不等式约束在形式上是一个函数表达式,系统默认为其小于或等于
0,等式约束在形式上也是一个函数表达式,系统默认为其等于0。这样就需要把待求问题
的约束条件转化为小于0或等于0的形式。
② fmincon(‘f(x)’,x
0
,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
向量代数
如何用matlab表示向量
可以把向量看成只有一行或一列的矩阵,其创建方法和矩阵的创建方法相同,只是向量
只有一行或一列就是了。
[a
1
,a
2
,...,a
n
] 生成由a
1
,a
2
,...,a
n
组成的向量(可以把逗号改为空格)
zeros(1,n) 生成由n个元素0组成的行向量
zeros(n,1) 生成由n个元素0组成的列向量
ones(1,n) 生成由n个元素1组成的行向量
ones(n,1) 生成由n个元素1组成的列向量
如何用matlab进行向量的加减运算及数乘运算
A+B 向量A与B的和
A-B 向量A与B的差
k*A 或 A*k 数k与向量A的数乘
如何用matlab求向量的点积
dot(a,b) 计算向量a与b的点积。
a'*b 计算向量a与b的点积(a、b必须为列向量)
如何用matlab求向量的叉积
cross(a,b) 计算向量a与b的叉积。
如何用matlab求向量的模与夹角
norm(v) 计算向量v的模
norm(v,2) 计算向量v的模
Matlab没有提供求两个向量夹角的命令。不过根据向量的夹角公式我们可以自己编写一
个函数进行计算。
概率统计
如何用matlab求平均值
mean(data) 求数据data的算术平均数。数据data可以是向量,也可以是矩阵(此时,
返回每一列元素的算术平均数)。
harmmean(data) 求数据data的调和平均数。数据data可以是向量,也可以是矩阵(此时,
返回每一列元素的调和平均数)。
geomean(data) 求数据data的几何平均数。数据data可以是向量,也可以是矩阵。(此
时,返回每一列元素的几何平均数)。
如何用matlab求中位数
median(data) 求数据data的中位数。数据data可以是向量,也可以是矩阵(此
时,返回每一列元素的中位数)。
如何用matlab求方差和标准差
var(data) 求数据data的样本方差。数据data可以是向量,也可以是矩阵。(此时,返
回每一列元素的样本方差)。
var(data,1) 求数据data的母体方差。数据data可以是向量,也可以是矩阵。(此时,返
回每一列元素的母体方差)。
std(data) 求数据data的样本标准差。数据data可以是向量,也可以是矩阵。(此时,
返回每一列元素的样本标准差)。
如何用matlab求协方差和相关系数
cov(data) 求数据data的协方差矩阵。数据data可以是向量,也可以是矩阵。
cov(data
1
,data
2
) 求数据data
1
和data
2
的协方差矩阵。data
1
和data
2
是长度相等的列向量。
corrcoef(data) 求数据data的相关系数矩阵。data是一个矩阵。
corrcoef (data
1
,data
2
) 求数据data
1
和data
2
的相关系数矩阵。
如何用matlab进行曲线拟合
polyfit(X,Y,n)
根据数据X和Y拟合一个n阶多项式。其中X和Y分别是数据点的
横、纵坐标组成的向量。
polyval(P,X)
根据数据X,用拟合多项式P生成拟合好的数据。换句话说,就是求
拟合而得的多项式P在数据X处的值。
Round 四舍五入函数,调用格式为round(a),a为矩阵或向量
(mean(cj,2) 按行求cj的平均值
(mean(cj,1) 按列求cj的平均值
sum((cj>75),2) 按行统计cj大于75的个数
sum((cj>75),1) 按列统计cj大于75的个数
eval 执行matlab语句构成的字符串


发布评论