anpassen einer gauskurve
-
hallo!
ich habe folgendes problem, dass ich gern in c++ losen moechte:
ich habe ein array mit 2000 elementen. jedem element ist eine anzahl zugeordnet. das ganze ist also ein histogramm. wenn ich das histogramm anzeigen lasse, entspricht es ungefaehr einer gausverteilung. ich moechte nun eine funktionsgleichung fuer diese kurve finden, die dich moeglichst gut an das histrogramm anschmiegt.
weiss jemand wie das prinzipiell gehen koennte, oder hat jemand schonmal sowas in c geschrieben?
vielen dank schonmal!
-
Hi
Du könntest Erwartungswert und Standardabweichung deiner Werte berechnen und diese als Parameter für die Gauß'sche Funktion nehmen. Somit hättest du einen einfachen Term, der deine Werte insgesammt gut approximiert, von einzelnen aber beliebig abweichen kann.
Willst du eine Kurve, die exakt durch deine Tupel von Werten verläuft, musst du interpolieren. Spline-Interpolation scheint hier angebracht. Eine Kubische Spline-Interpolation kann sehr schnell berechnet werden (O(n) wobei n die Zahl deiner Stützstellen sind) und liefert i.d.R. gute Ergebnisse. Nur hast du dann keinen einzelnen Term mehr sondern n*4 Werte, die Koeffizienten kubischer Polynome.
Gruß, space