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

Graph Annäherung mit Optimierung

 

Blablacar
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2020, 10:50     Titel: Graph Annäherung mit Optimierung
  Antworten mit Zitat      
Hallo,

ich steht vor folgendem Problem. Ich habe gemessene Daten, welche in einen Plot als Graph dargestellt werden. Dieser Graph wird mit einem berechneten Graph verglichen, dessen Eigenschaften von 6 Variablen abhängt (kommt aus einem anderen Programm, daher keine Funktion zur Hand).
Meine Frage ist nun, ob es in Matlab möglich ist, die 6 Variablen so lange zu ändern, bis die beiden Graphen fast übereinander liegen? Am besten so, dass Matlab selbst registriert welche Werte für die Variablen gut sind und welche schlecht.

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


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2020, 12:10     Titel:
  Antworten mit Zitat      
Hallo,

ich gehe davon aus, dass du den Graph (bzw. die Daten für den Graph) in Abhängigkeit dieser 6 Parameter berechnen kannst?
Die Optimization Toolbox bietet hier gute Möglichkeiten, z.B. lsqcurvefit .

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Blablacar
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2020, 12:43     Titel:
  Antworten mit Zitat      
Hallo Harald,

ganz genau, die Daten für den Graphen werden in Abhängigkeit von den 6 Parametern berechnet. Die Variablen haben Teilweise unterschiedlichen Bereiche, in denen sich deren Wert bewegen darf.

Legt lsqcurvefit nicht eine Kurve an Punkte an? Das bräuchte ich ja nicht. Meine Punkte kommen ja aus der Berechnung und Bilden einen Graphen ab. Dieser berechnete Graph soll nur so lange verändert werden, bis er mit dem gemessenen übereinstimmt.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2020, 21:52     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Meine Punkte kommen ja aus der Berechnung und Bilden einen Graphen ab.

Das ist sehr vage.

Falls ich das Problem richtig verstehe, ist lsqcurvefit die Lösung. Die gemessenen Punkte sind das xdata und das ydata. Das Function Handle muss aus dem Vektor von 6 Parametern mit xdata entsprechende y-Werte berechnen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Blablacar
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2020, 12:28     Titel:
  Antworten mit Zitat      
Ich denke du hast mich noch nicht richtig verstanden. Ich versuche es nochmal zu erklären.
Ich habe meine Messreihe mit x und y Werten, aus denen ein Plot1 gemacht wird.
Zusätzlich habe ich 6 Parameter, welche alle in gewissen Bereichen geändert werden können. Diese 6 Parameter werden in ein Programm zur Berechnung von beispielsweise einer Kraft eingegeben. Aus dem Berechnungsprogramm bekomme ich dann wieder x und y Daten, welche ebenfalls einen Plot2 ergeben.
Matlab soll nun die 6 Parameter so bestimmen, dass die beiden Plot's (Plot1 und Plot2) übereinander liegen (also die Differenz zwischen einzelnen Punkte 0 ist).

Das bedeutet: Matlab nimmt die Differenz zwischen Plot1 und Plot2 und versucht diese mit Veränderung der 6 Parameter solange zu verändern, bis die Differenz gegen 0 geht.

War das das was du meintest?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.10.2020, 16:07     Titel:
  Antworten mit Zitat      
Hallo,

sorry für die verspätete Antwort, aber: ja. Das ist genau der Anwendungsfall von lsqcurvefit, nur dass man nicht die Plots betrachtet, sondern die Daten. Da die Plots ja aber aus den Daten generiert werden, kommt das aufs selbe raus.
Solltest du es noch nicht damit versucht haben, kann ich nur dazu raten, das zu tun.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 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.