numpy.i0#
- numpy.i0(x)[source]#
修正贝塞尔函数,第一类,0 阶。
通常表示为 \(I_0\)。
- 参数:
- x浮点数的类数组
贝塞尔函数的参数。
- 返回:
- outndarray, 形状 = x.shape, 数据类型 = 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, “数学函数的切比雪夫级数”, 载于 National Physical Laboratory Mathematical Tables, 卷 5, 伦敦: Her Majesty’s Stationery Office, 1962。
[2]M. Abramowitz 和 I. A. Stegun, 数学函数手册, 第 10 版, 纽约: Dover, 1964, 第 379 页。 https://personal.math.ubc.ca/~cbm/aands/page_379.htm
示例
>>> import numpy as np >>> np.i0(0.) array(1.0) >>> np.i0([0, 1, 2, 3]) array([1. , 1.26606588, 2.2795853 , 4.88079259])