In diesem Kapitel erfahren Sie ...
wie man Unsicherheiten bei Berechnungen berücksichtigt,
wie Sie mit dem Paket uncertainties die Fortpflanzung von Unsicherheiten automatisieren können.
Im Praktikum werden Sie sehr früh das Konzept der (Mess-)Unsicherheit kennen lernen. An dieser Stelle werden wir einige für das Grundverständnis wichtige Punkte aus diesem Gebiet kurz ansprechen. Weiterführende Informationen zum Umgang mit Messunsicherheiten finden Sie z. B. in Thomas Bornath, Günter Walter: Messunsicherheiten – Grundlagen, Springer Essentials (2020) und Thomas Bornath, Günter Walter: Messunsicherheiten – Anwendungen, Springer Essentials (2020). Der Schwerpunkt des Kapitels wird auf der Umsetzung der Unsicherheitsbetrachtung in Python liegen.
5.1 Grundideen
Auf den ersten Blick liefert ein Messgerät einfach einen Wert. Wenn wir die Messung aber oft genug wiederholen, wird die zugrundeliegende Verteilung sichtbar. In diese Verteilung fließen alle Fluktuationen des Messprozesses, wie Ihre Reaktionszeit, die Sensorgenauigkeit, usw., ein. Aus der Verteilung einer Messgröße lassen sich ein Wert (auch Bestwert genannt) und ein Unsicherheitsbereich extrahieren. Aber auch Einzelmessungen, wie das einmalige Ablesen eines Lineals oder einer Digitalanzeige, lassen sich mit Unsicherheiten versehen.







Berechnung von Mittelwert und Standardfehler der Magnetfeldmessung mit numpy-Funktionen







Bei Einzelmessungen werden der Bestwert und die Unsicherheit zwar aufgrund anderer statistischer Verteilungen bestimmt, allerdings werden die Unsicherheiten üblicherweise so normiert, dass ihre Angabe ähnlichen Wahrscheinlichkeiten entsprechen.
5.2 Fehlerfortpflanzung










![$$ \Delta \theta = \sqrt{\left( \frac{1}{y\sqrt{1 - \left( \frac{x}{y}\right) ^2}}\right) ^2 \cdot \left[ \Delta x^2 + \left( \frac{x}{y} \cdot \Delta y \right) ^2 \right] }. $$](../images/508860_1_De_5_Chapter/508860_1_De_5_Chapter_TeX_Equ8.png)

Berechnung des Wertes und der Unsicherheit der abgeleiteten Größe mit numpy-Funktionen. Für die Bestimmung der Unsicherheit wird eine eigene Funktion delta_theta() definiert
Wie Sie sehen, lässt sich die Unsicherheitsfortpflanzung mit Python in wenigen Schritten umsetzen. Auch die farbliche Markierung von zusammengehörigen Klammern beim Eintippen ist dabei sehr hilfreich3. Dennoch ist sie oft eine nicht zu unterschätzende Fehlerquelle im Praktikum. Achten Sie also sorgfältig auf korrekte Implementierung der Formeln.
5.3 Behandlung von Unsicherheiten mit uncertainties
Praktischerweise können Sie diese Fehlerquelle umgehen, indem Sie mit dem Paket uncertainties4 die Fortpflanzung der Unsicherheiten automatisieren.
Installation des Pakets
Unter Windows starten Sie den Anaconda Prompt.
- Unter Linux oder macOS öffnen Sie das Terminal. Eventuell müssen Sie nun zunächst die Anaconda-Umgebung aktivieren:
- Geben Sie nun folgenden Befehl im Anaconda Prompt bzw. dem Terminal ein:
Damit ist das Paket uncertainties in der Standardumgebung base installiert und kann sofort verwendet werden.
Natürlich können Sie auch die graphische Paketverwaltung des Anaconda-Navigators verwenden: Im Navigator wählen Sie in der rechten Leiste das Feld Environments aus und klicken in dem erscheinenden Fenster auf base(root). Rechts sehen sie eine Liste aller installierten Pakete. Um nach neuen Paketen zu suchen, stellen Sie nun im Drop-Down Menü die Option Not installed ein. Unter Channels müssen Sie nun mit Add... die Paketquelle conda-forge hinzufügen, indem Sie sie in das erscheinende Feld eingeben. Nachdem Sie mit Update index die Paketlisten von Anaconda aktualisiert haben, können Sie im rechten Feld nach dem Paket uncertainties suchen. Wählen Sie anschließend das Paket aus der Liste aus und drücken Sie Apply um es zu installieren.
Verwendung von uncertainties
Eine der wichtigsten Funktionen von uncertainties ist das Ablegen des Bestwerts einer Messgröße zusammen mit der dazugehörigen Unsicherheit in einer einzigen, gemeinsamen Variable abzulegen. Dazu führt das Paket einen neuen Variablentyp ein: ufloat, eine Fließkommazahl (float) mit Unsicherheit. Um mit diesen Variablen rechnen zu können, benötigen Sie außerdem noch mathematische Funktionen, die mit ufloats kompatibel sind. Diese bringt uncertainties in den Unterpaketen umath und unumpy mit. Das sind spezielle Versionen von math5 und numpy. Praktischerweise behalten sie weitgehend die Funktionsnamen ihrer Vorbilder bei, so dass sie keine neuen Konventionen zu lernen brauchen.
Mit folgenden Zeilen bereiten Sie Ihr Notebook auf das Rechnen mit automatischer Fortpflanzung von Unsicherheiten vor:





Berechnung des Wertes und der Unsicherheit der abgeleiteten Größe mit dem Paket uncertainties. Die Ergebnisse stimmen mit der manuellen Methode in Abb. 5.2 überein



während Sie die Unsicherheit mit:

erhalten. Nachdem Sie nun das Rechnen mit Unsicherheiten kennen gelernt haben, werden wir uns im folgenden Kapitel der Modellanpassung widmen – einer Methode, bei der Unsicherheiten ebenfalls eine wichtige Rolle spielen.