|
|
Berechnung von Stützstellen |
|
philip331 |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 26.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2015b
|
|
|
|
|
|
Verfasst am: 07.11.2016, 21:29
Titel: Berechnung von Stützstellen
|
|
|
|
|
Hallo zusammen ,
ich benötige wieder mal euren fachlichen Rat. Zur meiner Problemstellung:
Ich habe eine Funktionskurve
Nun will ich hieraus eine Anzahl N an Stützstellen bestimmen, welche die Kurve bei einer linearen Interpolation optimal annähert. Hierbei handelt es sich um ein Optimierungsproblem, was leider erst im nächsten Semester bei mir behandelt wird.
Ich hatte bisher den Ansatz, bei meinem Startpunkt (0|0) zu beginnen und dann die gerade so lange verlängern, bis die Gerade meine Toleranzschlauch berührt den ich um meine Kurve gelegt habe. Dieser Endpunkt ist dann mein neuer Startpunkt usw. Hierbei treten aber die Probleme auf, dass
A) dies nicht zum optimalen Ergebnis führt, da kürze vorangegangene Stücke zu besseren nachfolgende führt
B) ich die Anzahl der Stützstellen nicht vorgeben kann, da dass Ergebnis derzeit nur vom Toleranzschlauch abhängt.
Es wäre also sinnvoller die Kurve zunächst in N-1 Intervalle zu unterteilen und dann die Stützpunkte so zu verschieben, dass die Fläche zwischen Kurve und Geraden minimal wird.
Wie gesagt, ich habe keine Ahnung wie ich das umsetzen kann bzw. ob das überhaupt die optimale Herangehensweise ist.
Ich würde mich freuen wenn sich hierzu fachkundige Personen äußern könnten und vllt. auf Skripte/Algorithmen/Ideen verweisen könnten!
Grüße Philip
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.11.2016, 11:05
Titel: Re: Berechnung von Stützstellen
|
|
|
|
|
Hallo philip331,
Die Antwort ist trivial: Du benötigst natürlich unendlich viele Stützstellen für eine optimale Annäherung mit linearer Interpolation. Es sei denn, Deine Messpunkte liegen auf einer Geraden oder auf einem linearen Polygonzug.
Was bedeutet also "optimal"?
Welche Randbedingungen gibt es? Sollen die Randpunkte z.B. auf den Funktionswerten liegen, oder dürfen sie dort abweichen?
Sollen die Stützstellen equidistant sein?
Wie möchtest Du die Abweichung zwischen Polygonzug und Signal messen: Summe der quadrierten Abstände, maximaler Abstand, durchschnittlicher Abstand, Standard-Abweichung des Abstandes? Dabei könnte "Abstand" die Entfernung in Y-Richtung zu jedem X-Wert sein, aber auch die kürzeste Verbindung zwischen den Kurven, also senkrecht auf dem Polygonzug gemessen.
Zitat: |
Ich hatte bisher den Ansatz, bei meinem Startpunkt (0|0) zu beginnen und dann die gerade so lange verlängern, bis die Gerade meine Toleranzschlauch berührt den ich um meine Kurve gelegt habe. |
Das ist ein sinnvolles Vorgehen, hat aber nichts mit dem Optimum zu tun.
Zunächst musst Du also das Optimierungs-Kriterium eindeutig definieren. Da N=Unendlich Dich wohl nicht wirklich zufriedenstellen wird, ist erstmal zu klären, was überhaupt das Ziel ist.
Da N voraussichtlich etwas im Bereich unter 1000 sein wird (wild geraten), kann man das Problem noch mit einem Brute-Force-Ansatz bearbeiten: Entweder alle 1000 Möglichkeiten durchprobieren, oder als Binary-Search bei {1, 1000} und dann jeweils nur in der Hälfte weiter suchen, in der das kleinere Ergebnis liegt.
Wenn Du dann einen bestimmten N-Wert hast, kannst Du mit einem equidistanten Polynom beginnen (siehe
polyfit
) und dann die Stützpunkte verschieben, bis das Optimierungs-Kriterium erreicht wird. Das wird nur mit einem Optimierungs-Tool effizient funktionieren, ein Newton-Verfahren hilft da bestimmt.
Insgesamt ist das Problem nicht trivial. Aber es klingt auch nicht ungewöhnlich. Darum hat doch bestimmt schon jemand mal ein Lösungsverfahren dazu veröffentlicht. Eine Suche im Netz hilft deshalb ganz sicher weiter.
Gruß, Jan
|
|
|
philip331 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 26.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2015b
|
|
|
|
|
|
Verfasst am: 08.11.2016, 12:38
Titel: Re: Berechnung von Stützstellen
|
|
|
|
|
Hallo Jan,
danke für die schnelle Antwort:)
Zitat: |
Die Antwort ist trivial: Du benötigst natürlich unendlich viele Stützstellen für eine optimale Annäherung mit linearer Interpolation. |
Das stimmt, jedoch mache ich die Vorgabe, das Polynom mit nur z.B. 5 Stützstellen über den gesamten x-Bereich anzunähern.
Zitat: |
Was bedeutet also "optimal"?
Welche Randbedingungen gibt es? Sollen die Randpunkte z.B. auf den Funktionswerten liegen, oder dürfen sie dort abweichen?
Sollen die Stützstellen equidistant sein? |
Optimal bedeutet für mich nicht das Polynom perfekt mittels linearer Teilstücke anzunähern, sondern unter der Vorgabe von 5 Stützstellen das beste Ergebnis zu erzielen, ganz egal wie groß der Fehler ist. Die Stützstellen müssen nicht auf den Funktionswerten liegen, wenn andere Werte ein besseres Ergebnis erzielen. Die Anzahl der Stützstellen ist die einzigste Vorgabe welche zu beachten ist.
Die Summe der Fehlerquadrate oder das Integral zwischen beiden Kurven spiegeln das Ergebnis ja ähnlich wieder hätte ich mal spontan gesagt.
Zitat: |
Zunächst musst Du also das Optimierungs-Kriterium eindeutig definieren. Da N=Unendlich Dich wohl nicht wirklich zufriedenstellen wird, ist erstmal zu klären, was überhaupt das Ziel ist. |
Abweichung minimal bei 5 Stützstellen zum Beispiel
Zitat: |
Insgesamt ist das Problem nicht trivial. Aber es klingt auch nicht ungewöhnlich. Darum hat doch bestimmt schon jemand mal ein Lösungsverfahren dazu veröffentlicht. Eine Suche im Netz hilft deshalb ganz sicher weiter. |
Das dachte ich auch, wurde jedoch nicht fündig. Evtl. habe ich die falschen Suchwörter eingegeben (Lineare Interpolation, Optimierung, Polynom). Hättest du bessere Suchbegriffe?
Grüße, Max
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.11.2016, 13:54
Titel: Re: Berechnung von Stützstellen
|
|
Hallo philip331,
Zitat: |
Die Summe der Fehlerquadrate oder das Integral zwischen beiden Kurven spiegeln das Ergebnis ja ähnlich wieder hätte ich mal spontan gesagt. |
Ja, das ist ungefähr ähnlich. Du brauchst aber eine eindeutige Entscheidung, denn die Ergebnisse hängen von der Wahl des Kriteriums ab. Die "richtige" Methode hängt von der physikalischen Natur Deiner Fragestellung ab.
Ich habe gesucht nach "determine optimal linear polygone to fit data"
Soll der Polygonzug zusammen hängend sein?
Gruß, Jan
|
|
|
philip331 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 26.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2015b
|
|
|
|
|
|
Verfasst am: 08.11.2016, 14:18
Titel:
|
|
Jan S hat Folgendes geschrieben: |
Du brauchst aber eine eindeutige Entscheidung, denn die Ergebnisse hängen von der Wahl des Kriteriums ab. Die "richtige" Methode hängt von der physikalischen Natur Deiner Fragestellung ab. |
Na gut, dann lege ich mich auf die Minimierung der Fläche zwischen den beiden Kurven fest
Jan S hat Folgendes geschrieben: |
Ich habe gesucht nach "determine optimal linear polygone to fit data" |
Sobald ich von der Uni zuhause bin werde ich danach mal das Internet durchforsten. Danke dir:)
Jan S hat Folgendes geschrieben: |
Soll der Polygonzug zusammen hängend sein?" |
Ja, definitiv. Der Regler für den die Parameter bestimmt sind, interpoliert immer zwischen 2 aufeinander folgenden Stützstellen.
Grüße, Max
|
|
|
GastWV |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.02.2018, 16:48
Titel: Suche optimale Stützstellen für lineare Interpolation
|
|
Hi,
ich habe genau das gleiche Problem.
Ich habe 9 Stützstellen, die ich über die Funktion beliebig verteilen kann und suche die beste Position, damit die lineare Verbindung der Stellen eine bestmögliche Anpassung an die Originalfunktion ergibt.
Wie wurde das hier gelöst ? Mir fehlen die Ansätze, welche Möglichkeiten es gibt.
Vielen Dank schon mal und besten Gruß
Waldemar
|
|
|
|
|
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 - 2024
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.
|
|