|
danny_fox |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 31.08.11
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.08.2011, 20:13
Titel: fmincon - Problem
|
|
Hallo an alle,
habe ein kleines Problem mit fmincon. Uuuunnnddd zwar, ich versuche eine Funktion mit mehreren (genau 4) Variablen zu minimieren. Mein Problem ist dass die Zielfunktion die minimiert werden muss nicht mehr in der Form y = x(1)x(2)x(3).... ausschaut, sondern y = F(x) selber nur mehr eine Funktion von x ist. Die Funktion F(x) ist auch schön in ein m-file geschrieben und die minimierung funktioniert auch mittels fminsearch, würde allerdings gerne fmmincon und die verschiedenen Algorithemn (interior-point und sqp) vergleichen!! Das Problem bei fmincon ist, dass er die Startwerte als lokales Minimum ansieht und sich nicht von denen weg bewegt (obwohl sie dies nicht sind)!!!!!
Hat vll irgendwer eine Idee?? Wäre sehr dankbar!!!
Mfg
Max
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.08.2011, 20:55
Titel:
|
|
|
|
|
Hallo,
Zitat: |
Das Problem bei fmincon ist, dass er die Startwerte als lokales Minimum ansieht und sich nicht von denen weg bewegt (obwohl sie dies nicht sind)!!!!! |
Ohne genauere Informationen ist das Problem sehr schwer zu diagnostizieren.
Als erstes würde ich versuchen, TolX und TolFun über OPTIMSET herunterzusetzen, da es sonst sein kann, dass man entweder nur in einer Art Sattelpunkt ist und der Algorithmus meint, in einem lokalen Minimum gelandet zu sein, oder die Änderungen der Funktionswerte im Vergleich zu den Funktionswerten zu klein sind. Mich wundert allerdings, dass jegliche Startwerte gleich als vermeintliche lokale Minima erkannt werden.
Hast du mit FMINSEARCH vernünftige Ergebnisse erhalten?
Wenn ja und wenn FMINCON nichts brauchbares liefert, stellt sich mir die Frage: ist die Zielfunktion stetig und differenzierbar (nicht in dem Sinn, dass man die Ableitungen analytisch berechnen könnte, eher "glatt")? Wenn nicht, ist die Verwendung von ableitungsbasierten Algorithmen natürlich ein Lotteriespiel .
Grüße,
Harald
|
|
|
danny_fox |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 31.08.11
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.09.2011, 08:21
Titel:
|
|
Hallo,
mhmmmm gute Frage!!!
Also gut, dass genaue Minimierungsproblem ist folgendes. In einer Funktion werden chi2 Werte und daraus dann p- Werte berechnet. Diese p-Werte werden dann auf Gleichverteilung geprüft. Je besser sie gleichverteilt sind desto kleiner ist der Wert der dabei rauskommt.
So nun möchte ich diesen Wert minimieren, dazu werden Startwerte in die erste Funktion gesteckt um p-Werte zu errechnen und daraus dann die Gleichverteilung geprüft.
Ob nun die eigentliche Zielfunktion glatt ist, mhmmmmm gute Frage, eig müsste sie das schon sein!!!
Irgendwelche Vorschläge dazu, bzw verstanden was ich hier so aufgeschrieben habe .
Danke schonmal
Mfg
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.09.2011, 08:34
Titel:
|
|
Hallo,
und was willst du eigtl. optimieren? Sprich, was sind deine veränderlichen Parameter? Ich kann mir vorstellen, dass die Funktion recht stark oszilliert/variiert und dass das Probleme bereitet.
Als erstes würde ich wie gesagt eine Anpassung von TolFun und TolX versuchen.
Falls du die Global Optimization Toolbox hast, könntest du auch mal PATTERNSEARCH versuchen (versucht globale Optimierung und ist ableitungsfrei).
Grüße,
Harald
|
|
|
danny_fox |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 31.08.11
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.09.2011, 19:07
Titel:
|
|
Hey,
alsooo mit den veränderlichen Paramtern geh ich in eine Fkt die dort dann Spuren rekonstruieren usw., im Endeffekt produzieren diese Parameter die p Werte von chi2 Werten, die dann in der Zielfkt mit einer Gleichverteilung verglichen werden. Der Wert der bei diesem Vergleich heraus kommt soll also minimiert werden. Dieser Wert oszilliert also eig nicht wirklich stark und sollte glatt sein und nicht wirklich Nebenminima besitzen.
Werde mal schauen ob ich die Global Optimization Toolbox auftreiben kann, dnake für den Tipp
Mfg
|
|
|
danny_fox |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 31.08.11
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.10.2011, 20:09
Titel:
|
|
|
|
|
Hallo nochmal,
hab zwar das Programm jetzt mit fminsearch geschrieben und es funktioniert auch, möchte aber dennoch wissen warum es mit fmincon bzw fminunc nicht laufen will. Verstehen tu ich es nicht, das die Fkt glatt ist, keine Nebenminima besitzt und die "Fehlermeldung", also Warnung die ausgegeben wird versteh ich nicht. Wenn ich die Zielfkt minimieren will schreibt mir Matlab "Warning: Gradient must be provided" und nach 4 maligen ausführen der Fkt schreibt Matlab "Opimization completed because the size of the gradient at the initial point is less than ....". D.h. bei 3 veränderlichen Variablen hat er die Fkt ja 4 mal ausgeführt um nummerisch den Gradienten zu bilden, aber offensichtlich nicht geschafft. Seltsam nur dass wenn ich selbst den Gradienten bilde mir ganze positive Zahlen durchaus größer als Null herauskommen!!
Jemand eine Idee??? Oder weiß vll jemand wie man bei Matlab den debug mode startet damit man vll mal in die Fkt "hineinschauen" kann und weiß was da falsch läuft!?!?!?!
Lg
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.10.2011, 20:22
Titel:
|
|
Hallo,
Debug-Modus starten: Haltepunkt setzen, indem du vor der Zeile auf den Strich klickst, und das Programm dann laufen lässt. Ich fürchte allerdings, dass die Probleme tief im Algorithmus auftauchen und dass das nicht weiterhelfen wird.
Weitere Hilfe werde zumindest ich ohne den Code nicht bieten können. Insbesondere irritiert mich das "Gradient must be provided".
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 - 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.
|
|