scipy.special.besselpoly#
- scipy.special.besselpoly(a, lmb, nu, out=None) = <ufunc 'besselpoly'>#
第一类贝塞尔函数的加权积分。
计算
\[\int_0^1 x^\lambda J_\nu(2 a x) \, dx\]其中 \(J_\nu\) 是贝塞尔函数且 \(\lambda=lmb\)、\(\nu=nu\)。
- 参数:
- aarray_like
贝塞尔函数内的缩放因子。
- lmbarray_like
x 的次幂
- nuarray_like
贝塞尔函数的阶。
- outndarray,可选
函数结果的可选输出数组。
- 返回:
- 标量或 ndarray
积分值。
参考文献
[1]Cephes 数学函数库,http://www.netlib.org/cephes/
示例
对一组参数求函数值。
>>> from scipy.special import besselpoly >>> besselpoly(1, 1, 1) 0.24449718372863877
对不同的缩放因子求函数值。
>>> import numpy as np >>> factors = np.array([0., 3., 6.]) >>> besselpoly(factors, 1, 1) array([ 0. , -0.00549029, 0.00140174])
绘制不同次幂、阶数和缩放的函数。
>>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots() >>> powers = np.linspace(0, 10, 100) >>> orders = [1, 2, 3] >>> scales = [1, 2] >>> all_combinations = [(order, scale) for order in orders ... for scale in scales] >>> for order, scale in all_combinations: ... ax.plot(powers, besselpoly(scale, powers, order), ... label=rf"$\nu={order}, a={scale}$") >>> ax.legend() >>> ax.set_xlabel(r"$\lambda$") >>> ax.set_ylabel(r"$\int_0^1 x^{\lambda} J_{\nu}(2ax)\,dx$") >>> plt.show()