Die Gausche Summenformel in Python programmieren
Verfasst: Mittwoch 31. März 2021, 11:44
Hallo ihr Lieben,
ich stehe momentan vor einer echt großen Herausforderung und nachdem ich mir jetzt 3h lang den Kopf zerbrochen habe möchte ich euch um Hilfe bitten.
Die Aufgabe ist es, unter einem Graphen mit n Maxima n Gausfunktionen zu legen. Momentan muss ich noch für jede Anzahl n die unten stehenen funktionen einzeln implementieren.
jetzt bin ich auf der Suche nach einer Möglichkeit dieses langwierige Verfahren abzukürzen. Gibt es eine Möglichkeit dass sich die gewünschte Funktion von selbst erzeugt, und ich nur die Anzahl der Maxima eingeben muss?
Dafür wäre es wohl notwendig funktionen in funktionnen zu verschachteln, da ich zum einen eine Funktion benötige die mir die richtige Anzahl Parameter für die eigentliche Funktion liefert.
und gibt es in Python eine Möglichkeit die Gaussche Summenfunktion zu implementieren?
Vielen Dank schonmal an jeden der antwortet
Schöne Grüße
CsAngel
ich stehe momentan vor einer echt großen Herausforderung und nachdem ich mir jetzt 3h lang den Kopf zerbrochen habe möchte ich euch um Hilfe bitten.
Die Aufgabe ist es, unter einem Graphen mit n Maxima n Gausfunktionen zu legen. Momentan muss ich noch für jede Anzahl n die unten stehenen funktionen einzeln implementieren.
Code: Alles auswählen
def _1gaussian(x, amp1, cen1, sigma):
return amp1 * (np.exp(-((x - cen1) ** 2) / (2 * (sigma ** 2))))
def _2gaussian(x, amp1, cen1, amp2, cen2, sigma):
return amp1 * (np.exp(-((x - cen1) ** 2) / (2 * (sigma ** 2)))) + \
amp2 * (np.exp(-((x - cen2) ** 2) / (2 * (sigma ** 2))))
def _3gaussian(x, amp1, cen1, amp2, cen2, amp3, cen3, sigma):
return amp1 * (np.exp(-((x - cen1) ** 2) / (2 * (sigma ** 2)))) + \
amp2 * (np.exp(-((x - cen2) ** 2) / (2 * (sigma ** 2)))) + \
amp3 * (np.exp(-((x - cen3) ** 2) / (2 * (sigma ** 2))))
def _4gaussian(x, amp1, cen1, amp2, cen2, amp3, cen3, amp4, cen4, sigma):
return amp1 * (np.exp(-((x - cen1) ** 2) / (2 * (sigma ** 2)))) + \
amp2 * (np.exp(-((x - cen2) ** 2) / (2 * (sigma ** 2)))) + \
amp3 * (np.exp(-((x - cen3) ** 2) / (2 * (sigma ** 2)))) + \
amp4 * (np.exp(-((x - cen4) ** 2) / (2 * (sigma ** 2))))
jetzt bin ich auf der Suche nach einer Möglichkeit dieses langwierige Verfahren abzukürzen. Gibt es eine Möglichkeit dass sich die gewünschte Funktion von selbst erzeugt, und ich nur die Anzahl der Maxima eingeben muss?
Dafür wäre es wohl notwendig funktionen in funktionnen zu verschachteln, da ich zum einen eine Funktion benötige die mir die richtige Anzahl Parameter für die eigentliche Funktion liefert.
und gibt es in Python eine Möglichkeit die Gaussche Summenfunktion zu implementieren?
Vielen Dank schonmal an jeden der antwortet
Schöne Grüße
CsAngel