scipy.special.kv#
- scipy.special.kv(v, z, out=None) = <ufunc 'kv'>#
二类修正贝塞尔函数,实阶为 v
返回实阶为 v 和复数 z 的二类修正贝塞尔函数。
此函数也常被称为三类函数、贝塞特函数或麦克唐纳函数。这些函数通常被定义为修正贝塞尔方程式的解,
\[K_v(x) \sim \sqrt{\pi/(2x)} \exp(-x)\]当 \(x \to \infty\) 时 [3]。
- 参数:
- varray_like of float
贝塞尔函数的阶数
- zarray_like of complex
计算贝塞尔函数时的自变量
- outndarray, optional
函数结果的可选输出数组
- 返回:
- 标量或 ndarray
计算结果。请注意,输入必须为复数类型以获得复数输出,例如
kv(3, -2+0j)
,而不是kv(3, -2)
。
注释
AMOS 的包装 [1] 例程 zbesk。有关所用算法的讨论,请参见 [2] 和其中的参考内容。
参考资料
[1]Donald E. Amos,http://netlib.org/amos/
[2]Donald E. Amos,1986 年 9 月,《算法 644:贝塞尔函数的便携式软件包,带复数自变量和非负阶数》,ACM TOMS 第 12 卷第 3 期,第 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()
计算多阶单值
>>> kv([4, 4.5, 5], 1+2j) array([ 0.1992+2.3892j, 2.3493+3.6j , 7.2827+3.8104j])