scipy.special.

jvp#

scipy.special.jvp(v, z, n=1)[源]#

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

计算贝塞尔函数 Jvz 的 n 阶导数。

参数:
v类数组对象或浮点数

贝塞尔函数的阶数

z复数

求导的自变量;可以是实数或复数。

n整数,默认为 1

导数的阶数。如果为 0,则返回贝塞尔函数 jv 本身。

返回:
标量或 n维数组

贝塞尔函数导数的值。

说明

导数是根据关系式 DLFM 10.6.7 [2] 计算的。

参考文献

[1]

Zhang, Shanjie and Jin, Jianming. “Computation of Special Functions”, 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

示例

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

>>> from scipy.special import jvp
>>> jvp(0, 1, 0), jvp(0, 1, 1), jvp(0, 1, 2)
(0.7651976865579666, -0.44005058574493355, -0.3251471008130331)

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

>>> jvp([0, 1, 2], 1, 1)
array([-0.44005059,  0.3251471 ,  0.21024362])

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

>>> import numpy as np
>>> points = np.array([0., 1.5, 3.])
>>> jvp(0, points, 1)
array([-0.        , -0.55793651, -0.33905896])

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

>>> import matplotlib.pyplot as plt
>>> x = np.linspace(-10, 10, 1000)
>>> fig, ax = plt.subplots()
>>> ax.plot(x, jvp(1, x, 0), label=r"$J_1$")
>>> ax.plot(x, jvp(1, x, 1), label=r"$J_1'$")
>>> ax.plot(x, jvp(1, x, 2), label=r"$J_1''$")
>>> ax.plot(x, jvp(1, x, 3), label=r"$J_1'''$")
>>> plt.legend()
>>> plt.show()
../../_images/scipy-special-jvp-1.png