|
|
Warnung bei polyfit (Polynomial is badly conditioned) |
|
flohaase |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 23.02.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2015, 17:08
Titel: Warnung bei polyfit (Polynomial is badly conditioned)
|
 |
Hallo zusammen,
ich habe mir aus Ausgangsspannung simuliert und ein Rauschen drüber gelegt:
Nun will ich mir ein Polynom erstellen lassen, das meiner Ausgangsspannung möglichst nahe kommt:
Über den Grad habe ich mir noch nicht so viele Gedanken gemacht außer: Wenig niedriger desto ungenauer, aber auch weniger rechenintensiv.
Nun bekomme ich folgende Fehlermeldung:
Grob übersetzt heißt das, dass die Bedingungen schlecht gewählt sind und ich für X verschiedene, individuelle Punkte wählen soll.
Leider wirft die Hilfe noch mehr Fragen auf als sie beantwortet.
Weis einer weiter?
Danke und beste Grüße
Flo
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.03.2015, 17:22
Titel:
|
 |
warum versuchst du eine sinus schwingung mit einem polynom zu fitten?
je höher der grad ist desdo mehr punkte kann man fitten. allerdings neigen hochgradige polynome schnell zum überschlagen. außerdem hast du dann x^20 und deine funktionswerte gehen bis 6 vielleicht. um mit 10^20 wieder auf 6 zu kommen müssen die koeffizienten entweder sehr klein sein oder stark alternieren. ich weis nicht ob das zielführend ist.
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.03.2015, 23:14
Titel: Re: Warnung bei polyfit (Polynomial is badly conditioned)
|
 |
Hallo flohaase,
Hast Du schon die Dokumentation von POLYFIT gelesen? Dort wird erklärt, wie man die Werte so skaliert, dass das Problem besser konditioniert ist. Alles, was man tun muss, ist die beiden Outputs S und Mu ebenfalls definieren:
S und Mu müssen dann in POLYVAL auch wieder mit angegeben werden.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 10.03.2015, 11:53, insgesamt einmal bearbeitet
|
|
|
flohaase |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 23.02.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2015, 10:11
Titel: Re: Warnung bei polyfit (Polynomial is badly conditioned)
|
 |
|
 |
|
Winkow hat Folgendes geschrieben: |
warum versuchst du eine sinus schwingung mit einem polynom zu fitten?
je höher der grad ist desdo mehr punkte kann man fitten. allerdings neigen hochgradige polynome schnell zum überschlagen. außerdem hast du dann x^20 und deine funktionswerte gehen bis 6 vielleicht. |
Weil ich noch keine Messdaten habe, habe ich sie selber generiert, daher die sin-Funktion. In der Tat hast du Recht, dass bis Fehlermeldung nicht kommt, wenn ich die nur bis zum 8. Grad gehe (habs ich händisch ausprobiert). Was bedeutet "überschlagen"?
Jan S hat Folgendes geschrieben: |
Hast Du schon die Dokumentation von POLYFIT gelesen? ... Alles, was man tun muss, ist die beiden Outputs S und Mu ebenfalls definieren:
S und Mu müssen dann in POLYVAL auch wieder mit angegeben werden.
Gruß, Jan |
Gelesen schon, aber nicht verstanden. Ich werde es so ausprobieren.
Danke und beste Grüße
Flo
EDIT
Also ich habe die weiteren Parameter jetzt eingefügt. Jetzt kommt die Fehler bis zum 23. Grad nicht. Kann mir bitte kurz einer erklären, was genau die Funktionen polyfit und polyval machen?
Mein Versuch:
Polyfit: Macht aus einer beliebig verlaufenden Kurve eine Polynom bzw. die Koeffizieten, also n Zahlen. Was macht dann polyval?
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 10.03.2015, 10:31
Titel:
|
 |
Zitat: |
Was macht dann polyval? |
Zitat: |
y = polyval(p,x) returns the value of a polynomial of degree n evaluated at x. |
oder auch
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.03.2015, 11:58
Titel: Re: Warnung bei polyfit (Polynomial is badly conditioned)
|
 |
Hallo flohaase,
POLYFIT bestimmt die Koeffizienten des Polynoms, das in Sinne der kleinesten Fehler-Quadrate die Messwerte annähert.
POLYVAL gibt für dieses Polynom Y-Werte zu den gegebenen X-Werten aus.
Für die Berechnungen in POLYFIT muss ein Gleichungssystem gelöst werden. Wenn die X-Werte zu groß sind und nicht gleichmäßig um 0 verteilt, wirde dieses Gleichungssystem schlecht konditioniert, lässt sich also nur noch mit sehr großen Fehlern lösen. Wenn die beiden zusätzlichen Outputs genutzt werden, skaliert POLYFIT die X-Werte so, dass der Mittelwert bei 0 liegt und die Standard-Abweichung (oder Maximum, oder wie auch immer) bei 1 liegt (2 oder 5 wäre auf kein Problem). Dazu werden also ein Wert von den X-Werten abgezogen und das Ergebnis multipliziert. In POLYVAL wird dann das gleiche umgekehrt mit den X-Werten aus dem Input gemacht.
Gruß, Jan
|
|
|
|
|
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.
|
|