第8章 数学函数通览

第8章 数学函数通览

8.1 初等数学函数运算

8.1.1 三角函数

函数名 功能描述 函数名 功能描述
sin 正弦 sec 正割
sind 正弦,输入值以“°”为单位 secd 正割,输入值以“°”为单位
sinpi 准确计算sin(X*pi) sech 双曲正割
sinh 双曲正弦 asec 反正割
asin 反正弦 asecd 反正割,输出值以“°”为单位
asind 反正弦,输出值以“°”为单位 asech 反双曲正割
asinh 反双曲正弦 csc 余割
cos 余弦 cscd 余割,输入值以“°”为单位
cosd 余弦,输入值以“°”为单位 csch 双曲余割
cospi 准确计算cos(X*pi) acsc 反余割
cosh 双曲余弦 acscd 反余割,输出值以“°”为单位
acos 反余弦 acsch 反双曲余割
acosd 反余弦,输出值以“°”为单位 cot 余切
acosh 反双曲余弦 cotd 余切,输入值以“°”为单位
tan 正切 coth 双曲余切
tand 正切,输入值以“°”为单位 acot 反余切
tanh 双曲正切 acotd 反余切,输出值以“°”为单位
atan 反正切 acoth 反双曲余切
atand 反正切,输出值以“°”为单位 hypot 平方和的平方根(斜边)
atan2 四象限反正切 deg2rad 将角以“°”为单位转换为以弧度为单位
atan2d 四象限反正切(以“°”为单位) rad2deg 将角的单位从弧度转换为“°”
atanh 反双曲正切 ... ...
>> x=0:0.05*pi:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,'b-',x,y2,'ro-')
>> xlabel('X取值'); ylabel('函数值');
>> legend('正弦函数','余弦函数')

8.1.1 三角函数图形

8.1.2 指数和对数函数

函数名 功能描述 函数名 功能描述
exp 指数 realpow 幂,若结果是复数则报错
expm1 准确计算exp(x)减去1的值 reallog 自然对数,若输入不是正数则报错
log 自然对数(以e为底) realsqrt 开平方根,若输入不是正数则报错
log1p 准确计算log(1+x)的值 sqrt 开平方根
log10 常用对数(以10为底) nthroot 求x的n次方根
log2 以2为底的对数 nextpow2 返回满足2^P>=abs(N)的最小正整数P,N为输入
>> x1=-1:0.2:6; x2=0.1:0.3:6;
>> y1=exp(x1); y2=log(x2);
>> subplot(1,2,1); plot(x1,y1,'b-')
>> xlabel('自变量取值'); ylabel('函数值');
>> legend('e^x');
>> subplot(1,2,2); plot(x2,y2,'ro-')
>> xlabel('自变量取值'); ylabel('函数值');
>> legend('logx');

8.1.2 指数和对数函数图形

8.1.3 复数函数

函数名 功能描述 函数名 功能描述
abs 绝对值(复数的模) imag 复数的虚部
angle 复数的相角 isreal 是否为实数矩阵
complex 用实部和虚部构造一个复数 real 复数的实部
conj 复数的共轭 sign 符号函数
cplxpair 把复数矩阵排列成复共轭对 unwrap 调整矩阵元素的相位
i 虚数单位 j 虚数单位
Q=unwrap(P) % 当相位大于默认值π时,校正相位
Q=unwrap(P,tol) % 用tol设定值
Q=unwrap(P,[],dim) % 用默认阈值π在给定维dim上做相位校正
Q=unwrap(P,tol,dim) % 用阈值tol在给定维dim上做相位校正

B=cplxpair(A) % 对沿复数数组不同维度的元素排序,并将复共轭对组组合在一起
B=cplxpair(A,tol) % 覆盖默认容差
B=cplxpair(A,[],dim) % 沿着标量dim指定的维度对A排序
B=cplxpair(A,tol,dim) % 沿着指定维度对A排序并覆盖默认容差
>> t=linspace(0,6*pi,201);
>> x=t/pi.*cos(t);
>> y=t/pi.*sin(t);
>> plot(x,y) % 绘制螺旋线
>> P=atan2(y,x); % 基于螺旋线x、y坐标求其相位角,返回函数在[-n,n]区间的角度值
>> plot(t,P) % 相位角有不连续性
>> Q=unwrap(P); % 使用unwrap函数消除不连续性
>> plot(t,Q) % 平移后的相位角

8.1.3 螺旋线

8.1.3 相位角

8.1.3 平移后的相位角

8.1.4 截断和求余函数

函数名 功能描述 函数名 功能描述
fix 向零取整 mod 除法求余(与除数同号)
floor 向负无穷方向取整 rem 除法求余(与被除数同号)
ceil 向正无穷方向取整 sign 符号函数
round 四舍五入 idivide 带有舍入选项的整除
>> A=[-2.88 -2.35 2.35 2.88];
>> fix_A=fix(A)

fix_A =

    -2    -2     2     2

>> floor_A=floor(A)

floor_A =

    -3    -3     2     2

>> ceil_A=ceil(A)

ceil_A =

    -2    -2     3     3

>> round_A=round(A)

round_A =

    -3    -2     2     3

>> A=[12 -12 12 -12];
>> B=[7 -7 -7 7];
>> rem_C=rem(A,B)

rem_C =

     5    -5     5    -5

>> mod_C=mod(A,B)

mod_C =

     5    -5    -2     2 

8.2 特殊数学函数运算

8.2.1 特殊函数

函数名 功能描述 函数名 功能描述
airy Airy函数 erfc 补余误差函数:erfc(x)=1-erf(x)
besseli 第一类修正Bessel函数 erfcinv 逆补余误差函数
besselj 第一类Bessel函数 erfcx 换算补余误差函数erfcx(x)=exp(x^2)*erfc(x)
besselk 第二类修正Bessel函数 erfinv 误差函数的逆函数
bessely 第二类Bessel函数 expint 指数积分函数
besselh 第三类Bessel函数(Hankel函数) gamma Gamma函数
beta Beta函数 gammainc 不完全Gamma函数
betainc 不完全Beta函数 gammaincinv 逆不完全Gamma函数
betaincinv Beta逆累积分布函数 gammaln 对数Gamma函数
betaln Beta函数的对数 psi 多Γ函数
ellipj Jacobi椭圆函数 legendre 连带勒让德函数
ellipke 第一类和第二类完全椭圆积分 cross 矢量叉乘
erf 误差函数 dot 矢量点乘

8.2.1.1 Airy函数

​Airy函数是微分方程 \(\dfrac{\mathrm{d}^2 W}{\mathrm{d} Z^2} - ZW = 0\) 的解。有两类Airy函数:第一类Airy函数 \(A_i(Z)\) 和第二类Airy函数 \(B_i(Z)\)。它们可以用改进的第一类Bessel函数 \(I_v(Z)\) 和改进的第二类Bessel函数 \(K_v(Z)\) 定义,表达式如下:

\[A_i(Z) = \left[ \dfrac{1}{\pi} \sqrt{\dfrac{Z}{3}} \right] K_{\tfrac{1}{3}} \left( \dfrac{2}{3} Z^{\tfrac{3}{2}} \right) \\ B_i(Z) = \sqrt{\dfrac{Z}{3}} \left[ K_{- \tfrac{1}{3}} \left( \dfrac{2}{3} Z^{\tfrac{3}{2}} \right) + K_{\tfrac{1}{3}} \left( \dfrac{2}{3} Z^{\tfrac{3}{2}} \right) \right] \]

W=airy(Z) % 为Z的每个元素返回第一类Airy函数Aᵢ(Z)
W=airy(k,Z) % 根据k值返回Airy函数,k=0返回Aᵢ(Z),k=1返回Aᵢ'(Z),k=2返回Bᵢ(Z),k=3返回Bᵢ'(Z)
W=airy(k,Z,scale) % 根据选择的k和scale缩放生成Airy函数

8.2.1.2 Bessel函数

​Bessel函数是微分方程 \(Z^2 \dfrac{\mathrm{d}^2 y}{\mathrm{d} Z^2} + Z \dfrac{\mathrm{d} y}{\mathrm{d} Z} + (Z^2 - v^2)y = 0\)(Bessel方程)的解,其中 \(v\) 是常量。该方程有两个线性无关的解,第一类Bessel函数 \(J_v(Z)\) 和第二类Bessel函数 \(Y_v(Z)\),它们的表达式如下:

\[J_v(Z) = \left( \dfrac{Z}{2} \right)^v \sum_{k=0}^{\infty} \dfrac{(Z)^k}{k! \Gamma(v+k+1)} \\ Y_v(Z) = \dfrac{J_v(Z) \cos(v \pi) - J_{-v}(Z)}{\sin(v \pi)} \]

​有时也采用Hankel函数来表示Bessel方程,它们是第一类Bessel函数和第二类Bessel函数的线性组合,即

\[H_v^{(1)}(Z) = J_v(Z) + \mathrm{i} Y_v(Z) \\ H_v^{(1)}(Z) = J_v(Z) - \mathrm{i} Y_v(Z) \]

​Hankel函数 \(H_v^{(k)}(Z)\) 称为第三类Bessel函数。

J=besselj(nu,Z) % 为数组Z中的每个元素计算第一类Besse1函数Jᵥ(Z)
J=besselj(nu,Z,scale) % 指定是否呈指数缩放第一类Bessel函数以避免溢出或精度损失

Y=bessely(nu,Z) % 返回第二类Bessel函数Yᵥ(Z)
Y=bessely(nu,Z,scale) % 指定是否呈指数缩放第二类Bessel函数以避免溢出或精度损失

H=besselh(nu,Z) % 为数组Z中的每个元素计算第一类Hankel函数
H=besselh(nu,K,Z) % 为数组Z中的每个元素计算第一类或第二类Hankel函数,K为1或2
H=besselh(nu,K,Z,scale) % 指定是否缩放Hankel函数以避免溢出或精度损失

​说明:如果scale为1,函数besselj、bessely输出按因子exp(-abs(imag(Z)))进行缩放;函数besselh输出时,第一类Hankel函数 \(H_v^{(1)}(Z)\)\(\mathrm{e}^{-\mathrm{i}Z}\) 进行缩放,第二类Hankel函数 \(H_v^{(2)}(Z)\)\(\mathrm{e}^{+\mathrm{i}Z}\) 进行缩放。

​改进的Bessel函数是微分方程 \(Z^2 \dfrac{\mathrm{d}^2 y}{\mathrm{d} Z^2} + Z \dfrac{\mathrm{d} y}{\mathrm{d} Z} + (Z^2 - v^2)y = 0\) 的解,其中 \(v\) 是常量。该方程有两个线性无关的解,第一类改进的Bessel函数 \(I_v(Z)\) 和第二类改进的Bessel函数 \(K_v(Z)\),它们的表达式如下:

\[I_v(Z) = \left( \dfrac{Z}{2} \right)^v \sum_{k=0}^{\infty} \dfrac{\left( \dfrac{Z^2}{4} \right)^k}{k! \Gamma(v+k+1)} \\ Y_v(Z) = \dfrac{\pi}{2} \dfrac{I_{-v}(Z) - I_v(Z)}{\sin(v \pi)} \]

I=besseli(nu,Z) % 返回第一类改进的Bessel函数Iᵥ(Z)
I=besseli(nu,Z,1) % 返回besseli(nu,Z).*exp(-abs(real(Z)))
K=besselk(nu,Z) % 返回第二类改进的Bessel函数Kᵥ(Z)
K=besselk(nu,Z,1) % 返回besselk(nu,Z).*exp(Z)

8.2.1.3 Gamma函数和Beta函数

Gamma函数:\(\displaystyle \Gamma(a) = \int_0^{\infty} \mathrm{e}^{-t} t^{a-1} \,\mathrm{d}t\)

不完全Gamma函数:\(\displaystyle P(x,a) = \dfrac{1}{\Gamma(a)} \int_0^x \mathrm{e}^{-t} t^{a-1} \,\mathrm{d}t\)

\(\Gamma\) 函数:\(\displaystyle \varPsi_n(x) = \dfrac{\mathrm{d}^{n-1} \varPsi(x)}{\mathrm{d} x^{n-1}}\),其中 \(\displaystyle \varPsi(x) = \dfrac{\Gamma'(x)}{\Gamma(x)} = \dfrac{\mathrm{d} \ln(\Gamma(x))}{\mathrm{d} x}\)\(\displaystyle \varPsi_n(x)\) 称为 \((n+1) \Gamma\) 函数,如\(\displaystyle \varPsi_3(x)\) 称为 \(\displaystyle 4 \Gamma\) 函数。

Beta函数:\(\displaystyle B(z,w) = \int_0^1 t^{z-1} (1-t)^{w-1} \,\mathrm{d}t = \dfrac{\Gamma(z) \Gamma(w)}{\Gamma(z+w)}\)

不完全Beta函数:\(\displaystyle I(z,w) = \dfrac{1}{B(z,w)} \int_0^x t^{z-1} (1-t)^{w-1} \,\mathrm{d}t\)

Y=gamma(a) % 返回Γ(a)
Y=gammainc(x,a) % 返回不完全Gamma函数P(x,a)
Y=gammainc(X,A,tail) % 当tail='lower'时返回P(x,a),tail='upper'时返回1-P(x,a)
Y=gammaln(A) % 返回Gamma函数的对数,避免采用1og(gamma(a))造成的溢出情况
Y=psi(x) % 返回双Γ函数Ψ₁(x)
Y=psi(k,x) % 返回k+2Γ函数Ψₖ₊₁(x)
B=beta(z,w) % 返回Beta函数B(z,w)
I=betainc(x,z,w) % 返回不完全Beta函数Iₓ(z,w)
L=betaln(z,w) % 返回ln(B(z,w)),可以避免采用log(beta(a))造成的溢出情况

8.2.1.4 Jacobi椭圆函数和完全椭圆积分

​Jacobi椭圆函数sn(u)、cn(u)和dn(u)是定义在勒让德第一类椭圆积分基础上的。其中,勒让德第一类椭圆积分表达式如下:

\[u(m,\phi) = \int_0^{\phi} \dfrac{\mathrm{d} \theta}{(1 - m \sin^2 (\theta))^{\tfrac{1}{2}}} \]

​第一类完全椭圆积分 \(K(m)\) 也是定义在勒让德第一类椭圆积分基础上的( \(\phi = \dfrac{\pi}{2}\) ),其表达式如下:

\[K(m) = \int_0^{\tfrac{\pi}{2}} (1 - m \sin^2 (\theta))^{\tfrac{1}{2}} \,\mathrm{d} \theta \]

[SN,CN,DN]=el1ipj(U,M) % 返回Jacobi椭圆函数sn(u)、cn(u)和dn(u)
[SN,CN,DN]=ellipj(U,M,tol) % 以指定精度tol计算Jacobi椭圆函数,默认精度是eps
K=ellipke(M) % 返回第一类完全椭圆积分K(m)
[K,E]=ellipke(M) % 返回第一类完全椭圆积分K(m)和第二类完全椭圆积分E(m)
[K,E]=ellipke(M,tol) % 以指定精度tol计算完全椭圆积分

8.2.1.5 误差函数

误差函数:\(\displaystyle \mathrm{erf}(x) = \dfrac{2}{\sqrt{\pi}} \int_0^x \mathrm{e}^{-t^2} \,\mathrm{d} t\)

补余误差函数:\(\displaystyle \mathrm{erfc}(x) = \dfrac{2}{\sqrt{\pi}} \int_x^{\infty} \mathrm{e}^{-t^2} \,\mathrm{d} t = 1 - \mathrm{erf}(x)\)

Y=erf(X) % 返回误差函数
Y=erfc(X) % 返回补余误差函数1-erf(x),当erf(x)接近1时,使用erfc函数替换1-erf(x)以提高准确性
Y=erfcx(X) % 返回换算补余误差函数exp(x^2)*erfc(x)的值,避免下溢或溢出错误
X=erfinv(Y) % 返回误差函数的逆函数,对于[-1 1]区间之外的输入,erfinv返回NaN
X=erfcinv(Y) % 返回补余误差函数的反函数
>> erf(0.66) % 求值的误差函数

ans =

    0.6494

>> V=[-0.8 0 3 0.82];
>> erf(V) % 求向量元素的误差函数

ans =

   -0.7421         0    1.0000    0.7538

>> M=[0.59 -0.41; 6.1 -1.9];
>> erf(M) % 求矩阵元素的误差函数

ans =

    0.5959   -0.4380
    1.0000   -0.9928

8.2.1.6 指数积分函数

指数积分表达式为\(\displaystyle E_1(x) = \int_x^{\infty} \dfrac{\mathrm{e}^{-t}}{t} \,\mathrm{d} t\)

Y = expint(X) % 计算X中每个元素的指数积分

8.2.2 坐标变换函数

函数名 功能描述 函数名 功能描述
cart2sph 将笛卡儿坐标系转换为球坐标系 sph2cart 将球坐标系转换为笛卡儿坐标系
cart2pol 将笛卡儿坐标系转换为极坐标系 hsv2rgb 将灰度饱和度颜色空间转换为RGB颜色空间
pol2cart 将极坐标系转换为笛卡儿坐标系 rgb2hsv 将RGB颜色空间转换为灰度饱和度颜色空间
>> [a,b,c]=pol2cart(1,1,1)

a =

    0.5403


b =

    0.8415


c =

     1

>> [d,e,f]=sph2cart(1,1,1)

d =

    0.2919


e =

    0.4546


f =

    0.8415

8.2.3 数论函数

函数名 功能描述 函数名 功能描述 函数名 功能描述
factor 分解质因子 lcm 最小公倍数 primes 小于或等于输入值的素数
factorial 阶乘 nchoosek 二项式系数或所有组合 rat 把实数近似为有理数
gcd 最大公因数 perms 给出向量的所有置换(可能的排列) rats 利用rat函数显示输出
isprime 判断是否为素数 matchpairs 求解线性分配问题 ... ...
>> f=factor(686) % 求质因数

f =

     2     7     7     7

>> f=factorial(5) % 求阶乘

f =

   120

>> A=[-5 17; 10 0];
>> B=[-15 3; 100 0];
>> G=gcd(A,B) % 求A和B元素的最大公因数,gcd(0,0)返回0

G =

     5     1
    10     0
posted @ 2026-01-12 10:30  Zhuye_inking  阅读(50)  评论(0)    收藏  举报