14.13.1 Computation of Special Functions

Octave implements computation of the following special functions (see the maxima and gp interfaces for even more special functions):

airy 
    Airy functions of the first and second kind, and their derivatives.
    airy(0,x) = Ai(x), airy(1,x) = Ai'(x), airy(2,x) = Bi(x), airy(3,x) = Bi'(x)
besselj
    Bessel functions of the first kind.
bessely
    Bessel functions of the second kind.
besseli
    Modified Bessel functions of the first kind.
besselk
    Modified Bessel functions of the second kind.
besselh
    Compute Hankel functions of the first (k = 1) or second (k = 2) kind.
beta 
    The Beta function,
          beta (a, b) = gamma (a) * gamma (b) / gamma (a + b).
betainc 
    The incomplete Beta function,
erf 
    The error function,
erfinv 
    The inverse of the error function. 
gamma 
    The Gamma function,
gammainc 
    The incomplete gamma function,

For example,

sage: octave("airy(3,2)")
4.10068
sage: octave("beta(2,2)")
0.166667
sage: octave("betainc(0.2,2,2)")
0.104
sage: octave("besselh(0,2)")
(0.223891,0.510376)
sage: octave("besselh(0,1)")
(0.765198,0.088257)
sage: octave("besseli(1,2)")
1.59064
sage: octave("besselj(1,2)")
0.576725
sage: octave("besselk(1,2)")
0.139866
sage: octave("erf(0)")
0
sage: octave("erf(1)")
0.842701
sage: octave("erfinv(0.842)")
0.998315
sage: octave("gamma(1.5)")
0.886227
sage: octave("gammainc(1.5,1)")
0.77687

The Octave interface reads in even very long input (using files) in a robust manner:

sage: t = '"%s"'%10^10000   # ten thousand character string.
sage: a = octave.eval(t + ';')      # < 1/100th of a second
sage: a = octave(t)

Note that actually reading a back out takes forever. This *must* be fixed ASAP - see http://trac.sagemath.org/sage_trac/ticket/940/.

See About this document... for information on suggesting changes.