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,按元素计算。

另请参阅

expm1

附注

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