scipy.stats.rel_breitwigner#

scipy.stats.rel_breitwigner = <scipy.stats._continuous_distns.rel_breitwigner_gen object>[Quelle]#

Eine relativistische Breit-Wigner-Zufallsvariable.

Als Instanz der rv_continuous-Klasse erbt rel_breitwigner davon eine Sammlung generischer Methoden (siehe unten für die vollständige Liste) und ergänzt diese mit Details, die spezifisch für diese Verteilung sind.

Methoden

rvs(rho, loc=0, scale=1, size=1, random_state=None)

Zufallsvariaten.

pdf(x, rho, loc=0, scale=1)

Wahrscheinlichkeitsdichtefunktion.

logpdf(x, rho, loc=0, scale=1)

Logarithmus der Wahrscheinlichkeitsdichtefunktion.

cdf(x, rho, loc=0, scale=1)

Kumulative Verteilungsfunktion.

logcdf(x, rho, loc=0, scale=1)

Logarithmus der kumulativen Verteilungsfunktion.

sf(x, rho, loc=0, scale=1)

Überlebensfunktion (auch definiert als 1 - cdf, aber sf ist manchmal genauer).

logsf(x, rho, loc=0, scale=1)

Logarithmus der Überlebensfunktion.

ppf(q, rho, loc=0, scale=1)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, rho, loc=0, scale=1)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

moment(order, rho, loc=0, scale=1)

Nichtzentrales Moment der angegebenen Ordnung.

stats(rho, loc=0, scale=1, moments=’mv’)

Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).

entropy(rho, loc=0, scale=1)

(Differential-)Entropie der RV.

fit(data)

Parameterschätzungen für generische Daten. Siehe scipy.stats.rv_continuous.fit für eine detaillierte Dokumentation der Schlüsselwortargumente.

expect(func, args=(rho,), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.

median(rho, loc=0, scale=1)

Median der Verteilung.

mean(rho, loc=0, scale=1)

Mittelwert der Verteilung.

var(rho, loc=0, scale=1)

Varianz der Verteilung.

std(rho, loc=0, scale=1)

Standardabweichung der Verteilung.

interval(confidence, rho, loc=0, scale=1)

Konfidenzintervall mit gleichen Flächen um den Median.

Siehe auch

cauchy

Cauchy-Verteilung, auch bekannt als Breit-Wigner-Verteilung.

Hinweise

Die Wahrscheinlichkeitsdichtefunktion für rel_breitwigner ist

\[f(x, \rho) = \frac{k}{(x^2 - \rho^2)^2 + \rho^2}\]

wo

\[k = \frac{2\sqrt{2}\rho^2\sqrt{\rho^2 + 1}} {\pi\sqrt{\rho^2 + \rho\sqrt{\rho^2 + 1}}}\]

Die relativistische Breit-Wigner-Verteilung wird in der Hochenergiephysik verwendet, um Resonanzen zu modellieren [1]. Sie gibt die Unsicherheit in der invarianten Masse, \(M\) [2], einer Resonanz mit charakteristischer Masse \(M_0\) und Zerfallsbreite \(\Gamma\) an, wobei \(M\), \(M_0\) und \(\Gamma\) in natürlichen Einheiten ausgedrückt werden. In der Parametrisierung von SciPy ist der Formparameter \(\rho\) gleich \(M_0/\Gamma\) und nimmt Werte in \((0, \infty)\) an.

Äquivalent dazu wird gesagt, dass die relativistische Breit-Wigner-Verteilung die Unsicherheit in der Schwerpunktsenergie \(E_{\text{cm}}\) angibt. In natürlichen Einheiten ist die Lichtgeschwindigkeit \(c\) gleich 1 und die invariante Masse \(M\) gleich der Ruheenergie \(Mc^2\). Im Schwerpunktssystem ist die Ruheenergie gleich der Gesamtenergie [3].

Die obige Wahrscheinlichkeitsdichte ist in der "standardisierten" Form definiert. Um die Verteilung zu verschieben und/oder zu skalieren, verwenden Sie die Parameter loc und scale. Insbesondere ist rel_breitwigner.pdf(x, rho, loc, scale) identisch gleich rel_breitwigner.pdf(y, rho) / scale mit y = (x - loc) / scale. Beachten Sie, dass das Verschieben des Ortes einer Verteilung diese nicht zu einer "nichtzentralen" Verteilung macht; nichtzentrale Verallgemeinerungen einiger Verteilungen sind in separaten Klassen verfügbar.

\(\rho = M/\Gamma\) und \(\Gamma\) ist der Skalierungsparameter. Wenn Sie beispielsweise das \(Z^0\)-Boson mit \(M_0 \approx 91.1876 \text{ GeV}\) und \(\Gamma \approx 2.4952\text{ GeV}\) modellieren möchten [4], können Sie rho=91.1876/2.4952 und scale=2.4952 setzen.

Um ein physikalisch sinnvolles Ergebnis bei Verwendung der Methode fit zu gewährleisten, sollte floc=0 gesetzt werden, um den Orts-Parameter auf 0 festzulegen.

Referenzen

[1]

Relativistische Breit-Wigner-Verteilung, Wikipedia, https://en.wikipedia.org/wiki/Relativistic_Breit-Wigner_distribution

[2]

Invariante Masse, Wikipedia, https://en.wikipedia.org/wiki/Invariant_mass

[4]

M. Tanabashi et al. (Particle Data Group) Phys. Rev. D 98, 030001 - Veröffentlicht am 17. August 2018

Beispiele

>>> import numpy as np
>>> from scipy.stats import rel_breitwigner
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

Ermitteln Sie den Träger (Support)

>>> rho = 36.5
>>> lb, ub = rel_breitwigner.support(rho)

Berechnen Sie die ersten vier Momente

>>> mean, var, skew, kurt = rel_breitwigner.stats(rho, moments='mvsk')

Zeigen Sie die Wahrscheinlichkeitsdichtefunktion (pdf) an

>>> x = np.linspace(rel_breitwigner.ppf(0.01, rho),
...                 rel_breitwigner.ppf(0.99, rho), 100)
>>> ax.plot(x, rel_breitwigner.pdf(x, rho),
...        'r-', lw=5, alpha=0.6, label='rel_breitwigner pdf')

Alternativ kann das Verteilungsobjekt (als Funktion) aufgerufen werden, um die Form-, Orts- und Skalierungsparameter festzulegen. Dies gibt ein „eingefrorenes“ RV-Objekt zurück, das die angegebenen Parameter beibehält.

Frieren Sie die Verteilung ein und zeigen Sie die eingefrorene pdf an

>>> rv = rel_breitwigner(rho)
>>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

Überprüfen Sie die Genauigkeit von cdf und ppf

>>> vals = rel_breitwigner.ppf([0.001, 0.5, 0.999], rho)
>>> np.allclose([0.001, 0.5, 0.999], rel_breitwigner.cdf(vals, rho))
True

Generieren Sie Zufallszahlen

>>> r = rel_breitwigner.rvs(rho, size=1000)

Und vergleichen Sie das Histogramm

>>> ax.hist(r, density=True, bins='auto', histtype='stepfilled', alpha=0.2)
>>> ax.set_xlim([x[0], x[-1]])
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
../../_images/scipy-stats-rel_breitwigner-1.png