Skip to main content
`Ctrl`+`K`

# scipy.special.besselpoly

scipy.special.besselpoly(a, lmb, nu, out=None) = <ufunc 'besselpoly'>

  Weighted integral of the Bessel function of the first kind.

  Computes

  \[\int_0^1 x^\lambda J_\nu(2 a x) \, dx\]

  where \(J_\nu\) is a Bessel function and \(\lambda=lmb\), \(\nu=nu\).

  Parameters:
    a array_like

      Scale factor inside the Bessel function.

    lmb array_like

      Power of x

    nu array_like

      Order of the Bessel function.

    out ndarray, optional

      Optional output array for the function results.

  Returns:
    scalar or ndarray

      Value of the integral.

  References

  [1]

  Cephes Mathematical Functions Library, http://www.netlib.org/cephes/

  Examples

  Evaluate the function for one parameter set.

      >>> from scipy.special import besselpoly
      >>> besselpoly(1, 1, 1)
      0.24449718372863877

  Evaluate the function for different scale factors.

      >>> import numpy as np
      >>> factors = np.array([0., 3., 6.])
      >>> besselpoly(factors, 1, 1)
      array([ 0.        , -0.00549029,  0.00140174])

  Plot the function for varying powers, orders and scales.

      >>> 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()