scipy.special.exprel#
- scipy.special.exprel(x, out=None) = <ufunc 'exprel'>#
相对误差指数,
(exp(x) - 1)/x。当 x 接近 0 时,
exp(x)接近 1,因此exp(x) - 1的数值计算可能会遭遇灾难性的精度损失。exprel(x)的实现旨在避免当 x 接近 0 时产生的精度损失。- 参数:
- xndarray
输入数组。x 必须包含实数。
- outndarray, optional
可选的输出数组,用于存储函数值
- 返回:
- 标量或 ndarray
(exp(x) - 1)/x,按元素计算。
另请参阅
附注
0.17.0 版本中添加。
数组 API 标准支持
exprel除了支持 NumPy 外,还对符合 Python 数组 API 标准的后端提供了实验性支持。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端与设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
⛔
JAX
✅
⛔
Dask
✅
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
示例
>>> import numpy as np >>> from scipy.special import exprel
>>> exprel(0.01) 1.0050167084168056 >>> exprel([-0.25, -0.1, 0, 0.1, 0.25]) array([ 0.88479687, 0.95162582, 1. , 1.05170918, 1.13610167])
比较
exprel(5e-9)与朴素计算的结果。精确值为1.00000000250000000416...。>>> exprel(5e-9) 1.0000000025
>>> (np.exp(5e-9) - 1)/5e-9 0.99999999392252903