scipy.special.kv#

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

第二类修正贝塞尔函数,实数阶 v

返回实数阶 v 在复数 z 处的第二类修正贝塞尔函数。

这些函数有时也称为第三类函数、Basset 函数或 Macdonald 函数。它们被定义为修正贝塞尔方程的解,其满足:

\[K_v(x) \sim \sqrt{\pi/(2x)} \exp(-x)\]

\(x \to \infty\)[3]

参数:
v浮点数组类型 (array_like of float)

贝塞尔函数的阶

z复数数组类型 (array_like of complex)

用于计算贝塞尔函数的参数

outndarray,可选

用于存放函数结果的可选输出数组

返回:
标量或 ndarray

计算结果。请注意,输入必须是复数类型才能得到复数输出,例如 kv(3, -2+0j) 而不是 kv(3, -2)

另请参阅

kve

此函数去除了前导指数行为。

kvp

此函数的导数

备注

AMOS [1] 例程 zbesk 的封装。有关所用算法的讨论,请参阅 [2] 及其中引用的参考文献。

参考文献

[1]

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

[2]

Donald E. Amos,“算法 644:一个用于复数自变量和非负阶贝塞尔函数的便携式软件包”,ACM TOMS 第 12 卷第 3 期,1986 年 9 月,第 265 页

[3]

NIST 数学函数数字图书馆,公式 10.25.E3。https://dlmf.nist.gov/10.25.E3

示例

绘制实数输入的多个阶的函数

>>> import numpy as np
>>> from scipy.special import kv
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(0, 5, 1000)
>>> for N in np.linspace(0, 6, 5):
...     plt.plot(x, kv(N, x), label='$K_{{{}}}(x)$'.format(N))
>>> plt.ylim(0, 10)
>>> plt.legend()
>>> plt.title(r'Modified Bessel function of the second kind $K_\nu(x)$')
>>> plt.show()
../../_images/scipy-special-kv-1_00_00.png

计算单个值在多个阶上的结果

>>> kv([4, 4.5, 5], 1+2j)
array([ 0.1992+2.3892j,  2.3493+3.6j   ,  7.2827+3.8104j])