Versuch Gauskurve zu plotten -> Unsinn?
Verfasst: Sonntag 1. Mai 2011, 10:55
Hi,
sry für den Titel aber das Problem ist leider zu komplex um es in einer Zeile zu beschreiben.
Ich versuche in einem Diagramm eine zweite Kurve einzufügen. Die erste Kurve sind meine Messdaten, die zweite soll nun die gefitteten Gauspeaks anzeigen.
Habe mit einem externen die Peaks gefittet, habe also die benötigten Werte bereits.
Ich muss nun aus diesen Werten wieder eine Kurve basteln.
Da ich Multipkeas habe brauche ich dazu die Summe aller Gausfunktionen für jeden peak.
Habe es zuerst so probiert:
Leider schmeißt mir Python da einen Rekusions Tiefen Fehler. (peak_list ist max. 8 Elemente groß)
Also habe ich es so probiert:
Nur kommt da nur Müll raus. Es ergeben sich keine Gaußglocken sondern Streifen. Selbst wenn ich f_list auf eine funktion beschränke (und dann ja eine Gaußkuppel irgendwo bekommen sollte) bekomme ich mehrere Striche die über meinen ganzen Plot verteilt sind.
Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht aber ich habe jetzt bereits zwei Tage versucht raus zu finden was das Problem ist und wende mich deshalb an euch.
Kann mir jemand einen Tipp geben was ich falsch mache?
sry für den Titel aber das Problem ist leider zu komplex um es in einer Zeile zu beschreiben.
Ich versuche in einem Diagramm eine zweite Kurve einzufügen. Die erste Kurve sind meine Messdaten, die zweite soll nun die gefitteten Gauspeaks anzeigen.
Habe mit einem externen die Peaks gefittet, habe also die benötigten Werte bereits.
Ich muss nun aus diesen Werten wieder eine Kurve basteln.
Da ich Multipkeas habe brauche ich dazu die Summe aller Gausfunktionen für jeden peak.
Habe es zuerst so probiert:
Code: Alles auswählen
x1 = eingelesene x Werte meiner gemessenen Kurve
f = lambda x: 0
for peak_var in peak_list:
center = peak_var[0]
width = peak_var[1]
height = peak_var[2]
g = lambda x: height * math.exp(-1.0/2.0 * ((x - center)/width)**2))
f = lambda x: f(x) + g(x)
y2 = [] # liste für meine peak werte
for x in x1:
y2.append(f(x))
Also habe ich es so probiert:
Code: Alles auswählen
x1 = eingelesene x Werte meiner gemessenen Kurve
f_list = [] #liste für meiner funktionen
for peak_var in peak_list:
center = peak_var[0]
width = peak_var[1]
height = peak_var[2]
g = lambda x: height * math.exp(-1.0/2.0 * ((x - center)/width)**2))
f_list.append(g)
y2 = [] # liste für meine peak werte
for x in x1:
value = 0
for f in f_list:
value += f(x)
y2.append(value)
Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht aber ich habe jetzt bereits zwei Tage versucht raus zu finden was das Problem ist und wende mich deshalb an euch.
Kann mir jemand einen Tipp geben was ich falsch mache?