scipy.special.modstruve#
- scipy.special.modstruve(v, x, out=None) = <ufunc 'modstruve'>#
- Modified Struve function. - Return the value of the modified Struve function of order v at x. The modified Struve function is defined as, \[L_v(x) = -\imath \exp(-\pi\imath v/2) H_v(\imath x),\]- where \(H_v\) is the Struve function. - Parameters:
- varray_like
- Order of the modified Struve function (float). 
- xarray_like
- Argument of the Struve function (float; must be positive unless v is an integer). 
- outndarray, optional
- Optional output array for the function results 
 
- Returns:
- Lscalar or ndarray
- Value of the modified Struve function of order v at x. 
 
 - See also - Notes - Three methods discussed in [1] are used to evaluate the function: - power series 
- expansion in Bessel functions (if \(|x| < |v| + 20\)) 
- asymptotic large-x expansion (if \(x \geq 0.7v + 12\)) 
 - Rounding errors are estimated based on the largest terms in the sums, and the result associated with the smallest error is returned. - References [1]- NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/11 - Examples - Calculate the modified Struve function of order 1 at 2. - >>> import numpy as np >>> from scipy.special import modstruve >>> import matplotlib.pyplot as plt >>> modstruve(1, 2.) 1.102759787367716 - Calculate the modified Struve function at 2 for orders 1, 2 and 3 by providing a list for the order parameter v. - >>> modstruve([1, 2, 3], 2.) array([1.10275979, 0.41026079, 0.11247294]) - Calculate the modified Struve function of order 1 for several points by providing an array for x. - >>> points = np.array([2., 5., 8.]) >>> modstruve(1, points) array([ 1.10275979, 23.72821578, 399.24709139]) - Compute the modified Struve function for several orders at several points by providing arrays for v and z. The arrays have to be broadcastable to the correct shapes. - >>> orders = np.array([[1], [2], [3]]) >>> points.shape, orders.shape ((3,), (3, 1)) - >>> modstruve(orders, points) array([[1.10275979e+00, 2.37282158e+01, 3.99247091e+02], [4.10260789e-01, 1.65535979e+01, 3.25973609e+02], [1.12472937e-01, 9.42430454e+00, 2.33544042e+02]]) - Plot the modified Struve functions of order 0 to 3 from -5 to 5. - >>> fig, ax = plt.subplots() >>> x = np.linspace(-5., 5., 1000) >>> for i in range(4): ... ax.plot(x, modstruve(i, x), label=f'$L_{i!r}$') >>> ax.legend(ncol=2) >>> ax.set_xlim(-5, 5) >>> ax.set_title(r"Modified Struve functions $L_{\nu}$") >>> plt.show() 