{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"# Computergestützte Datenauswertung\n",
"**Institut für Experimentelle Teilchenphysik (ETP)**
\n",
"**Institut für Theorie der Kondensierten Materie (TKM)**
\n",
"Prof. Dr. Ulrich Husemann (ETP)
\n",
"Dr. Thorsten Chwalek (ETP), Dr. Andreas Poenicke (TKM)
\n",
"[ILIAS-Seite zum Kurs](https://ilias.studium.kit.edu/ilias.php?baseClass=ilrepositorygui&ref_id=2627198)
\n",
"Sommersemester 2025 – Blatt 03
\n",
"Abgabe: Montag, 19.05.2025 oder Dienstag, 20.05.2025 \n",
"\n",
"---"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Werbung \n",
"\n",
"\n",
"\n",
"Werbung Ende \n",
"\n",
"Die [erste Aufgabe](#Aufgabe1) bietet Ihnen die Gelegenheit, sich mit der Fortpflanzung von Unsicherheiten für einfache Kombinationen von Zufallszahlen auseinanderzusetzen.\n",
"Die [zweite Aufgabe](#Aufgabe2) bietet Ihnen die Gelegenheit, die Bedeutung von Korrelation und Kovarianzmatrix visuell zu verdeutlichen.\n",
"\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"# Aufgabe 1: Fortpflanzung von Unsicherheiten \n",
"---\n",
"In dieser Aufgabe folgen Sie dem Beispiel der Vorlesung, indem Sie die Fortpflanzung von Unsicherheiten für einen einfachen Fall selbst berechnen und testen können.\n",
"Im späteren Verlauf dieser Aufgabe werden Sie auch die Grenzen der Fortpflanzung von Unsicherheiten kennenlernen.\n",
"Zum Schluss der Aufgabe bekommen Sie die Möglichkeit, in Form einer **freiwilligen Zusatzaufgabe** den Einfluss von Korrelationen zwischen Zufallszahlen ebenfalls zu erfahren.\n",
"Betrachten Sie im Folgenden die Summe und den Quotienten von normalverteilten Zufallszahlen."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"**Arbeitsanweisung:**
\n",
"Erzeugen Sie zwei Datensätze von je 5000 normalverteilten Zufallszahlen $x_i$ mit $(\\mu_x,\\,\\sigma_x)=(1.5,\\,0.5)$ und $y_i$ mit $(\\mu_y,\\,\\sigma_y)=(0.6,\\,0.15)$, wobei $\\mu_x$ und $\\mu_y$ die Lokalisierungsparameter und $\\sigma_x$ und $\\sigma_y$ die Skalierungsparameter der beiden Normalverteilungen sind.\n",
"Bilden Sie die Summe von Paaren von Zufallszahlen, $v_i=x_i + y_i$, und stellen Sie die Summen $v_i$ als Histogramm grafisch dar."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Initialisierung des Zufallsgenerators\n",
"rng = np.random.default_rng(42)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Funktion für die Normalverteilung\n",
"def Gaussian(x, mu=0., sigma=1.):\n",
" return np.exp(-0.5*(x - mu)**2 / sigma**2) / np.sqrt(2*np.pi) / sigma"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Definition der Inputvariablen\n",
"\n",
"\n",
"# Berechnung der Verteilungen von x und y\n",
"\n",
"\n",
"# Berechnung der Summe der Zufallszahlen\n",
"\n",
"\n",
"# Darstellung der Summe als Histogramm\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Berechnen Sie mithilfe des linearen Fehlerfortpflanzungsgesetzes die Standardabweichung $\\sigma_v$ der $v_i$ und zeichnen Sie zum Vergleich eine Normalverteilung mit den Parametern $(\\mu_v=\\mu_x + \\mu_y, \\sigma_v)$ in das Histogramm ein.\n",
"\n",
"**Hinweis:**
\n",
"Beachten Sie, dass für eine geeignete Darstellung entweder das Histogramm oder die Wahrscheinlichkeitsdichte der Normalverteilung richtig skaliert werden muss."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Berechnung der statistischen Größen aus der Fortpflanzung der Unsicherheiten\n",
"\n",
"\n",
"# Darstellung des Histogramms und der Normalverteilung\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Bilden Sie nun das Verhältnis von jedem Paar von Zufallszahlen, $q_i=x_i/y_i$, und stellen Sie das Histogramm der Quotienten $q_i$ grafisch dar.\n",
"Berechnen Sie wieder mithilfe des linearen Fehlerfortpflanzungsgesetzes die Standardabweichung $\\sigma_q$ der $q_i$ und zeichnen Sie zum Vergleich eine Normalverteilung mit $(\\mu_q=\\mu_x / \\mu_y, \\sigma_q)$ ein.\n",
"Vergleichen Sie den Mittelwert und die Standardabweichung dieser Normalverteilung mit dem Wert der Stichprobenstandardabweichung, die Sie direkt aus den Datensätzen erhalten.\n",
"Wird die Erwartung aus der Fortpflanzung der Unsicherheiten, dass eine Funktion zweier Normalverteilungen wieder eine Normalverteilung ergibt, durch die beobachtete Verteilung der Daten bestätigt? Falls Sie Abweichungen von einer Normalverteilung beobachten: wodurch könnten diese begründet sein?\n",
"\n",
"**Hinweis:**
\n",
"Für eine bessere visuelle Darstellung des Histogramms und der Normalverteilung stellen Sie nur Werte für $q\\in[-1, 10]$ dar."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Berechnung des Quotienten der Zufallszahlen\n",
"\n",
"\n",
"# Berechnung der statistischen Größen aus der Fehlerfortpflanzung\n",
"\n",
"\n",
"# Vergleich der statistischen Größen\n",
"\n",
"\n",
"# Darstellung des Histogramms und der Normalverteilung\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"# Aufgabe 2: Korrelierte Zufallszahlen und deren Unsicherheiten \n",
"---\n",
"In dieser Aufgabe sollen Sie sich mit korrelierten Zufallszahlen und dem Unterschied beschäftigen, den die Berücksichtigung von Korrelationen bei der Fortpflanzung von Unsicherheiten im Vergleich zum \"naiven\" Ansatz ohne Korrelationen erzeugt.\n",
"Dazu gehen Sie zurück zu dem Beispiel der Summe zweier Zufallszahlen.\n",
"Für die Bearbeitung dieser Aufgabe müssen Sie allerdings einen neuen Satz von korrelierten Zufallszahlen $w$ und $z$ erzeugen."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"**Arbeitsanweisung:**
\n",
"Erzeugen Sie zwei Datensätze von je 5000 normalverteilten Zufallszahlen $w$ mit $(\\mu_w,\\,\\sigma_w)=(1.5,\\,0.5)$ und $z$ mit $(\\mu_z,\\,\\sigma_z)=(0.6,\\,0.15)$ mit einem Korrelationskoeffizienten von $\\rho_{wz}=0.9$.\n",
"Hierzu können Sie die Methode [`numpy.random.Generator.multivariate_normal(mean, cov)`](https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.multivariate_normal.html) verwenden.\n",
"Übergeben Sie als `mean` ein Array aus den beiden Mittelwerten und als `cov` ein Array der Kovarianzmatrix.\n",
"\n",
"**Hinweis:**
\n",
"Konstruieren Sie die Kovarianzmatrix $\\mathbf{V}$ aus den Unsicherheiten $\\sigma_{w}$ und $\\sigma_{z}$ der einzelnen Sätze an Zufallszahlen und $\\sigma_{wz}=\\rho_{wz}\\sigma_{w}\\sigma_{z}$.\n",
"\n",
"\\begin{equation}\n",
"\\mathbf{V} = \n",
"\\begin{pmatrix}\n",
"\\sigma_w^2 & \\rho_{wz}\\sigma_{w}\\sigma_{z} \\\\\n",
"\\rho_{wz}\\sigma_{w}\\sigma_{z} & \\sigma_z^2 \\\\\n",
"\\end{pmatrix}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Korrelationsfaktor\n",
"\n",
"\n",
"# Erstellung des Erwartungswertvektors und der Kovarianzmatrix\n",
"\n",
"\n",
"# Erzeugung der Verteilung der Zufallszahlen\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Bilden Sie die Summen aller Paare von Zufallszahlen, $u_i=w_i + z_i$, und stellen Sie die Summen $u_i$ als Histogramm grafisch dar.\n",
"Zeichnen Sie zum Vergleich die PDFs zweier Normalverteilung mit $(\\mu_v=\\mu_w + \\mu_z, \\sigma_u)$ in das Histogramm ein.\n",
"Berechnen Sie $\\sigma_u$ mithilfe des linearen Fehlerfortpflanzungsgesetzes einmal ohne und einmal mit Berücksichtigung der Korrelation."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Berechnung der Summe der Zufallszahlen\n",
"\n",
"\n",
"# Berechnung der statistischen Größen aus der Fehlerfortpflanzung\n",
"\n",
"\n",
"# Darstellung der Ergebnisse\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}