Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Softwarearchitekt (m/w)
Entwicklung mit Matlab / Simulink und MISRA-C
SEG Automotive Germany GmbH - Stuttgart-Weilimdorf

Informatiker (m/w) für den Bereich Toolkette Embedded Software
Weiterentwicklung einer MATLAB- / Simulink-Toolkette
cbb-Software GmbH - Stuttgart

SW-Entwickler/in SiL Motorsteuerung
Erstellung und Erweiterung von kundenspezifischen Simulationsmodellen in MATLAB/Simulink
Robert Bosch GmbH - Schwieberdingen

Entwicklungsingenieur (m/w) Umfelderfassung und Sensorfusion
Definition von Anforderungen und Analyse hinsichtlich einer Umfelderfassung mit verschiedenen Sensorsystemen
Bertrandt Ingenieurbüro GmbH - Frankfurt am Main

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Berechnung von Stützstellen

 

philip331
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.08.15
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 07.11.2016, 22:29     Titel: Berechnung von Stützstellen
  Antworten mit Zitat      
Hallo zusammen Smile ,

ich benötige wieder mal euren fachlichen Rat. Zur meiner Problemstellung:
Ich habe eine Funktionskurve
Code:
func=A*x*exp(-b*x+c)

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! Idea


Grüße Philip
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 10.481
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.11.2016, 12:05     Titel: Re: Berechnung von Stützstellen
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
philip331
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.08.15
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 08.11.2016, 13:38     Titel: Re: Berechnung von Stützstellen
  Antworten mit Zitat      
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.

Code:
Wie möchtest Du die Abweichung zwischen Polygonzug und Signal messen

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 10.481
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.11.2016, 14:54     Titel: Re: Berechnung von Stützstellen
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
philip331
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.08.15
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 08.11.2016, 15:18     Titel:
  Antworten mit Zitat      
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 Very Happy

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
Private Nachricht senden Benutzer-Profile anzeigen
 
GastWV

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2018, 17:48     Titel: Suche optimale Stützstellen für lineare Interpolation
  Antworten mit Zitat      
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
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.