|
angelmerke |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 11.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 00:00
Titel: Regression
|
 |
Hallo,
ich versuche schon seit längerem, ein Polynom zu finden, das vorgegebene Messpunkte, die in zeitlich konstantem Abstand aufgenommen wurden und eine bestimmte Varianz besitzten, möglich "gut" (least squares...) annähert.
Die Methode polyfit hat sich für die große Anzahl von Messpunkten nicht als geeignet herausgestellt. Ich habe nun eine rekursive Anwendung dieser Methode (jeweils 10 Messpunkte für ein Polynom verwenden) implementier, bin aber nicht richtig glücklich mit dieser Lösung.
Fällt vllt jemandem eine besser Lösung ein die Ausgleichsrechnung durchzuführen?
Vielen Dank im Voraus!
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 00:29
Titel: Re: Regression
|
 |
Hallo angelmerke,
Welche Probleme treten denn mit POLYFIT auf?
Wie groß ist "die sehr große Anzahl"? Für manche Forums-User gilt 1000 schon also groß, andere brauchen dafür Millionen.
Wie genau fasst Du 10 Punkte zusammen und wie kann dies Deine Frage lösen, bei der Du doch eine Gerade benötigst?
Bitte erkläre Deine Probleme nochmal genauer.
Eine bessere Lösung als POLYFIT kann ich bisher nicht sehen. Werden die Ausgangsdaten normalisiert? X-Werte um Null und mit eine Standard-Abweichung unter 10 sind hilfreich für eine stabile Lösung.
Gruß, Jan
|
|
|
angelmerke |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 11.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 09:33
Titel:
|
 |
vielen Dank für die Antwort!
Es handelt sich um 1.000 bis 10.000 Werte.
Mit der Funktion polyfit treten folgende Probleme auf:
- einfache Anwendung: das Polynom entspricht nicht dem eigentlichen Verlauf
- mehrfache Anwendung: das Teilpolynom startet und endet mit zu geringen Werten, sodass bei einer Auswertung der Punkte 1 bis 10 nur die Punkte 4,5 und 6 als eigentlichen Verlauf verwendet werden können.
Ich fasse die Punkte nicht zusammen sondern verwende polyfot zunächst für die Punkte 1 bis 10 danach für 4 bis 13 usw um für alle Punkte ein Polynom zu erhalten.
Ich habe mich eventuell falsch ausgedrückt, ich möchte keine gerade sonden ein Polynom, um dieses dann beispielsweise abzuleiten.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 10:04
Titel:
|
 |
|
 |
|
Hallo angelmerke,
Zitat: |
- einfache Anwendung: das Polynom entspricht nicht dem eigentlichen Verlauf |
Das muss ein Bug im Code oder im Design sein. POLYFIT gibt das Least-Squares-Polynom zurück. Wenn das nicht dem Verlauf entspricht, gibt es keines, das näher liegt. Eventuell ist der eigentliche Kurvenverlauf schlecht durch ein Polynom annäherbar, z.B. eine Sinuskurve mit vielen Perioden. Das ist dann aber ein Design-Fehler und kein Problem von POLYFIT.
Zitat: |
- mehrfache Anwendung: das Teilpolynom startet und endet mit zu geringen Werten, sodass bei einer Auswertung der Punkte 1 bis 10 nur die Punkte 4,5 und 6 als eigentlichen Verlauf verwendet werden können.
|
Das verstehe ich nicht. Was wird worauf mehrfach angewendet?
Verwendest Du ein Polynom hohen Grades, dass im Aussenbereich wie üblich zu heftigem Schwingen neigt? Für 10 Punkte wird z.B. der Grad 9 kaum bracuhbare Ergebnisse liefern.
Kannst Du ein Bild von den Eingangsdaten posten? Für die Berechnung einer Steigung wäre es bestimmt sinnvoller, ein einzelnes statt vieler stückchenweiser Polynome zu verwenden. Ein Savitzky-Golay-Smoothing Filter wäre auch eine Idee: Der kann direkt die Steigung bestimmen, in dem er stückchenweise Polynome bildet.
Siehe z.B. http://www.mathworks.de/matlabcentr.....xchange/16997-movingslope
Gruß, Jan
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 26.03.2013, 12:15
Titel:
|
 |
Schön wär auch noch zu wissen, was du dann mit dem Polynom vor hast, vielleicht wäre auch ein Spline angebracht?
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|