Verfasst am: 29.05.2012, 14:52
Titel: Interpolation von nicht eindeutigen Werten
Hallo Leute,
ich habe Messwerte, die nicht eindeutig sind d.h. für einen x-Wert bestehen mehrere y-Werte. Durch die Messwerte soll eine Funktion gelegt werden, die eine S-Form hat.
Ich habe mit interp1 versucht doch hier die Fehlermeldung ausgegeben, dass die Werte nicht "distinct" seien. Kennt jemand eine Möglichkeit, eine Interpolation in S-Form zu ermöglichen?
wie soll denn Interpolation bei dieser Nichteindeutigkeit funktionieren? Was du vorhast, ist sicher Approximation/Regression.
Falls du dennoch interpolieren möchtest, könntest du die Werte pro Stützstelle mitteln.
Grüße, Marc
Gast571
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 29.05.2012, 16:40
Titel:
Danke erst mal für die schnelle Antwort.
Was habe ich vor?
Ich möchte durch meine Messwerte eine Kurve (keine Funktion) legen, die möglichst nahe an den Messwerten liegt.
Könnte sein, dass dies eher ein Fall für Approximation/Regression ist.
Kann mir jemand hier vielleicht eine Funktion empfehlen?
Ohne Funktion gibt es keine Kurve. Ein Kurve ist eine Funktion. Wenn du die Punktwolke approximieren willst, musst du dich für eine Modellfunktion entscheiden.
Ohne diese Daten zu sehen, kann man da schlecht Tipps geben.
Gast571
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 29.05.2012, 17:23
Titel:
Danke für die Antwort.
Die Messergebnisse liegen so, dass sie eine S-Form bilden. Sie liegen also nicht in einer Wolke. Per Hand könnte ich relativ leicht eine Kurve hindurch zeichnen. Wie könnte ich dies aber mit Matlab machen?
Nun gut, eine Funktion wäre es eindeutig nicht, da es x-Werte gibt, denen mehrere Y-Werte zugeordnet werden.
Dennoch muss es doch eine Möglichkeit geben, hier eine Kurve (keine Funktion) hindurchzulegen, die möglichst nahe an den Messwerten liegt.
Kann mir hier jemand eine Matlab-Funktion empfehlen?
Falls Du die Curve Fitting Toolbox zur Verfügung hast, kann ich zum Ausprobieren des Fittens das Curve Fitting Tool cftool sehr empfehlen. Von da ausgehend kann man sich ggf. auch recht leicht entsprechenden Code generieren.
Alternative: Man kann ein kubisches Polynom parametrieren und rotieren. Damit lässt sich ebenfalls eine Regression durchführen (insgesamt 5 Freiheitsgerade inkl. Rotationswinkel).
Interpolation geht in diesem Fall auch. Dazu könnte man sich Splines in Parameterdarstellung bedienen. Hier ein interaktives Beispiel: http://www.tm-interaktiv.de/Splines/
Gast571
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.06.2012, 19:23
Titel:
Erst mal vielen Dank für die ausführliche Hilfe. Mit Hilfe der fertigen Skripte habe ich mal etwas herumgespielt und folgenden Code zusammengeschneidert:
Leider habe ich noch 2 Probleme:
1. Verstehe ich noch nicht ganz den Sinn des "knot-vector" t. In obigem Code habe ich für 2 unterschiedliche t den B-Spline plotten lassen. Ich sehe aber nicht, in wie weit t den Plot beeinflusst.
2. Funktioniert hier die logarithmische Skalierung der y-Achse nicht. Kann ich diese noch auf eine andere Art und Weise erreichen?
Vielen Dank schon mal...
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.