Unsicherheit der Steigung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Apfelstruedel
User
Beiträge: 8
Registriert: Samstag 19. November 2022, 14:11

Hallo ihr Lieben,

ich kenne mich mit Python nicht wirklich aus, muss es aber für ein Physikpraktikum im Studium nutzen, um die Graphen zu erstellen. Dafür haben wir auch netterweise von unseren Professoren einen fertigen Code bekommen, den wir nur geringfügig ändern müssen.

Nun zu meinem Probelm: Für den erstellten Graphen wird anscheinend die Unsicherheit der Steigung mit angezeigt. Allerdings weiß ich nicht genau, was von den vielen angezeigten Zahlen die Unsicherheit ist.

Da ich nicht genau weiß, wie ich hier ein Bild hochlade, habe ich den Code mit dem dazugehörigen Datensatz hochgeladen..
Die ersten beiden Zahlen sind x- und y- Achsenabschnitt, aber bei dem Rest steige ich nicht so ganz durch

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
import pandas as pd

#########################
# lineare Funktion zur Anpassung [durch Ihre Funktion ersetzen]
#########################

def func(x,a,b):
  return a * x + b 

#########################
# Listen für Daten auswerten
#########################

df = pd.read_csv("A1.txt", sep=" ", decimal=",")
x = np.array(df['x'].to_list(),dtype = float)
y = np.array(df['y'].to_list(),dtype = float)
y_unsicherheit = np.array(df['y_unsicherheit'].to_list(),dtype = float)


#########################
# Fit
#########################

popt, pcov = curve_fit(func, xdata = x, ydata = y,sigma=y_unsicherheit)

# Drucken der Anpassungsergebnisse
print("\nOptimale Werte für die Parameter", popt)
print("Die geschätzte Kovarianz von popt.\n", pcov)

# Drucken der angepassten Ergebnisse
print("\nPassungsfunktion: y = a*x + b")
print("Ergebnisse:")
print("a = %f +/- %f"%(popt[0],np.sqrt(pcov[0][0])))
print("b = %f +/- %f"%(popt[1],np.sqrt(pcov[1][1])))

#########################
# Daten und Anpassungsergebnisse darstellen
#########################

plt.errorbar(x,y,y_unsicherheit)
# Plotten Sie das Anpassungsergebnis
#[Ersetzen Sie die Beschriftung entsprechend Ihrer Anpassungsfunktion].
plt.plot(x, func(x, *popt), 'g--', label='Fit')

plt.xlabel("U0 [V]")
plt.ylabel("UAB [V]")
plt.legend()
plt.show()
x y y_unsicherheit
0 2.49 0.01
1 1.98 0.01
2 1.49 0.01
3 0.99 0.01
4 0.49 0.01
5 0.01 0.01
6 -0.44 0.01
7 -0.83 0.01
8 -1.06 0.01
Antworten