|
senmeis |

Forum-Guru
|
 |
Beiträge: 301
|
 |
|
 |
Anmeldedatum: 09.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.05.2015, 16:03
Titel: Probleme mit fmincon()
|
 |
Hi,
ich möchte das Minimum einer Funktion mit zwei unabhängigen Variablen mit fmincon() bestimmen, mit den Bedingungen 0 <= x <= 10 und 0 <=y <= 20.
Problem 1: Eine Warnung meldet sich: ... FMIMCON will use the active_set algorithm instead. ...
Problem 2: Nach dem Ausführen bleibt x immer ub.
Woran liegen die?
Owen
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.05.2015, 16:09
Titel:
|
 |
Zitat: |
... FMIMCON will use the active_set algorithm instead. ... |
kann mir nicht vorstellen das das die vollständige fehlermeldung ist.
Zitat: |
Problem 2: Nach dem Ausführen bleibt x immer ub.
|
liegt denn das minimum bei ub? hast du mal einen anderen start punkt versucht?
_________________
richtig Fragen
|
|
|
senmeis |
Themenstarter

Forum-Guru
|
 |
Beiträge: 301
|
 |
|
 |
Anmeldedatum: 09.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.05.2015, 17:12
Titel:
|
 |
Mit fmincon() möchte ich folgende Aufgabe lösen.
Ein Vektor im 3D Raum, der durch seine Richungskosinus eindeutig beschrieben werden kann, hat Abweichungen zu der X Achse und der Y Achse. Die Abweichung zu der Z Achse kann damit ausgerechnet werden.
Gegeben seien die Abweichungsbereich:
0 <= x1 <= 10 Grad
0 <= x2 <= 20 Grad
Gesucht ist die Abweichung zwischen diesen zwei Vektoren.
Code hier:
Owen
|
|
|
senmeis |
Themenstarter

Forum-Guru
|
 |
Beiträge: 301
|
 |
|
 |
Anmeldedatum: 09.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2015, 16:57
Titel:
|
 |
Die Grundidee ist folgendes:
Die Abweichung (im Grad) zu der X Achse vergrössert sich von 0 kontinuierlich bis 10, gleichzeitig variert auch die Abweichung zu der Y Achse von 0 bis 20. Irgendwann erreicht die Abweichung zwischen diesen beiden Vektoren das Maximum, also entsprechend das Minimum der Multiplikationen von den beiden Richtungskosinusfunktionen.
Ich weiss nicht ob dieser Gedanke fehlerhaft ist. Kann mir jemand helfen?
Owen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.08.2015, 17:58
Titel:
|
 |
Hallo,
die Warnung ist erst mal kein Problem. Sie besagt nur genau das, was sie sagt, nämlich dass intern ein anderer Algorithmus verwendet wird.
Zum anderen Problem: wie von Winkow vorgeschlagen mal andere Startwerte versuchen. Vor allem aber auch die Statusmeldung von fmincon lesen und beachten - diese besagt ja, wie das Ergebnis zu interpretieren ist.
Grüße,
Harald
|
|
|
senmeis |
Themenstarter

Forum-Guru
|
 |
Beiträge: 301
|
 |
|
 |
Anmeldedatum: 09.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.08.2015, 15:57
Titel:
|
 |
Mit dem Startwert x0 = ub = ub = [10;20] bekomme ich x = [10;20] und fval = 0.9225, mit folgenden Info:
Zitat: |
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the default value of the function tolerance,
and constraints are satisfied to within the default value of the constraint tolerance.
<stopping criteria details>
Active inequalities (to within options.TolCon = 1e-06):
lower upper ineqlin ineqnonlin
1
2
|
Kann man sicherstellen, das Minimum ist tatsächlich 0.9225, oder der Vorgang hört auf beim Startwert?
Owen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.08.2015, 18:11
Titel:
|
 |
Hallo,
grundsätzlich sind die Löser aus der Optimization Toolbox gradientenbasiert, d.h. sie konvergieren generell zu einem lokalen Minimum. Das globale Minimum wird nur bei ausreichend guten Startwerten gefunden. Was "ausreichend gut" heißt, kann von Problem zu Problem sehr stark variieren.
Wenn das globale Minimum gefunden werden soll, bietet sich die Iteration über verschiedene Startwerte oder die Nutzung von Lösern aus der Global Optimization Toolbox an.
Grüße,
Harald
|
|
|
|
|
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 - 2025
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.
|
|