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

fmincon für Anfänger

 

gnotari
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2013, 00:54     Titel:
  Antworten mit Zitat      
Ich wollte mir gerade beibringen wie ich globalsearch anwenden muss, und habe mir wieder mal ein einfaches Beispiel zusammen geschustert. Dann habe ich fmincon drüber laufen lassen, in der Erwartung, dass er mir das lokale und nicht das globale Maximum ausspuckt. Wieder erwarten hat er das globale Maximum gegeben (egal von wo ich starte), und nicht das lokale. Kann ich darauf schliessen, dass er das in meinem Hauptprogramm auch macht?
Im Anhang ist ein Bild, dass alles relevante drauf hat.

Danke, danke und nochmals Danke für die tolle Unterstützung!

Harald, dein:
fval = sum( (budget - mean(budget)).^2)
ist genau was ich brauche! Du bist einfach super!

GlobalMin.png
 Beschreibung:

Download
 Dateiname:  GlobalMin.png
 Dateigröße:  222.96 KB
 Heruntergeladen:  525 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

mich wundert ehrlich gesagt, dass ausgehend von -2 das globale Minimum gefunden wird. Auch ausgehend von -1.5 und -1?

Generell kann man leider nicht davon ausgehen, dass das klappt. Insbesondere dürften die Chancen dafür umso mehr sinken, je ausgeprägter lokale Minima sind.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gnotari
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2013, 14:10     Titel:
  Antworten mit Zitat      
Hallo,

Ja, auch von -1.5 und -1. Find ich auch verwunderlich. Gut, dann werde ich das mit globalsearch nochmals angehen.

Mercie,

Gianni
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2013, 17:01     Titel:
  Antworten mit Zitat      
Hallo,

wenn du magst, hänge den Beispielcode doch mal an (das, was du als Bild hast, aber als Text). Dann schaue ich mir das mal an, insbesondere ob man ein besseres Beispiel findet (im Sinne davon, dass die Wahl des Startwerts wichtig wird).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gnotari
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2013, 20:05     Titel:
  Antworten mit Zitat      
Hier ist der Beispiel Code.

PS: Hast eine Idee wie ich auf Mac then "Stop execute" also äquivalent z ctrl-c auführe? Habe praktisch jede Tastenkombination probiert, und das Internet durchforstet.

Global_Minimum.zip
 Beschreibung:

Download
 Dateiname:  Global_Minimum.zip
 Dateigröße:  1.57 KB
 Heruntergeladen:  344 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2013, 20:34     Titel:
  Antworten mit Zitat      
Hallo,

mit initial_x = -1 läuft dein Beispiel bei mir in das lokale Minimum.

Ich habe keinen Mac, keinen Zugang zu einem, und würde hier zu Google raten. Du bist sicher nicht der einzige mit dem Problem.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gnotari
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2013, 00:31     Titel:
  Antworten mit Zitat      
Komisch! Wenn ich jetzt -1 als init eingebe landet er auch beim lokalen minimum. Liegt vielleicht daran, dass ich noch was an der Funktion geändert habe. Ich finds trotzdem verwirrend dass er bei -1.5 als init das globale ausspuckt, und bei -1 das lokale.
Nun, das habe ich Dir auch so geglaubt, bist ja schliesslich der Profi hier. Würde es Dich viel Deiner kostbaren Zeit kosten, bei dem einfachen Beispiel "globalsearch" einzubauen? Vielleicht verstehe ich es dann. Halt wirklich nur, wenn dich nicht zu viel Zeit kostet. Würdest mir nen riesen Dienst tun. Smile

Das wäre auch gleich ein tolles Einsteiger Beispiel für alle die nicht so viel Erfahrung haben. Als Tutorial sozusagen.

Ich finda auf google viele Einträge, von Leuten die auf mac den Abbruchbefehl suchen. Leider keine Lösung. Macht nichts, ist auch nicht so wichtig.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.11.2013, 23:48     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich finds trotzdem verwirrend dass er bei -1.5 als init das globale ausspuckt, und bei -1 das lokale.

Ein möglicher Grund: bei -1.5 als Startwert ist der Abstieg nach rechts (also immerhin Richtung globales Minimum), während der Abstieg bei -1 als Startwert nach links ist.

Für Global Search musst du nur das Beispiel aus der Doku anpassen. Für dein Beispiel dann:
Code:
opts = optimoptions(@fmincon,'Algorithm','interior-point');
problem = createOptimProblem('fmincon','objective',...
 minimizingFunction,'x0',initial_x,'lb',lbnds,'ub',ubnds,'options',opts);
gs = GlobalSearch;
[x,f] = run(gs,problem)


Was die Abbruchmöglichkeit angeht: im Zweifel mal beim Technischen Support von MathWorks nachfragen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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 - 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.