physics in a nutshell logo

Neue Webseite zum Physikstudium!

Header-Logo: genug-davon

Fortgeschrittene plot Befehle

Was ist "fitten"?

"Fitten" bedeutet, dass Parameter einer Funktion so optimiert werden, dass die Messwerte minimal von dieser abweichen. Ein Beispiel dafür ist die lineare Regression, bei der eine Gerade durch die Messwerte gelegt wird.

Lineare Regression mit gnuplot

Häufig kann ein Fit durch lineare Regression erfolgen. Falls z.B. ein exponentieller Zusammenhang erwartet wird, können die Funktionswerte logarithmiert werden, sodass sich ein linearer Zusammenhang ergeben sollte. Die optimalen Werte für die beiden Parameter der linearen Funktion (Steigung m und y-Achsenabschnitt b) können dann wie folgt bestimmt werden:

# Definition einer Fkt. f(x) mit den Parametern m und b
f(x) = m * x + b		

# Bestimmung der Parameter m und b so, dass die
# Abweichung der Messpunkte von f(x) minimal wird
fit f(x) 'daten.dat' via m,b 	
				
# Die gefittete Funktion kann mit geplottet werden:				
p 'daten.dat' u 1:2 t 'messwerte',\
  f(x) t 'fit'
        			

Fit Ergebnisse in der Legende verwenden

Oft ist es schön, wenn die gefittete Kurve im plot mit angezeigt wird und deren fit-Parameter in der Legende angezeigt werden. Man kann die C-Funktion sprintf() benutzen, um die fit-Ergebnisse automatisch zu verwenden:

p 'daten.dat' t sprintf("$ f(x) = %.1f \\cdot x + %.2f $", m, b)
        			

Der Inhalt zwischen den Anführungszeichen wird als Legendentext ausgegeben. Auch hier kann der LaTeX-Mathemodus verwendet werden (aber auch hier doppelte Backslashs benutzen!). An die Stellen, wo der Wert einer Variable eingefügt werden soll, wird z.B. %.2f geschrieben. Dies bedeutet, dass es sich um eine Dezimahlzahl (float) handelt, wobei 2 Dezimalstellen angezeigt werden sollen. Die eigentlichen Variablen werden dann am Ende des sprintf()-Befehls in der Reihenfolge genannt, in der sie eingefügt werden sollen.

In diesem Fall bedeutet das, dass der Wert m für %.1f eingefügt wird, wobei eine Dezimalstelle angezeigt wird. Der Wert für b wird dementsprechend an Stelle von %.2f eingefügt und mit 2 Dezimalstellen angezeigt.