maxframe.tensor.i0#

maxframe.tensor.i0(x, **kwargs)[源代码]#

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

通常表示为 \(I_0\)。此函数支持广播,但不会将纯整数类型的参数“提升”为更高精度,除非至少有一个参数是浮点型或复数类型(见下方 Raises)。

参数:

x (array_like, dtype float or complex) -- 贝塞尔函数的参数。

返回:

out -- 在 x 的每个元素处计算的第一类修正贝塞尔函数值。

返回类型:

Tensor, shape = x.shape, dtype = x.dtype

抛出:

TypeError -- 数组无法安全地转换为所需类型:如果参数完全由整数类型组成。

备注

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

引用

示例

>>> import maxframe.tensor as mt
>>> mt.i0([0.]).execute()
array([1.])
>>> mt.i0([0., 1. + 2j]).execute()
array([ 1.00000000+0.j        ,  0.18785373+0.64616944j])