Skip to main content
`Ctrl`+`K`

# scipy.special.expn

scipy.special.expn(n, x, out=None) = <ufunc 'expn'>

  Generalized exponential integral En.

  For integer \(n \geq 0\) and real \(x \geq 0\) the generalized exponential integral is defined as [dlmf]

  \[E_n(x) = x^{n - 1} \int_x^\infty \frac{e^{-t}}{t^n} dt.\]
  Parameters:
    narray_like

      Non-negative integers

    xarray_like

      Real argument

    outndarray, optional

      Optional output array for the function results

  Returns:
    scalar or ndarray

      Values of the generalized exponential integral

  See also

  `exp1`

    special case of \(E_n\) for \(n = 1\)

  `expi`

    related to \(E_n\) when \(n = 1\)

  References

  [dlmf]

  Digital Library of Mathematical Functions, 8.19.2 https://dlmf.nist.gov/8.19#E2

  Examples

      >>> import numpy as np
      >>> import scipy.special as sc

  Its domain is nonnegative n and x.

      >>> sc.expn(-1, 1.0), sc.expn(1, -1.0)
      (nan, nan)

  It has a pole at `x = 0` for `n = 1, 2`; for larger `n` it is equal to `1 / (n - 1)`.

      >>> sc.expn([0, 1, 2, 3, 4], 0)
      array([       inf,        inf, 1.        , 0.5       , 0.33333333])

  For n equal to 0 it reduces to `exp(-x) / x`.

      >>> x = np.array([1, 2, 3, 4])
      >>> sc.expn(0, x)
      array([0.36787944, 0.06766764, 0.01659569, 0.00457891])
      >>> np.exp(-x) / x
      array([0.36787944, 0.06766764, 0.01659569, 0.00457891])

  For n equal to 1 it reduces to `exp1`.

      >>> sc.expn(1, x)
      array([0.21938393, 0.04890051, 0.01304838, 0.00377935])
      >>> sc.exp1(x)
      array([0.21938393, 0.04890051, 0.01304838, 0.00377935])