当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy special.yve用法及代码示例


本文简要介绍 python 语言中 scipy.special.yve 的用法。

用法:

scipy.special.yve(v, z, out=None) = <ufunc 'yve'>#

第二种实数阶的 index 缩放贝塞尔函数。

返回第二种实数阶的 index 缩放贝塞尔函数v在复杂的z

yve(v, z) = yv(v, z) * exp(-abs(z.imag))

参数

v array_like

订单(浮点数)。

z array_like

参数(浮点数或复数)。

out ndarray,可选

函数结果的可选输出数组

返回

Y 标量或 ndarray

index 缩放贝塞尔函数的值。

注意

对于正v值,计算是使用 AMOS 进行的[1] 兹贝西例程,它利用与 Hankel Bessel 函数的连接\(H_v^{(1)}\) \(H_v^{(2)}\) ,

对于负 v 值,公式,

被使用,其中\(J_v(z)\) 是第一类贝塞尔函数,使用 AMOS 例程计算zbesj.请注意,对于整数,第二项正好为零v;为了提高准确性,第二项被明确省略v这样的值v = 楼层(v).

指数缩放贝塞尔函数对于大 z 很有用:对于这些,未缩放贝塞尔函数很容易 under-or 溢出。

参考

[1]

Donald E. Amos,“AMOS,用于复杂参数和非负阶贝塞尔函数的便携式软件包”,http://netlib.org/amos/

例子

比较输出yvyve对于大型复杂参数z通过计算它们的顺序值v=1z=1000j。我们看到yv返回 nan 但是yve返回一个有限数:

>>> import numpy as np
>>> from scipy.special import yv, yve
>>> v = 1
>>> z = 1000j
>>> yv(v, z), yve(v, z)
((nan+nanj), (-0.012610930256928629+7.721967686709076e-19j))

对于真正的参数z,yve返回相同yv最多浮点错误。

>>> v, z = 1, 1000
>>> yv(v, z), yve(v, z)
(-0.02478433129235178, -0.02478433129235179)

通过为 v 提供列表或 NumPy 数组,可以同时评估该函数的多个阶数:

>>> yve([1, 2, 3], 1j)
array([-0.20791042+0.14096627j,  0.38053618-0.04993878j,
       0.00815531-1.66311097j])

以同样的方式,通过为 z 提供列表或 NumPy 数组,可以在一次调用中在多个点评估该函数:

>>> yve(1, np.array([1j, 2j, 3j]))
array([-0.20791042+0.14096627j, -0.21526929+0.01205044j,
       -0.19682671+0.00127278j])

通过提供数组,还可以同时在多个点评估多个订单vz具有广播兼容的形状。计算yve对于两个不同的订单v和三点z产生一个 2x3 数组。

>>> v = np.array([[1], [2]])
>>> z = np.array([3j, 4j, 5j])
>>> v.shape, z.shape
((2, 1), (3,))
>>> yve(v, z)
array([[-1.96826713e-01+1.27277544e-03j, -1.78750840e-01+1.45558819e-04j,
        -1.63972267e-01+1.73494110e-05j],
       [1.94960056e-03-1.11782545e-01j,  2.02902325e-04-1.17626501e-01j,
        2.27727687e-05-1.17951906e-01j]])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.special.yve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。