" * Legen Sie geeignete Tabellen in Code-Zellen an. \n",
" * Richten Sie die grundlegende Weiterverarbeitung der Messdaten ein, indem Sie z.B. **Code-Snipets zur Berechnung systematischer Unsicherheiten in einer Code-Zelle hinterlegen**. \n",
" * Richten Sie die Möglichkeit ein die aufgenommenen **Daten sofort zu visualisieren**. So können Sie missglückte Messungen (sog. *outlier*) leicht identifizieren und ggf. neu messen. \n",
" * Speichern Sie das Jupyter-notebook während der Datennahme in regelmäßigen Zeitabständen, damit Ihnen keine Daten verloren gehen.\n",
"\n",
"In der folgenden Code-Zelle sehen Sie ein Beispiel für eine vorgefertigte Tabelle, wie man Sie bereits in der Vorbereitung zum Versuch einrichten kann, und in die Sie nur noch Ihre Messwerte eintragen müssen. Nach Ausführen der Code-Zelle können Sie die aufgenommenen Daten zu jedem Zeitpunkt **sofort visualisieren**: "
" * Speichern Sie das Jupyter-notebook während der Datennahme in regelmäßigen Zeitabständen, damit Ihnen keine Daten verloren gehen."
]
},
{
"cell_type": "markdown",
"id": "7b0f197c-3e85-45aa-93c2-035873086617",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Vorgefertige Tabellen in Codezellen"
]
},
{
"cell_type": "markdown",
"id": "71eb8d3a-da8a-4f4f-8c74-88b44f55352f",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"In der folgenden Code-Zelle sehen Sie ein Beispiel für eine vorgefertigte Tabelle, wie man sie bereits in der Vorbereitung zum Versuch einrichten kann, und in die Sie nur noch Ihre Messwerte eintragen müssen. Nach Ausführen der Code-Zelle können Sie die aufgenommenen Daten zu jedem Zeitpunkt **sofort visualisieren**: "
]
},
{
...
...
@@ -65,6 +83,85 @@
"# are better suited for statistical parameter estimation, like e.g. kafe2.\n",
"plt.scatter((a0+a1)/2, a2)"
]
},
{
"cell_type": "markdown",
"id": "2e7835fc-1d8b-40c8-b1d9-c6bb53da02ff",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Anzeige von Daten mit Unsicherheiten"
]
},
{
"cell_type": "markdown",
"id": "e312ddd6-620f-472c-a6f4-1bc17ccfc08e",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"In der folgenden Code-Zelle zeigen wir Ihnen ein Beispiel, wie man mit Hilfe der Bibliothek *matplotlib* **Daten mit Unsicherheiten in $x$- und $y$-Richtung visualisiert'': "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bdaf1156-73dd-460f-b65c-a4c0c9b8b4aa",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np, matplotlib.pyplot as plt\n",
"\n",
"# data point in x\n",
"x_data = [1, 2, 3, 4, 5]\n",
"# uncertainty in x\n",
"x_err = [0.3, 0.3, 0.2, 0.2, 0.1]\n",
"# data point in y\n",
"y_data = [1, 4, 9, 16, 25]\n",
"# uncertainty in y\n",
"y_err = [0.75, 0.8, 1.2, 2.5, 3.5] \n",
"\n",
"# Display with errorbars\n",
"plt.title(\"Beispiel zur Visualisierung von Daten mit Unsicherheiten\")\n",
Um Daten manuell (d.h. per Hand) aufzunehmen und ins Jupyter-notebook einzutragen empfiehlt es sich **übersichtlich und gut organisiert** zu arbeiten. Die Aufnahme der Daten ist dadurch schneller und weniger Fehleranfällig. Gehen Sie dabei wie folgt vor:
* Machen Sie sich **bereits in der Vorbereitung zum Versuch** klar, was Sie messen möchten.
* Legen Sie geeignete Tabellen in Code-Zellen an.
* Richten Sie die grundlegende Weiterverarbeitung der Messdaten ein, indem Sie z.B. **Code-Snipets zur Berechnung systematischer Unsicherheiten in einer Code-Zelle hinterlegen**.
* Richten Sie die Möglichkeit ein die aufgenommenen **Daten sofort zu visualisieren**. So können Sie missglückte Messungen (sog. *outlier*) leicht identifizieren und ggf. neu messen.
* Speichern Sie das Jupyter-notebook während der Datennahme in regelmäßigen Zeitabständen, damit Ihnen keine Daten verloren gehen.
In der folgenden Code-Zelle sehen Sie ein Beispiel für eine vorgefertigte Tabelle, wie man Sie bereits in der Vorbereitung zum Versuch einrichten kann, und in die Sie nur noch Ihre Messwerte eintragen müssen. Nach Ausführen der Code-Zelle können Sie die aufgenommenen Daten zu jedem Zeitpunkt **sofort visualisieren**:
In der folgenden Code-Zelle sehen Sie ein Beispiel für eine vorgefertigte Tabelle, wie man sie bereits in der Vorbereitung zum Versuch einrichten kann, und in die Sie nur noch Ihre Messwerte eintragen müssen. Nach Ausführen der Code-Zelle können Sie die aufgenommenen Daten zu jedem Zeitpunkt **sofort visualisieren**:
In der folgenden Code-Zelle zeigen wir Ihnen ein Beispiel, wie man mit Hilfe der Bibliothek *matplotlib***Daten mit Unsicherheiten in $x$- und $y$-Richtung visualisiert'':
"In der folgenden Codezelle sehen, wie wie man Mittelwert und Varianz aus einer Stichprobe mit Hilfe der Bibliothek *numpy* berechnet."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a6b1ed77-7227-41a6-8864-25f0125a4fda",
"metadata": {},
"outputs": [],
"source": [
"# The sample in question\n",
"print(\"Sample:\", vx)\n",
"# Sample mean\n",
"print(\"The mean of vx :\", np.mean(vx))\n",
"# Sample variance; check help(np.var) for more information\n",
"print(\"The variance of vx:\", np.var(vx, ddof=1))\n",
"# The uncertainty on the mean\n",
"print(\"The uncertainty on the mean of vx\", np.sqrt(np.var(vx, ddof=1)/len(vx)))"
]
},
{
"cell_type": "markdown",
"id": "df675017-b558-465a-83e3-7bc4e965c27e",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Gewichteter Mittelwert und Unsicherheit darauf"
]
},
{
"cell_type": "markdown",
"id": "23a28b2d-0353-4a29-b62d-7b7574229d36",
"metadata": {},
"source": [
"Wenn Sie einen **Mittelwert aus Messungen bilden möchten, die bereits mit Unsicherheiten versehen sind** sollten Einzelmessungen mit großer Unsicherheit mit weniger Gewicht in den Mittelwert eingehen, als Einzelessungen mit geringer Unsicherheit. Unter der Annahme, dass alle Unsicherheiten 68% Konfidenzintervallen unter Normalverteilung entsprechen erhalten Sie eine statistisch unverzerrte und effiziente Schätzung aus dem **gewichteteten Mittelwert**. \n",
"\n",
"# Berechnung eines gewichteten Mittelwerts\n",
"In der folgenden Codezelle zeigen wir Ihnen, wie man den **gewichteten mittelwert unf die Unsicherheit darauf** mit der Bibliothek *numpy* berechnet."
Wenn Sie einen **Mittelwert aus Messungen bilden möchten, die bereits mit Unsicherheiten versehen sind** sollten Einzelmessungen mit großer Unsicherheit mit weniger Gewicht in den Mittelwert eingehen, als Einzelessungen mit geringer Unsicherheit. Unter der Annahme, dass alle Unsicherheiten 68% Konfidenzintervallen unter Normalverteilung entsprechen erhalten Sie eine statistisch unverzerrte und effiziente Schätzung aus dem **gewichteteten Mittelwert**.
In der folgenden Codezelle zeigen wir Ihnen, wie man den **gewichteten mittelwert unf die Unsicherheit darauf** mit der Bibliothek *numpy* berechnet.