scipy.special.i1e#
- scipy.special.i1e(x, out=None) = <ufunc 'i1e'>#
一阶指数标度修正贝塞尔函数。
定义为
i1e(x) = exp(-abs(x)) * i1(x)
- 参数:
- xarray_like
参数 (浮点数)
- outndarray, optional
可选的输出数组,用于存储函数值
- 返回:
- I标量或 ndarray
指数标度修正贝塞尔函数在 x 处的值。
附注
将取值范围划分为 [0, 8] 和 (8, 无穷大) 两个区间。在每个区间内采用切比雪夫多项式展开。所使用的多项式展开与
i1中的相同,但未乘以主导指数因子。此函数是 Cephes [1] 例程
i1e的包装器。i1e在处理大参数 x 时非常有用:对于这些参数,i1会很快发生溢出。数组 API 标准支持
i1e除 NumPy 外,还对兼容 Python 数组 API 标准的后端提供了实验性支持。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。目前支持以下后端与设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
参考文献
[1]Cephes 数学函数库, http://www.netlib.org/cephes/
示例
在以下示例中,
i1返回无穷大,而i1e仍返回一个有限数。>>> from scipy.special import i1, i1e >>> i1(1000.), i1e(1000.) (inf, 0.01261093025692863)
通过为 x 提供 NumPy 数组或列表来计算函数在几个点的值
>>> import numpy as np >>> i1e(np.array([-2., 0., 6.])) array([-0.21526929, 0. , 0.15205146])
绘制 -10 到 10 之间的函数图像。
>>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots() >>> x = np.linspace(-10., 10., 1000) >>> y = i1e(x) >>> ax.plot(x, y) >>> plt.show()