|
humpel |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 06.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2018, 10:45
Titel: fminsearch Randbedingung
|
|
|
|
|
Hallo,
ich schlage mich zZ mit fminsearch rum...
Ich nutze die Funktion um ein Minimum innerhalb bestimmter Randbedinungen zu finden. Das Problem ist, dass die Berechnung eines einzelnen Schrittes ca. 30 min dauert. Ich bin somit auf die Effiziens meines Matlab Codes angewiesen.
Mein erster Versuch war es, das Ergebnis mit einem Multiplikator (Straffunktion) zu versehen, wenn fminsearch sich außerhalb des erlaubten Bereiches befindet. Das hat dazu geführt, dass sich die Funktion anschließend weit von der Randbedingung entfernt gehalten hat bzw. sich nur sehr langsam näherte.
Um das ganze zu Entschärfen ist der Multiplikater nun im zweiten Versuch linear abhängig von der Distanz zur Randbedingung. Leider rechnet mein Tool weiterhin viel zu lange ...
Den Multiplikator habe ich entsprend des maximalen Ergebnisbereiches gewählt .. nicht zu klein, nicht zu groß.
Habt ihr eine Idee wie man die Straffunktion idealerweise gestaltet um eine schnelle Rechnung zu ermöglichen?
Bin dankbar für alle Tipps.
Klaus
|
|
|
|
|
Erano1 |
Forum-Fortgeschrittener
|
|
Beiträge: 59
|
|
|
|
Anmeldedatum: 26.04.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2018, 13:57
Titel:
|
|
Hallo Klaus,
Zitat: |
Ich nutze die Funktion um ein Minimum innerhalb bestimmter Randbedinungen zu finden. |
Gibt es einen bestimmten Grund dafür, dass du das Problem mit fiminsearch lösen möchtest? Wenn du Strafterme dazu nimmst kannst du ja trotzdem nie sicher sein, dass deine Lösung im zulässigen Bereich liegt. Ansonsten macht es Sinn "fimincon" zu verwenden, da du mit dem Solver auch ein beschränktes Problem lösen kannst.
Viele Grüße,
Erano1
|
|
|
humpel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 06.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2018, 14:17
Titel:
|
|
Hallo Erano1,
vielen Dank für deine schnelle Antwort.
Natürlich hast du recht damit, dass die gefundene Lösung nicht im erlaubten Bereich liegt. Das muss ich nach der Rechnung im Einzelfall prüfen und ggf. die Straffunktion anpassen. Außerdem sind meine Randbedingungen nicht auf die letzte Nachkommastelle fixiert, sie sind eher ein schwammiger Übergangsbereich....
fminsearch nutze ich, weil ich keine fmincon Toolbox besitze und keine andere Alternative kenne.
Gruß,
Klaus
|
|
|
Erano1 |
Forum-Fortgeschrittener
|
|
Beiträge: 59
|
|
|
|
Anmeldedatum: 26.04.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2018, 14:28
Titel:
|
|
Hallo Klaus,
hast du es schon mal getestet? Ich muss sagen, dass ich was Toolboxen erwerben und Lizenzen wenig bis keine Ahnung habe, da mir bislang alles nötige meistens gestellt wurde, aber es würde mich wundern, wenn du "fminsearch" nutzen kannst und "fmincon" nicht. Beide sind doch in der Optimization Toolbox enthalten. Wie alt ist deine Version? War "fmincon" bei älteren Versionen vielleicht noch nicht dabei? Ansonsten würde ich dir empfehlen externe Solver zu finden. Hier kann man sich eigentlich einen guten Überblick über das Thema schaffen: https://yalmip.github.io/allsolvers/.
Viele Grüße,
Erano1
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.02.2018, 16:50
Titel:
|
|
Hallo,
fmincon ist in der Optimization Toolbox, fminsearch ist direkt in MATLAB enthalten.
Falls die Optimization Toolbox derzeit nicht verfügbar ist, würde ich bei MathWorks eine Trial-Lizenz der Toolbox herunterladen und es damit versuchen.
Generell wäre es hilfreich, möglichst viel über Zielfunktion und Nebenbedingungen zu erfahren. Sind beide (einigermaßen) glatt? Handelt es sich evtl. um irgendeine Art von Simulation?
Grüße,
Harald
|
|
|
humpel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 06.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2018, 15:53
Titel:
|
|
Hallo,
die fmincon Funktion ist leider nicht vorhanden, nur die fminsearch.
Das zu optimierende Problem ist eine Funktion, welche von vier Parametern abhängig ist. Welchen Einfluss die Parameter auf das Ergebnis haben ist nur schwer abzuschätzen...
Edit: Eigentlich ist es keine Funktion, sondern ein numerisches modell eines technischen Gerätes. Hier ändere ich vier Maße und bewerte das Ergebnis. Eine dieser numerischen Rechnungen ist recht zeitintensiv.
In Sachen externe Solver bin ich ein blutiger Anfänger, ... werde mich aber direkt auf die Suche machen.
Irgendwelche Tipps? Gibts zufällig einen externen Sovler namens fmincon_free?
Vielen Dank soweit!
Klaus
|
|
|
|
|
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.
|
|