scipy.special.

yvp#

scipy.special.yvp(v, z, n=1)[源代码]#

计算第二类贝塞尔函数的导数。

计算贝塞尔函数 Yv 关于 z 的 n 阶导数。

参数:
vfloat 类型的类数组

贝塞尔函数的阶数

z复数

计算导数时的参数值

nint,默认为 1

导数的阶数。当为 0 时,返回贝塞尔函数 yv

返回:
标量或 ndarray

贝塞尔函数的 n 阶导数。

参见

yv

第二类贝塞尔函数

注释

导数使用关系式 DLFM 10.6.7 [2] 计算。

参考文献

[1]

Zhang, Shanjie and Jin, Jianming. “特殊函数的计算”,John Wiley and Sons, 1996, 第 5 章。https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html

[2]

NIST 数学函数数字库。https://dlmf.nist.gov/10.6.E7

示例

计算阶数为 0 的第二类贝塞尔函数及其在 1 处的前两个导数。

>>> from scipy.special import yvp
>>> yvp(0, 1, 0), yvp(0, 1, 1), yvp(0, 1, 2)
(0.088256964215677, 0.7812128213002889, -0.8694697855159659)

通过为 v 提供一个数组,计算多个阶数的第二类贝塞尔函数在 1 处的一阶导数。

>>> yvp([0, 1, 2], 1, 1)
array([0.78121282, 0.86946979, 2.52015239])

通过为 z 提供一个数组,计算阶数为 0 的第二类贝塞尔函数在多个点处的一阶导数。

>>> import numpy as np
>>> points = np.array([0.5, 1.5, 3.])
>>> yvp(0, points, 1)
array([ 1.47147239,  0.41230863, -0.32467442])

绘制阶数为 1 的第二类贝塞尔函数及其前三个导数。

>>> import matplotlib.pyplot as plt
>>> x = np.linspace(0, 5, 1000)
>>> x[0] += 1e-15
>>> fig, ax = plt.subplots()
>>> ax.plot(x, yvp(1, x, 0), label=r"$Y_1$")
>>> ax.plot(x, yvp(1, x, 1), label=r"$Y_1'$")
>>> ax.plot(x, yvp(1, x, 2), label=r"$Y_1''$")
>>> ax.plot(x, yvp(1, x, 3), label=r"$Y_1'''$")
>>> ax.set_ylim(-10, 10)
>>> plt.legend()
>>> plt.show()
../../_images/scipy-special-yvp-1.png