Matlab中的那些数学函数

前言

本来是打算写关于矩阵的一些东西,但是弄了一半,发现需要的线代知识有点多,直接讲相关的使用,就太直白了,可能根本无法理解是什么意思,如果讲线代的知识,就感觉和该系列的文不太符,所以直接弃了那部分,打算之后讲到其他例程的时候,夹杂在其中进行,本篇就对MATLAB中常用的数学函数做一些记录。

三角函数

三角函数这个就真的是很常用很常用了,特别是做数字信号处理的时候,经常做混频用,当然其他的领域也常用到,不过对其他领域不太熟,所以就不举例子了

以下的表格是一些三角函数的函数名,及其说明,然后拿几个大家比较熟悉的出来演示:

函数名说明
sin正弦函数
sinh双曲正弦函数
asin反正弦函数,返回弧度
asinh反双曲正弦函数
cos余弦函数
cosh双曲余弦函数
acos反余弦函数,返回弧度
acosh反双曲余弦函数
tan正切函数
tanh双曲正切函数
atan反正切函数,返回弧度
atanh反双曲正切函数
asech反双曲正割函数
cot余切函数
coth双曲余切函数
acot反余切函数,返回弧度
acoth反双曲余切函数
asind反正弦函数,返回角度
acosd反余弦函数,返回角度
atand反正切函数,返回角度
acotd反余切函数,返回角度

简单使用:

%第一部分
x=0:0.01:4*pi;
y1=cos(x);
y2=sin(x);
figure(1);
plot(x,y1,'r',x,y2,'g')
%第二部分
x=-5*pi:pi/27:5*pi;
y1=sin(x);
y2=cos(x);
y3=tan(x);
figure(2);
plot(x,y1,'r',x,y2,'g',x,y3,'b');%r:红色 g:绿色 b:蓝色

运行的效果:

image-20200920220705260

image-20200920220736617

实例应用:

题:已知三角形的三条边,分别长2、3、4,求解长度2和4的两条边的夹角。

解题方案:直接通过计算夹角的余弦值,然后直接通过反余弦得到该角的值,当然也肯定还可以有其他的方法,有需要可以自行挖掘。

解题程序:

x=2;y=4;z=3;
cos_alpha=(x^2+y^2-z^2)/(2*x*y)
alpha_r=acos(cos_alpha)%弧度
alpha_d=alpha_r*180/pi%弧度转角度
alpha_d2=acosd(cos_alpha)%直接得角度

解题结果:

image-20200920221225860

指数和对数函数

这两个函数的话,我也不知道咋说,现在印象里只记得弄功率谱的时候可以用下,其他的近来也没使用上,反正很重要就对了。

常用的指数和对数函数如下表,expm和logm就是用于矩阵的,和exp、log很好区别,加了个m(matrix):

函数名说明
exp指数函数
log自然函数,即对数函数
log2以2为底的对数,分割浮点数
log10以10为底的对数
nextpow2下一个以2为底的更高次幂
pow2以2为底的幂和比例浮点数
expm矩阵指数函数
logm矩阵对数函数

简单使用:

%程序1
a=2;
e=exp(a)
l=log(a)
l2=log2(a)
l10=log10(a)
np=nextpow2(a)
p=pow2(a)
s=sqrt(a)

结果太长,就直接复制数值过来比对了:

e =
    7.3891
l =
    0.6931
l2 =
     1
l10 =
    0.3010
np =
     1
p =
     4
s =
    1.4142
%程序2
A=rand(3)
Ae=expm(A)
Al=logm(A)

结果如下:

image-20200920221804538

复数处理函数

关于复数的处理函数,这个最近就比较深刻了,做工程的时候,用得蛮多的,在MATLAB里面除了一些变换以及直接赋值可以得到复数外,还可以直接用complex函数构造一个复数,对复数可以操作的函数,在下表中的展示:

函数名说明
abs绝对值、复数的模
angle相位角
complex构造复数
conj复共轭
cplxpair在复共轭对中加入有序数
imag复数虚部
real复数实部
isreal判断数组是否为实数
unwrap不展开相位角

简单使用:

%程序
a=complex(3,4)
a_r=real(a)
a_i=imag(a)
a_abs=abs(a)
a_ang=angle(a)
a_c=conj(a)

还是一样,直接复制数据结果:

a =
   3.0000 + 4.0000i
a_r =
     3
a_i =
     4
a_abs =
     5
a_ang =
	0.9273
a_c =
   3.0000 - 4.0000i

离散函数

离散函数就如名字一样,是离散的效果,通过离散函数绘制离散的数据,可以得到冲击状和阶梯状的图,分别是stem和stairs,这两个就没必要列表了,直接看下使用的效果吧。

简单使用:

x=0:0.1:2;
figure(1);
stem(exp(-x.^2),'fill','r-.');%'fill' 'r-.' 填充红色,并以-.与横坐标对齐
figure(2);
stem(exp(-x.^2),'fill','b-*');%'fill' 'b-*' 填充蓝色,并以-*与横坐标对齐
figure(3);
stairs(exp(-x.^2));%绘制阶梯图

运行结果:

image-20200920222544854

在这里插入图片描述

image-20200920222928740

特殊数学函数

这部分的就是真的特殊了,如果没啥需要的话,可以直接结束本篇的阅读了,想看的话,就往下慢慢阅读。

通过特殊的函数可以实现坐标系的变换、绘制特殊函数曲线、特定积分运算以及误差处理等等,部分特殊数学函数如下表:

函数名说明
airy艾里函数
besselj第一类贝塞尔*(Bessel)*函数
bessely第二类贝塞尔*(Bessel)*函数
besselh第三类贝塞尔*(Bessel)*函数
besseli第一类变形的贝塞尔*(Bessel)*函数
besselk第二类改进的贝塞尔*(Bessel)*函数
betaBeta函数
betainc不完全Beta函数
betaln对数Beta函数
ellipj雅可比矩阵(Jacobi)椭圆函数
ellipke完全椭圆函数
cart2pol直角坐标变极坐标
cart2sph直角坐标变球坐标
erf误差函数
erfinv误差函数的逆函数
erfc余误差函数
erfcinv余误差函数的逆函数
erfcx互补误差函数(erfcx(x)=exp(x^2)*erfc(x))
expint指数积分函数
gammaGamma函数
gammainc不完全Gamma函数
gammaln对数Gamma函数
psiPsi函数
legendreLegendre函数
pol2cart极主标变直角坐标
sph2cart球坐标变直角坐标

直接来个看着让人懵逼的图,代码就不分析了,有点印象就好,用到了再去help吧~

%特殊函数简单例程
[X,Y]=meshgrid(-10:0.02:2,-3:0.02:3);
BH=besselh(0,1,X+i*Y);
contour(X,Y,abs(BH),0:0.2:10);hold on
contour(X,Y,(180/pi)*angle(BH),-180:10:180);hold off
format rat
B=beta((0:10),3)
BC=betainc(0.5,(0:10),3)
PSI=psi(1,2)

结果:

image-20200920223632556

image-20200920223709581

image-20200920223729653

坐标转换的也再来个吧:

%坐标转换
r=1;
theta=linspace(0,pi);
phi=linspace(0,2*pi);
[tt,pp]=meshgrid(theta,phi);
[x,y,z]=sph2cart(pp,pi/2-tt,r);
subplot(121);
mesh(x,y,z);
axis square%设为方形
shading flat%不使用高级着色
subplot(122);
mesh(tt,pp,z);
shading flat%不使用高级着色
axis square%设为方形

运行结果:

image-20200920230109339
本次的记录到此结束,关于图形的相关函数如果不懂的可以自己先help进行了解,后续也会针对图形的函数进行记录分享。



-更多精彩等你发现-



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值