dask.array.i0

dask.array.i0

dask.array.i0(*args, **kwargs)

第一类修正贝塞尔函数,0阶。

此文档字符串是从 numpy.i0 复制的。

Dask 版本可能存在一些不一致性。

通常表示为 \(I_0\)

参数
x类似数组的浮点数 (Dask 不支持)

贝塞尔函数的参数。

返回
ndarray, shape = x.shape, dtype = float

x 的每个元素处计算的修正贝塞尔函数。

注释

推荐使用 scipy 的实现,而不是这个函数:它是一个用 C 语言编写的正确 ufunc,速度快了一个数量级以上。

我们使用Clenshaw [1] 发表的算法,该算法被Abramowitz和Stegun [2] 引用,函数的定义域被划分为两个区间 [0,8] 和 (8,inf),并在每个区间内使用切比雪夫多项式展开。在IEEE算术下,定义域 [0,30] 上的相对误差记录 [3] 为峰值5.8e-16,均方根1.4e-16(n = 30000)。

参考文献

1

C. W. Clenshaw, “Chebyshev series for mathematical functions”, in National Physical Laboratory Mathematical Tables, vol. 5, London: Her Majesty’s Stationery Office, 1962.

2

M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions, 10th printing, New York: Dover, 1964, pp. 379. https://personal.math.ubc.ca/~cbm/aands/page_379.htm

3

https://metacpan.org/pod/distribution/Math-Cephes/lib/Math/Cephes.pod#i0:-Modified-Bessel-function-of-order-zero

示例

>>> import numpy as np  
>>> np.i0(0.)  
array(1.0)
>>> np.i0([0, 1, 2, 3])  
array([1.        , 1.26606588, 2.2795853 , 4.88079259])