前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab系列之那些数学函数(讨论功能已加入)

Matlab系列之那些数学函数(讨论功能已加入)

作者头像
狂人V
发布2020-09-23 12:35:32
9480
发布2020-09-23 12:35:32
举报
文章被收录于专栏:电子狂人

前言

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

三角函数

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

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

函数名

说明

sin

正弦函数

sinh

双曲正弦函数

asin

反正弦函数,返回弧度

asinh

反双曲正弦函数

cos

余弦函数

cosh

双曲余弦函数

acos

反余弦函数,返回弧度

acosh

反双曲余弦函数

tan

正切函数

tanh

双曲正切函数

atan

反正切函数,返回弧度

atanh

反双曲正切函数

asech

反双曲正割函数

cot

余切函数

coth

双曲余切函数

acot

反余切函数,返回弧度

acoth

反双曲余切函数

asind

反正弦函数,返回角度

acosd

反余弦函数,返回角度

atand

反正切函数,返回角度

acotd

反余切函数,返回角度

简单使用:

代码语言:javascript
复制
%第一部分 
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:蓝色

运行的效果:

实例应用:

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

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

解题程序:

代码语言:javascript
复制
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)%直接得角度

解题结果:

指数和对数函数

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

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

函数名

说明

exp

指数函数

log

自然函数,即对数函数

log2

以2为底的对数,分割浮点数

log10

以10为底的对数

nextpow2

下一个以2为底的更高次幂

pow2

以2为底的幂和比例浮点数

expm

矩阵指数函数

logm

矩阵对数函数

简单使用:

代码语言:javascript
复制
%程序1
a=2; 
e=exp(a)
l=log(a)
l2=log2(a)
l10=log10(a)
np=nextpow2(a)
p=pow2(a)
s=sqrt(a)

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

代码语言:javascript
复制
e = 
    7.3891 
l = 
    0.6931 
l2 = 
     1 
l10 = 
    0.3010 
np = 
     1 
p = 
     4 
s = 
    1.4142

例程2

代码语言:javascript
复制
%程序2
A=rand(3)
Ae=expm(A)
Al=logm(A)

结果如下:

复数处理函数

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

函数名

说明

abs

绝对值、复数的模

angle

相位角

complex

构造复数

conj

复共轭

cplxpair

在复共轭对中加入有序数

imag

复数虚部

real

复数实部

isreal

判断数组是否为实数

unwrap

不展开相位角

简单使用:

代码语言:javascript
复制
%程序
a=complex(3,4)
a_r=real(a)
a_i=imag(a)
a_abs=abs(a)
a_ang=angle(a)
a_c=conj(a)

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

代码语言:javascript
复制
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,这两个就没必要列表了,直接看下使用的效果吧。

简单使用:

代码语言:javascript
复制
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));%绘制阶梯图

运行结果:

特殊数学函数

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

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

函数名

说明

airy

艾里函数

besselj

第一类贝塞尔(Bessel)函数

bessely

第二类贝塞尔(Bessel)函数

besselh

第三类贝塞尔(Bessel)函数

besseli

第一类变形的贝塞尔(Bessel)函数

besselk

第二类改进的贝塞尔(Bessel)函数

beta

Beta函数

betainc

不完全Beta函数

betaln

对数Beta函数

ellipj

雅可比矩阵(Jacobi)椭圆函数

ellipke

完全椭圆函数

cart2pol

直角坐标变极坐标

cart2sph

直角坐标变球坐标

erf

误差函数

erfinv

误差函数的逆函数

erfc

余误差函数

erfcinv

余误差函数的逆函数

erfcx

互补误差函数(erfcx(x)=exp(x^2)*erfc(x))

expint

指数积分函数

gamma

Gamma函数

gammainc

不完全Gamma函数

gammaln

对数Gamma函数

psi

Psi函数

legendre

Legendre函数

pol2cart

极主标变直角坐标

sph2cart

球坐标变直角坐标

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

代码语言:javascript
复制
%特殊函数简单例程
[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)

结果:

坐标转换的也再来个吧:

代码语言:javascript
复制
%坐标转换
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%设为方形

运行结果:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子狂人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 三角函数
  • 特殊数学函数
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档