scipy.special.exprel#

scipy.special.exprel(x, out=None) = <ufunc 'exprel'>#

相对误差指数函数,(exp(x) - 1)/x

x 接近零时,exp(x) 接近 1,因此数值计算 exp(x) - 1 可能会遭受灾难性的精度损失。exprel(x) 的实现方式是为了避免当 x 接近零时发生的精度损失。

参数:
xndarray

输入数组。 x 必须包含实数。

outndarray, optional

可选的输出数组,用于存储函数值

返回:
标量或 ndarray

(exp(x) - 1)/x,逐元素计算。

另请参阅

expm1

附注

0.17.0 版本中添加。

数组 API 标准支持

exprel 对 NumPy 之外的 Python Array API 标准兼容后端具有实验性支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

⚠️ 无 JIT

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