mars.tensor.i0#
- mars.tensor.i0(x, **kwargs)[来源]#
零阶修正贝塞尔函数。
通常表示为 \(I_0\)。这个函数会进行广播,但不会 提升 整数数据类型参数,除非至少有一个浮点数或复数数据类型参数陪伴(详见下面的 Raises 部分)。
- Parameters
x (array_like, dtype float 或 complex) – 贝塞尔函数的参数。
- Returns
out – 在每个x的元素上评估的修正贝塞尔函数。
- Return type
张量, 形状 = x.shape, 数据类型 = x.dtype
- Raises
TypeError – 数组无法安全地转换为所需类型:如果参数仅由整数数据类型组成。
备注
我们使用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, “切比雪夫级数的数学函数”,在 国家物理实验室数学表, 第5卷, 伦敦: 女王的文具办公室, 1962.
- 2
M. Abramowitz 和 I. A. Stegun, 数学函数手册, 第10次印刷, 纽约: Dover, 1964年, 第379页。 http://www.math.sfu.ca/~cbm/aands/page_379.htm
- 3
http://kobesearch.cpan.org/htdocs/Math-Cephes/Math/Cephes.html
示例
>>> import mars.tensor as mt
>>> mt.i0([0.]).execute() array([1.]) >>> mt.i0([0., 1. + 2j]).execute() array([ 1.00000000+0.j , 0.18785373+0.64616944j])