Diese Seite bezieht sich auf die erste Auflage (2020) des Buches.   ➜   Zur aktuellen Auflage.

Aufgaben

Lösung zu Aufgabe 3.1

Wir vergleichen die Ausgabe der beiden Programme, wenn wir 6 Dezimalstellen ausgeben lassen. Dabei erkennt man, dass sich das Ergebnis für die Standardabweichung unterscheidet.

Ergebnis mit der for-Schleife:

  
Mittelwert:             <T> = 2.006000 s
Standardabweichung:   sigma = 0.034383 s
Mittlerer Fehler:   Delta T = 0.010873 s
  

Ergebnis mit NumPy:

  
Mittelwert:             <T> = 2.006000 s
Standardabweichung:   sigma = 0.032619 s
Mittlerer Fehler:   Delta T = 0.010315 s
  

Ein manuelles Nachrechnen mit der Gleichung \[ \sigma = \sqrt{\frac{1}{n-1}\sum\limits_{i=1}^n \big( x_i - \langle x \rangle \big)^2} \] zeigt, dass das Ergebnis der Rechnung mit der for-Schleife korrekt ist und das Ergebnis von Numpy um einen Faktor \[ \sqrt{\frac{n-1}{n}} = \sqrt{\frac{9}{10}} = 0.9486833 \] vom korrekten Wert abweicht.

Download    Groessen/Loesungen/standardabweichung_mod.py

"""Berechnung des Mittelwerts, der Standardabweichung und des
mittleren Fehlers des Mittelwertes.

Modifzierte Version, die viele Dezimalstellen ausgibt. """

import math
import numpy as np

# Gemessene Schwingungsdauern [s].
T = np.array([2.05, 1.99, 2.06, 1.97, 2.01,
              2.00, 2.03, 1.97, 2.02, 1.96])

# Anzahl der Messwerte.
n = T.size

# Berechne den Mittelwert.
mittel = 0
for x in T:
    mittel += x
mittel /= n

# Berechne die Standardabweichung.
sigma = 0
for x in T:
    sigma += (x - mittel) ** 2
sigma = math.sqrt(sigma / (n - 1))

# Berechne den mittleren Fehler des Mittelwertes.
delta_T = sigma / math.sqrt(n)

print(f'Mittelwert:              = {mittel:.6f} s')
print(f'Standardabweichung:   sigma = {sigma:.6f} s' )
print(f'Mittlerer Fehler:   Delta T = {delta_T:.6f} s')

Download    Groessen/Loesungen/standardabweichung_numpy_mod.py

"""Berechnung des Mittelwerts, der Standardabweichung und des
mittleren Fehlers des Mittelwertes mithilfe von numpy.

Modifzierte Version, die viele Dezimalstellen ausgibt. """

import math
import numpy as np

# Gemessene Schwingungsdauern [s].
T = np.array([2.05, 1.99, 2.06, 1.97, 2.01,
              2.00, 2.03, 1.97, 2.02, 1.96])

# Berechne die drei gesuchten Kenngrößen.
mittel = np.mean(T)
sigma = np.std(T)
delta_T = sigma / math.sqrt(T.size)

print(f'Mittelwert:              = {mittel:.6f} s')
print(f'Standardabweichung:   sigma = {sigma:.6f} s' )
print(f'Mittlerer Fehler:   Delta T = {delta_T:.6f} s')