Interpolationsfunktion erstellen
-
Hi!
Ich tue mich aktuell ziemlich schwer damit eine reihe von Datenpunkten (x,y) zu interpolieren und so zu speichern das ich dann zu beliebigen x einen y wert erreichnen kann.
Es gibt bla viele wege das zu machen und ich habe das auch schon mit matlab, oder c++ libs, aber wie bekomme ich die Interpolationsfunktion?
Ich möchte die interpolationsfunktion z.b. als Polynomfunktion wegspeichern und mit beliebigen x wert füttern.
Hier sind z.b. Meine Datenpunkte.
Das ergibt eine art gedämpfte exponentialfunktion. (irre simpel, aber ich bekomm es irgendwie nicht hin)-20 0.9 -15 1.4 -10 2.1 -8 2.5 -6 3.0 -4 3.5 -2 4.1 0 4.8 2 5.6 4 6.4 6 7.3 8 8.3 10 9.4 12 10.7 14 12.1 15 12.9 16 13.7 17 14.5 18 15.4 19 16.3 20 17.3 21 18.4 22 19.5 23 20.6 24 21.8 25 23.1 26 24.4 28 27.2 30 30.4 32 33.8 34 37.6 36 41.7 38 46.2 40 51.1 45 65.4
-
Wo ist denn dein Problem? Hast du Interpolation an sich denn verstanden?
Ein Polynom hohen Grades oszilliert aber schon extrem und ist selten sinnvoll. Deswegen solltest du dir mal z.B. die Spline-Interpolation anschauen, falls die Stützstellen das nicht hergeben.
Andernfalls: Doku der C++-Libs lesen!
-
Natürlich.
Ich habe ähnliche probleme woanders bereits linear interpoliert, und auch schon libs für Spline interpolationen benutzt, aber ich möchte es jetzt nicht selbst implementieren und auch kein c programm schreiben das es macht.
Ich möchte bloß einen entsprechenden matlab befehl haben der das macht.Polyfit mit polynomgrad 4 wirft mir z.b. werte raus die überhaupt keinen sinn machen.
Versteh mich nicht falsch... Ich steige gerne tief ein in materie und habe auch schon unzähliges hinter mich gebracht. Aber ich habe keine lust mich tagelang mit etwas zu beschäftigen was bereits hundertausendfach besser irgendwo implementiert wurde. Ich will es nur kurz, einmalig anwenden und fertig.
-
Wenn Du eine Idee davon hast, was es für eine Funktion sein soll (zum Beispiel eine Art Exponentialfunktion, dann versuch es doch mit least squares fitting:
http://www.mathworks.de/de/help/optim/ug/lsqcurvefit.html
-
hab die Datenreihe nochmal etwas bereinigt.
Ich komme jetzt grob hin wenn ich die Parameter vom Polyfit grad 4 benutze.
ist aber teilweise gut 5 hunderstel abweichung... ist erstmal gut genug, aber ich such noch mal weiter...