Hallo Leute, ich schreibe gerade meine DA und komme nicht wirklich weiter. Und zwar habe ich einen AT91SAM7X128 und nehme damit Daten auf. Diese Daten ähneln eine Abklingkurve (vergleichbar mit Entladekurve eines Kondensators) und daher möchte ich diese Daten gerne einer exponentialfunktion annähern. Dazu würde ich gern auf dem Controller eine Fitfunktion nach dem Muster I(t)=I0*exp(-t/tau)+c implementieren, aber weiß nicht wirklich wo ich da anfangen soll. Hat von euch schon jemand einmal solche mathematischen Fitfunktionen implementiert oder kann mir jemand einen Typ geben, wo ich da am besten nachschlagen kann? Mfg MW
Im Falle von Exponentialfunktionen bietet sich die Levenber-Marquardt-Methode an. Ein C-Codebeispiel ist "Numerical Recieps in C" zu finden. Eine ältere Version dieses Buches ist Online lesbar (ab Seite 683).
Zuerst sollte man so einen Fit natuerlich aufm PC testen. Im Fall der Exponentialfunktion, welche ueber einige Ordnungen gehen kann, ist ein Least Square geanu der Falsche, denn dann ueberwiegen die paar grossen Werte gegenueber den kleinen. Was man dann machen kann waere im logarithmischen Raum zu rechnen.
Die Fkt. I(t)=I0*exp(-t/tau) kann man logarithmieren und dann linear fitten, das ist der Standardhack bei diesem Problem: ln(I(t)) = ln(I0)-t/tau Cheers Detlef
Wenn man Daten mit einem Offset hat, hilft das Logarithmieren auch nur sehr begrenzt. Es hängt auch von der Herkunft der Daten und den zu erwartenden Fehlern ab, ob es besser ist direkt nach den kleinsten Quadraten anzupassen, oder ob die Daten erst umgerechnet werden sollten, z.B. durch den Logarithmus. Weder das eine noch das andere ist immer richtig.
>>Wenn man Daten mit einem Offset hat, hilft das Logarithmieren auch nur >>sehr begrenzt. Den Offset kann man rausrechnen, weil I(t)=I0*exp(-t/tau)+c für t gegen unendlich gegen c geht, man also c kennt wenn man lange genug wartet. Lineare Regression und Polynome fitten klappt immer gut, diese nichtlinearen fits haken immer irgendwo: Anfangswerte, Konvergenz, lokale Minima, was weiß ich. Das geht nur einigermassen, wenn man die Lösung schon so in etwa kennt. Das sage ich so, weil ich das schon öfter gemacht habe und darin total erfahren bin, so ist das nämlich ;-) Cheers Detlef PS: Der TO scheint an den Einlassungen zu seiner Frage nicht mehr so brennend interessiert zu sein. Sieht man häufig, Frage war wohl nicht allzu ernst gemeint, schade.
Danke für die vielen Hinweise. Natürlich bin ich noch an der Frage interessiert, sonst hätte ich sie nicht gestellt;-) Leider hab ich gerade keine richtige Zeit mich damit zu beschäftigen, weil ich den schriftlichen Teil meiner DA bald abgeben muss und ich die Umsetzung des Fits erst danach machen will, weil es nicht Teil meiner Arbeit ist. Wollte nur schon mal ein paar Anregung einholen um nicht ganz von Null anzufangen. Also wie gesagt erstmal Danke für die tollen Ratschläge. Ich melde mich wieder, wenn ich mich mit dem Problem genauer auseinander gesetzt habe. MFG MW
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.