scipy.special.i0e#
- scipy.special.i0e(x, out=None) = <ufunc 'i0e'>#
Exponentially scaled modified Bessel function of order 0.
Defined as:
i0e(x) = exp(-abs(x)) * i0(x).
- Parameters:
- xarray_like
Argument (float)
- outndarray, optional
Optional output array for the function values
- Returns:
- Iscalar or ndarray
Value of the exponentially scaled modified Bessel function of order 0 at x.
Notes
The range is partitioned into the two intervals [0, 8] and (8, infinity). Chebyshev polynomial expansions are employed in each interval. The polynomial expansions used are the same as those in
i0
, but they are not multiplied by the dominant exponential factor.This function is a wrapper for the Cephes [1] routine
i0e
.i0e
is useful for large arguments x: for these,i0
quickly overflows.i0e
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1
and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
n/a
See Support for the array API standard for more information.
References
[1]Cephes Mathematical Functions Library, http://www.netlib.org/cephes/
Examples
In the following example
i0
returns infinity whereasi0e
still returns a finite number.>>> from scipy.special import i0, i0e >>> i0(1000.), i0e(1000.) (inf, 0.012617240455891257)
Calculate the function at several points by providing a NumPy array or list for x:
>>> import numpy as np >>> i0e(np.array([-2., 0., 3.])) array([0.30850832, 1. , 0.24300035])
Plot the function from -10 to 10.
>>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots() >>> x = np.linspace(-10., 10., 1000) >>> y = i0e(x) >>> ax.plot(x, y) >>> plt.show()