scipy.special.spence#
- scipy.special.spence(z, out=None) = <ufunc 'spence'>#
Spencesche Funktion, auch bekannt als Dilogarithmus.
Sie ist definiert als
\[\int_1^z \frac{\log(t)}{1 - t}dt\]für komplexe \(z\), wobei der Integrationsweg so gewählt wird, dass der Zweig von $\log(t)$ vermieden wird. Spencesche Funktion ist überall analytisch außer auf der negativen reellen Achse, wo sie einen Zweigschnitt hat.
- Parameter:
- zarray_like
Punkte, an denen die Spencesche Funktion ausgewertet werden soll
- outndarray, optional
Optionales Ausgabe-Array für die Funktionsergebnisse
- Rückgabe:
- sSkalar oder ndarray
Berechnete Werte der Spenceschen Funktion
Hinweise
Es gibt eine andere Konvention, die Spencesche Funktion durch das Integral definiert
\[-\int_0^z \frac{\log(1 - t)}{t}dt;\]dies ist unser
spence(1 - z).Beispiele
>>> import numpy as np >>> from scipy.special import spence >>> import matplotlib.pyplot as plt
Die Funktion ist für komplexe Eingaben definiert
>>> spence([1-1j, 1.5+2j, 3j, -10-5j]) array([-0.20561676+0.91596559j, -0.86766909-1.39560134j, -0.59422064-2.49129918j, -1.14044398+6.80075924j])
Für komplexe Eingaben auf dem Zweigschnitt, der negativen reellen Achse, gibt die Funktion den Grenzwert für
zmit positivem Imaginärteil zurück. Beachten Sie beispielsweise im Folgenden die Vorzeichenänderung des Imaginärteils des Ergebnisses fürz = -2undz = -2 - 1e-8j>>> spence([-2 + 1e-8j, -2, -2 - 1e-8j]) array([2.32018041-3.45139229j, 2.32018042-3.4513923j , 2.32018041+3.45139229j])
Die Funktion gibt
nanfür reelle Eingaben auf dem Zweigschnitt zurück>>> spence(-1.5) nan
Überprüfen Sie einige spezielle Werte:
spence(0) = pi**2/6,spence(1) = 0undspence(2) = -pi**2/12.>>> spence([0, 1, 2]) array([ 1.64493407, 0. , -0.82246703]) >>> np.pi**2/6, -np.pi**2/12 (1.6449340668482264, -0.8224670334241132)
Überprüfen Sie die Identität
spence(z) + spence(1 - z) = pi**2/6 - log(z)*log(1 - z)
>>> z = 3 + 4j >>> spence(z) + spence(1 - z) (-2.6523186143876067+1.8853470951513935j) >>> np.pi**2/6 - np.log(z)*np.log(1 - z) (-2.652318614387606+1.885347095151394j)
Plotten Sie die Funktion für positive reelle Eingaben.
>>> fig, ax = plt.subplots() >>> x = np.linspace(0, 6, 400) >>> ax.plot(x, spence(x)) >>> ax.grid() >>> ax.set_xlabel('x') >>> ax.set_title('spence(x)') >>> plt.show()