WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Regression

 

angelmerke
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2013, 00:00     Titel: Regression
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.03.2013, 00:29     Titel: Re: Regression
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
angelmerke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2013, 09:33     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.03.2013, 10:04     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 26.03.2013, 12:15     Titel:
  Antworten mit Zitat      
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...
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.