scipy.special.
kvp#
- scipy.special.kvp(v, z, n=1)[源代码]#
计算实数阶修正贝塞尔函数 Kv(z) 的导数
Kv(z) 是第二类修正贝塞尔函数。导数是关于 z 计算的。
- 参数:
- vfloat 类型的 array_like
贝塞尔函数的阶数
- z复数类型的 array_like
计算导数的自变量
- nint,默认为 1
导数的阶数。对于 0,返回贝塞尔函数
kv
本身。
- 返回:
- outndarray
结果
另请参阅
备注
导数使用关系式 DLFM 10.29.5 [2] 计算。
参考文献
[1]张善杰和金建明。“特殊函数的计算”,John Wiley and Sons,1996 年,第 6 章。https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
[2]NIST 数学函数数字图书馆。https://dlmf.nist.gov/10.29.E5
示例
计算 0 阶第二类修正贝塞尔函数及其在 1 处的头两个导数。
>>> from scipy.special import kvp >>> kvp(0, 1, 0), kvp(0, 1, 1), kvp(0, 1, 2) (0.42102443824070834, -0.6019072301972346, 1.0229316684379428)
通过为 v 提供一个数组,计算多个阶数在 1 处的第二类修正贝塞尔函数的第一个导数。
>>> kvp([0, 1, 2], 1, 1) array([-0.60190723, -1.02293167, -3.85158503])
通过为 z 提供一个数组,计算 0 阶第二类修正贝塞尔函数在多个点处的第一个导数。
>>> import numpy as np >>> points = np.array([0.5, 1.5, 3.]) >>> kvp(0, points, 1) array([-1.65644112, -0.2773878 , -0.04015643])
绘制第二类修正贝塞尔函数及其前三个导数。
>>> import matplotlib.pyplot as plt >>> x = np.linspace(0, 5, 1000) >>> fig, ax = plt.subplots() >>> ax.plot(x, kvp(1, x, 0), label=r"$K_1$") >>> ax.plot(x, kvp(1, x, 1), label=r"$K_1'$") >>> ax.plot(x, kvp(1, x, 2), label=r"$K_1''$") >>> ax.plot(x, kvp(1, x, 3), label=r"$K_1'''$") >>> ax.set_ylim(-2.5, 2.5) >>> plt.legend() >>> plt.show()