17.6特殊函数

 
:a= airy (z)
:a= airy (k,z)
:a= airy (k,z,scale)
:[a,ierr] = airy (…)

计算第一类和第二类艾里函数及其导数。

K函数比例因子(如果scale为真)---------------------------------------------0 Ai(Z)exp((2/3)*Z*sqrt(Z)

函数调用通风的z)相当于airy(0,z).

可选的第三个输入scale确定是否应用如上所述的缩放。默认情况下为false。

结果a大小与相同z.

可选输出ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少而失去显著性,输出可能不准确。
  6. 错误--没有计算,不满足算法终止条件,返回NaN.
广告
 
:J= besselj (alpha,x)
:J= besselj (alpha,x,opt)
:[J,ierr] = besselj (…)

计算第一类贝塞尔函数。

贝塞尔函数的阶alpha必须是真实的。积分预测x可能很复杂。

如果可选参数opt为1或true,则结果Ji乘以exp(-abs(imag(x))) .

如果alpha是标量,结果大小与x如果x是标量,结果大小与alpha如果alpha是一个向量,并且x是列向量,结果是一个矩阵x)行和alpha)柱。否则alphax必须符合,结果将是相同的大小。

如果被指定,ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少而失去显著性,输出可能不准确。
  6. 错误--没有计算,不满足算法终止条件,返回NaN.

详见: bessely,besseli,besselk,besselh.

广告
 
:Y= bessely (alpha,x)
:Y= bessely (alpha,x,opt)
:[Y,ierr] = bessely (…)

计算第二类贝塞尔函数。

贝塞尔函数的阶alpha必须是真实的。积分预测x可能很复杂。

如果可选参数opt为1或true,则结果Yi乘以exp(-abs(imag(x))) .

如果alpha是标量,结果大小与x如果x是标量,结果大小与alpha如果alpha是一个向量,并且x是列向量,结果是一个矩阵x)行和alpha)柱。否则alphax必须符合,结果将是相同的大小。

如果被指定,ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少、返回而完全失去意义NaN.
  6. 错误--没有计算,不满足算法终止条件,返回NaN.

详见: besselj,besseli,besselk,besselh.

广告
 
:I= besseli (alpha,x)
:I= besseli (alpha,x,opt)
:[I,ierr] = besseli (…)

计算第一类修正贝塞尔函数。

贝塞尔函数的阶alpha必须是真实的。积分预测x可能很复杂。

如果可选参数opt为1或true,则结果Ii乘以exp(-abs(实数(x))) .

如果alpha是标量,结果大小与x如果x是标量,结果大小与alpha如果alpha是一个向量,并且x是列向量,结果是一个矩阵x)行和alpha)柱。否则alphax必须符合,结果将是相同的大小。

如果被指定,ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少、返回而完全失去意义NaN.
  6. 错误--没有计算,不满足算法终止条件,返回NaN.

详见: besselk,besselj,bessely,besselh.

广告
 
:K= besselk (alpha,x)
:K= besselk (alpha,x,opt)
:[K,ierr] = besselk (…)

计算第二类修正贝塞尔函数。

贝塞尔函数的阶alpha必须是真实的。积分预测x可能很复杂。

如果可选参数opt为1或true,则结果Ki乘以exp(x) .

如果alpha是标量,结果大小与x如果x是标量,结果大小与alpha如果alpha是一个向量,并且x是列向量,结果是一个矩阵x)行和alpha)柱。否则alphax必须符合,结果将是相同的大小。

如果被指定,ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少、返回而完全失去意义NaN.
  6. 错误--没有计算,不满足算法终止条件,返回NaN.

详见: besseli,besselj,bessely,besselh.

广告
 
:H= besselh (alpha,x)
:H= besselh (alpha,k,x)
:H= besselh (alpha,k,x,opt)
:[H,ierr] = besselh (…)

计算第三类贝塞尔函数(Hankel函数)。

贝塞尔函数的阶alpha必须是真实的。Hankel函数的类型从指定k并且可以是第一个(k=1)或秒(k2.默认为第一种Hankel函数。评估要点x可能很复杂。

如果可选参数opt为1或true,则结果乘以exp(-I*x)对于k=1或exp(I*x)对于k2.

如果alpha是标量,结果大小与x如果x是标量,结果大小与alpha如果alpha是一个向量,并且x是列向量,结果是一个矩阵x)行和alpha)柱。否则alphax必须符合,结果将是相同的大小。

如果被指定,ierr包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 输入错误,返回NaN.
  3. 溢流、回流Inf.
  4. 从于自变量减少而失去显著性,导致机器精度不到一半。
  5. 从于自变量减少、返回而完全失去意义NaN.
  6. 错误--没有计算,不满足算法终止条件,返回NaN.

详见: besselj,bessely,besseli,besselk.

广告
 
:y= beta (a,b)

计算实际输入的贝塔函数ab.

Beta函数的定义是

beta (a, b) = gamma (a) * gamma (b) / gamma (a + b).

Beta函数可能会变得很大,使用输出的对数通常比直接使用函数更有用。详见betaln,用于以有效的方式计算Betafunction的对数。

详见: betaln,betainc,betaincinv.

广告
 
:I= betainc (x,a,b)
:I= betainc (x,a,b,tail)

计算不完全贝塔函数。

这被定义为

                          x
                         /
                 1       |
I_x (a, b) = ----------  | t^(a-1) (1-t)^(b-1) dt
             beta (a,b)  |
                         /
                        0

与真实x在[0,1]的范围内。输入ab必须是真实的且严格正的(>0)。如果其中一个输入不是标量,那么其他输入必须是标量或具有兼容维度。

默认情况下,tail"lower"和从0到积分的不完全贝塔函数x计算。如果tail"upper"则互补函数从x计算为1。这两个选择的关系如下

β(x,a,b,"upper")=1-β(x,a,b,"lower").

betainc"lower"值很小。

参考文献:A.Cuyt,V.Brevik Petersen,B.Verdonk,H.Waadeland,W.B.Jones,特殊函数的连分式手册,ch。18.

详见: beta,betaincinv,betaln.

广告
 
:x= betaincinv (y,a,b)
:x= betaincinv (y,a,b降低
:x= betaincinv (y,a,b上面的

计算归一化不完全贝塔函数的逆。

归一化不完全贝塔函数定义为

                          x
                         /
                 1       |
I_x (a, b) = ----------  | t^(a-1) (1-t)^(b-1) dt
             beta (a,b)  |
                         /
                        0

如果两个输入是标量,那么β(y,a,b)对于其他输入中的每一个返回。

如果两个或多个输入不是标量,则它们的大小必须一致,并且betaincinv按元素应用。

变量y必须在区间[0,1]内,而ab必须是真实的,严格意义上是积极的。

默认情况下,tail"lower"以及从0到积分的不完全贝塔函数的逆x计算。如果tail"upper"则互补函数从x到1被反转。

该函数通过标准牛顿法计算,通过求解

y-β(x,a,b) = 0

详见: betainc,beta,betaln.

广告
 
:lnb= betaln (a,b)

计算实际输入的贝塔函数的自然对数ab.

betaln定义为

betaln (a, b) = log (beta (a, b))

并且以减少下溢的发生的方式进行计算。

Beta函数可能会变得很大,使用输出的对数通常比直接使用函数更有用。

详见: beta,betainc,betaincinv,gammaln.

广告
 
:b= bincoeff (n,k)

返回的二项式系数nk.

二项式系数定义为

 /   \
 | n |    n (n-1) (n-2) ... (n-k+1)
 |   |  = -------------------------
 | k |               k!
 \   /

例如

bincoeff (5, 2)
   ⇒ 10

在大多数情况下nchoosek函数对于小标量整数参数更快。它还警告说,这些参数会失去准确性。

详见: nchoosek.

广告
 
:k= commutation_matrix (m,n)

返回唯一的换向矩阵K(m,n)m*nxm*n矩阵,使得K(m,n)*vec(A)=vec(A')为所有的m通过n矩阵A..

如果只有一个参数m给出,K(m,m)返回。

详见Magnus和Neudecker(1988),矩阵微分学及其在统计学和计量经济学中的应用.

广告
 
:y= cosint (x)

计算余弦积分函数:

            +oo
           /
Ci (x) = - | (cos (t)) / t dt
           /
          x

等效的定义是

                             x
                            /
                            |  cos (t) - 1
Ci (x) = gamma + log (x) +  | -------------  dt
                            |        t
                            /
                           0

参考

M.Abramowitz和I.A.Stegun,数学函数手册, 1964.

详见: sinint,expint,cos.

广告
 
:d= duplication_matrix (n)

返回重复矩阵Dn哪一个是独一无二的N^2通过N*(N+1)/2矩阵,使得Dn * vech (A) = vec (A)对于所有对称N通过N矩阵A..

详见Magnus和Neudecker(1988),矩阵微分学及其在统计学和计量经济学中的应用.

广告
 
:v= dawson (z)

计算Dawson(缩放虚差)函数。

Dawson函数定义为

(sqrt (pi) / 2) * exp (-z^2) * erfi (z)

详见: erfc,erf,erfcx,erfi,erfinv,erfcinv.

广告
 
:[sn,cn,dn,err] = ellipj (u,m)
:[sn,cn,dn,err] = ellipj (u,m,tol)

计算Jacobi椭圆函数sn,cndn复杂参数u和实参数m.

如果m是标量,结果大小与u如果u是标量,结果大小与m如果u是列向量,并且m是一个行向量,结果是矩阵u)行和m)柱。否则um大小必须一致,结果将与输入大小相同。

的值u可能很复杂。的值m必须为0≤m≤ 1.

可选输入tol当前被忽略(MATLAB使用这个来允许更快、更不精确的近似)。

如果被指定,err包含以下状态信息,大小与结果相同。

  1. 正常返回。
  2. 错误--没有计算,不满足算法终止条件,返回NaN.

参考文献:Milton Abramowitz和Irene A Stegun,数学函数手册,第16章(第16.4、16.13和16.15节),多佛,1965年。

详见: ellipke.

广告
 
:k= ellipke (m)
:k= ellipke (m,tol)
:[k,e] = ellipke (…)

计算第一个K的完全椭圆积分(m)和第二个E(m友善的

m必须是标量或实数数组,其中-Inf≤m≤ 1.

可选输入tol控制算法的停止容差,并默认为eps(类(m))可以增加公差以计算更快、更不精确的近似值。

当用一个输出调用时,只返回第一类椭圆积分。

数学注释:

第一类椭圆积分定义为

         1
        /               dt
K (m) = | ------------------------------
        / sqrt ((1 - t^2)*(1 - m*t^2))
       0

第二类椭圆积分定义为

         1
        /  sqrt (1 - m*t^2)
E (m) = |  ------------------ dt
        /  sqrt (1 - t^2)
       0

参考文献:Milton Abramowitz和Irene A.Stegun,数学函数手册,第17章,多佛,1965年。

详见: ellipj.

广告
 
:v= erf (z)

计算误差函数。

错误函数定义为

                        z
              2        /
erf (z) = --------- *  | e^(-t^2) dt
          sqrt (pi)    /
                    t=0

详见: erfc,erfcx,erfi,dawson,erfinv,erfcinv.

广告
 
:v= erfc (z)

计算互补误差函数。

互补误差函数定义为1-erf(z) .

详见: erfcinv,erfcx,erfi,dawson,erf,erfinv.

广告
 
:v= erfcx (z)

计算缩放的互补误差函数。

缩放互补误差函数定义为

exp (z^2) * erfc (z)

详见: erfc,erf,erfi,dawson,erfinv,erfcinv.

广告
 
:v= erfi (z)

计算虚误差函数。

虚误差函数定义为

-i * erf (i*z)

详见: erfc,erf,erfcx,dawson,erfinv,erfcinv.

广告
 
:y= erfinv (x)

计算逆误差函数。

反向误差函数的定义使得

erf(y) ==x

详见: erf,erfc,erfcx,erfi,dawson,erfcinv.

广告
 
:y= erfcinv (x)

计算逆互补误差函数。

定义反向互补误差函数,使得

erfc(y) ==x

详见: erfc,erf,erfcx,erfi,dawson,erfinv.

广告
 
:y= expint (x)

计算指数积分。

指数积分定义为:

           +oo
          /
          | exp (-t)
E_1 (x) = | -------- dt
          |    t
          /
         x

注意:为了兼容性,此函数使用MATLAB指数积分的定义。大多数其他来源将此特殊值称为E_1(x),以及指数积分为

            +oo
           /
           | exp (-t)
Ei (x) = - | -------- dt
           |    t
           /
         -x

这两个定义是相关的,对于的正实数x通过E_1 (-x) = -Ei (x) - i*pi .

参考文献:

M.Abramowitz和I.A.Stegun,数学函数手册, 1964.

N.Bleistein和R.A.Handelsman,积分的渐近展开式, 1986.

详见: cosint,sinint,exp.

广告
 
:v= gamma (z)

计算Gamma函数。

Gamma函数定义为

             infinity
            /
gamma (z) = | t^(z-1) exp (-t) dt.
            /
         t=0

编程注意事项:即使输入值很小,gamma函数也会增长得很大。在许多情况下,最好使用伽玛函数的自然对数(gammaln)以将精度损失降至最低。最终结果是exp(result_using_gammaln).

详见: gammainc,gammaln,factorial.

广告
 
:y= gammainc (x,a)
:y= gammainc (x,a,tail)

计算归一化的不完全伽玛函数。

这被定义为

                                x
                       1       /
gammainc (x, a) = ---------    | exp (-t) t^(a-1) dt
                  gamma (a)    /
                            t=0

极限值1为x接近无穷大。标准符号为P(a,x)例如,Abramowitz和Stegun(6.5.1)。

如果a是标量,则gammainc(x,a)为的每个元素返回x反之亦然。

如果两者都没有x也没有a是标量,那么的大小xa必须同意,以及gammainc按元素应用。的元素a必须是非负数。

默认情况下,tail"lower"和从0到积分的不完全伽玛函数x计算。如果tail"upper"则互补函数从x计算到无穷大。

如果tail"scaledlower",则下不完全gamf函数乘以gamma(a+1)*exp(x)/(x^a)如果tail"scaledupper",则上不完全gamma函数乘以相同的量。

参考文献:

M.Abramowitz和I.A.Stegun,数学函数手册,多佛出版社,股份有限公司,1972年。

W.Gautschi,不完全伽玛函数的一个计算过程,ACM Trans。数学软件,第466–481页,第5卷,2012年第4期。

W.H.出版社、S.A.Teukolsky、W.T.Vetterling和B.P.Flannery,Fortran 77中的数字公式,第1卷,第6.2章,1992年。

详见: gamma,gammaincinv,gammaln.

广告
 
:x= gammaincinv (y,a)
:x= gammaincinv (y,a,tail)

计算归一化不完全伽玛函数的逆。

归一化不完全伽玛函数定义为

                                x
                       1       /
gammainc (x, a) = ---------    | exp (-t) t^(a-1) dt
                  gamma (a)    /
                            t=0

gammaincinv(gammainc(x,a),a) =x的每个非负值x如果a是标量,则gammaincinv(y,a)为的每个元素返回y反之亦然。

如果两者都没有y也没有a是标量,那么的大小ya必须同意,以及gammaincinv按元素应用。变量y必须在间隔中[0,1]虽然a必须是真实和积极的。

默认情况下,tail"lower"和从0到积分的不完备伽马函数的逆x计算。如果tail"upper",则互补函数集成自xtoinfinity反转。

函数是用牛顿法通过求解

y-gammainc(x,a) = 0

参考文献:A.Gil、J.Segura和N.M.Temme,计算和反演不完全矩函数比的高效准确算法,SIAM J.Sci。《计算》,A2981,A22965页,第34卷,2012年。

详见: gammainc,gamma,gammaln.

广告
 
:l= legendre (n,x)
:l= legendre (n,x,normalization)

计算相关的勒让德度函数n和秩序m= 0 …n.

价值n必须是实的非负整数。

x是实值元素在[-1,1]范围内的向量。

可选参数normalization可能是其中之一"unnorm","sch""norm"。如果没有规范化,则默认为givenis"unnorm".

当可选参数normalization"unnorm",计算相关的勒让德度函数n和秩序mandrew返回的所有值m= 0 …n。返回值的一维数超过x.

度的相关勒让德函数n和秩序m:

 m         m      2  m/2   d^m
P(x) = (-1) * (1-x  )    * ----  P(x)
 n                         dx^m   n

具有勒让德次数多项式n:

          1    d^n   2    n
P(x) = ------ [----(x - 1) ]
 n     2^n n!  dx^n

legendre (3, [-1.0, -0.9, -0.8])返回矩阵:

 x  |   -1.0   |   -0.9   |   -0.8
------------------------------------
m=0 | -1.00000 | -0.47250 | -0.08000
m=1 |  0.00000 | -1.99420 | -1.98000
m=2 |  0.00000 | -2.56500 | -4.32000
m=3 |  0.00000 | -1.24229 | -3.24000

当可选参数normalization"sch",计算了Schmidt半归一化关联勒让德函数。Schmidtsemi规范化的相关Legendre函数与未规范化的Legendre函数的关系如下:

对于勒让德度函数n和订单0:

  0      0
SP(x) = P(x)
  n      n

对于n阶和m阶的勒让德函数:

  m      m         m    2(n-m)! 0.5
SP(x) = P(x) * (-1)  * [-------]
  n      n              (n+m)!

当可选参数normalization"norm",计算了完全归一化的相关勒让德函数。完全规范化的关联Legendre函数通过以下方式与未规范化的相关Legendre函数相关:

对于勒让德度函数n和秩序m

  m      m         m    (n+0.5)(n-m)! 0.5
NP(x) = P(x) * (-1)  * [-------------]
  n      n                  (n+m)!
广告
 
:y= gammaln (x)
:y= lgamma (x)

返回的gamma函数的自然对数x.

编程说明:lgamma是的别名gammaln并且任一名称都可以在Octave中使用。

详见: gamma,gammainc.

广告
 
:y= psi (z)
:y= psi (k,z)

计算psi(polygamma)函数。

polygamma函数是kγ函数对数的第th导数。如果未指定,k默认为零。值为0计算digamma函数,值为1计算trigamma函数,依此类推。

digamma函数定义如下:

psi (z) = d (log (gamma (z))) / dx

计算digamma函数时(当k等于零),z可以具有任何实际值或复杂值。然而,对于polygamma函数(k高于0),z必须是真实的和非负面的。

详见: gamma,gammainc,gammaln.

广告
 
:y= sinint (x)

计算正弦积分函数:

           x
          /
Si (x) =  | sin (t) / t dt
          /
         0

参考文献:M.Abramowitz和I.A.Stegun,数学函数手册, 1964.

详见: cosint,expint,sin.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2