Verfasst am: 04.09.2013, 13:15
Titel: Fit einer Exponentialfunktion durch y=2?
Hallo,
seit Tagen sitze ich an einem kleinen Problem und zerbreche mir den Kopf. Ich habe einen Datensatz, von dem ich (aufgrund des Physikalischen Hintergrundes) annehmen kann, dass die Datenpunkte um eine Exponentialfunktion liegen. Mit anderen Worten, ich kann annehmen, dass meine Daten mit einer Exponentialfunktion gut zu beschreiben sind.
Ich kan auch einfach eine entsprechende funktion finden und alles passt soweit sehr gut.
Allerdings habe ich ein kleines Problem: ein Datenpunkt ist negativ und kann deswegen nicht beruecksichtigt werden. Dass dieser Datenpunkt negativ ist, liegt an einigen umformungen und der Kalibrierung meiner Daten. Physikalisch ist ein negativer Wert unmoeglich und der Wert liegt nur einen Bruchteil der Standardabweichung, die ich fuer diesen Punkt annehmen kann, unter Null.
Dieser eine Punkt ist sehr wichtig, also kann ich ihn nicht einfach ignorieren. Physikalisch richtig waere es, den Punkt als extrem klein, aber positiv zu werten, aber das waere natuerlich mathematisch das falsche Vorgehen.
Wenn ich nun zu allen Datenpunkten 1 addiere aendern sich natuerlich die Exponentialfunktion, die die Daten am besten beschreibt - nicht nur in der vertikalen Lage, sondern auch in der lokalen Steigung bei einem gegebenen x-Wert. Anders ausgedrueckt: wen ich eine logarithmische y-Achse benutze aendert sich die Steigung der Geraden, die meine Daten beschreibt, wenn ich einen festen Wert zu meinen Daten addiere.
Allerdings liesse sich dieses Problem umgehen, wenn ich zu meinen Daten einen Wert A addiere (z.B. A=1) und dann eine Exponentialfunktion der Form Y=e^bx + A finde, um die Daten zu beschreiben. Das heisst, wenn A=1, muesste ich einen best fit fuer eine Exponentialfunktion finden, die durch Y=2 verlaeuft.
Mir fehlt nun leider jegliche Idee, wie ich diese Funktion finde. Ich nehme an, es muss ein Iterationsverfahren benutzt werden, aber das bekomme ich alleine leider nicht hin.
Hat jemand eine Idee? Hier ist ein Beispiel, wie die Daten aussehen koennten:
x=
0.24
0.18
0.32
0.26
0.42
0.34
0.285
y=
0.379
-0.058
0.574
0.701
0.922
0.528
0.409
Zuletzt bearbeitet von punsel am 04.09.2013, 13:34, insgesamt einmal bearbeitet
Wenn ich das richtig verstehe, sieht das allerdings sehr gut aus. Allerdings kennt meine Matlab Version "lsqcurvefit" nicht - ich brauche wahrscheinlich die Optimization toolbox?
ja dafür braucht man die optimization tool box. in der docu ist meiner meinung nach aber auch ein beispiel wie man einen fit mittels fminsearch macht. das ist etwas umständlicher aber könnte auch klappen.
http://www.mathworks.de/de/help/mat.....ing-via-optimization.html _________________
habs grade getestet. liefert das gleiche ergebniss. und das beispiel in der doc ist fast genau das was du brauchst außer das du das - vor lamda wegmachen musst.
_________________
Leider ist es doch nicht so einfach...
Außerdem möchte ich als Ausgabe gerne die Faktoren a, b und c ausgegeben haben. Kann mir bitte jemand helfen?
Danke schonmal im Voraus!
An sich schon. Was genau hast du versucht und welche genauen Probleme sind dabei aufgetreten?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.