scipy.special.modstruve#
- scipy.special.modstruve(v, x, out=None) = <ufunc 'modstruve'>#
Modifizierte Struve-Funktion.
Gibt den Wert der modifizierten Struve-Funktion der Ordnung v bei x zurück. Die modifizierte Struve-Funktion ist definiert als,
\[L_v(x) = -\imath \exp(-\pi\imath v/2) H_v(\imath x),\]wobei \(H_v\) die Struve-Funktion ist.
- Parameter:
- varray_like
Ordnung der modifizierten Struve-Funktion (float).
- xarray_like
Argument der Struve-Funktion (float; muss positiv sein, es sei denn, v ist eine ganze Zahl).
- outndarray, optional
Optionales Ausgabe-Array für die Funktionsergebnisse
- Rückgabe:
- Lskalar oder ndarray
Wert der modifizierten Struve-Funktion der Ordnung v bei x.
Siehe auch
Hinweise
Drei in [1]">[1] diskutierte Methoden werden zur Auswertung der Funktion verwendet
Potenzreihen
Entwicklung in Bessel-Funktionen (wenn \(|x| < |v| + 20\))
asymptotische Entwicklung für große x (wenn \(x \geq 0.7v + 12\))
Rundungsfehler werden basierend auf den größten Termen in den Summen geschätzt, und das Ergebnis mit dem kleinsten Fehler wird zurückgegeben.
Referenzen
[1]NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/11
Beispiele
Berechnen Sie die modifizierte Struve-Funktion der Ordnung 1 bei 2.
>>> import numpy as np >>> from scipy.special import modstruve >>> import matplotlib.pyplot as plt >>> modstruve(1, 2.) 1.102759787367716
Berechnen Sie die modifizierte Struve-Funktion bei 2 für die Ordnungen 1, 2 und 3, indem Sie eine Liste für den Ordnungs-Parameter v angeben.
>>> modstruve([1, 2, 3], 2.) array([1.10275979, 0.41026079, 0.11247294])
Berechnen Sie die modifizierte Struve-Funktion der Ordnung 1 für mehrere Punkte, indem Sie ein Array für x angeben.
>>> points = np.array([2., 5., 8.]) >>> modstruve(1, points) array([ 1.10275979, 23.72821578, 399.24709139])
Berechnen Sie die modifizierte Struve-Funktion für mehrere Ordnungen an mehreren Punkten, indem Sie Arrays für v und z angeben. Die Arrays müssen so beschaffen sein, dass sie sich korrekt übertragen lassen.
>>> 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]])
Plotten Sie die modifizierten Struve-Funktionen der Ordnungen 0 bis 3 von -5 bis 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()