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

Optimization Toolbox mit Ansys

 

Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.10.2013, 11:42     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
wie würde denn der Befehl aussehen?

Parameter-Wert - Paare, also z.B.
Code:
opts = optimset('TolX', 1e-12, 'TolFun', 1e-12, 'DiffMinChange', 1e-3);

[Die angegebenen Werte sind Beispiele, die nicht sinnvoll sein müssen]

Zitat:
Muss ich nur die Einstellungen angeben, die ich ändern will und der Rest bleibt auf standard?

Genau. Das sollte aber auch aus der Doku hervorgehen.

Welchen Zielfunktionswert erreichst du denn mit fminsearch?

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


Guardian
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 08.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2013, 12:17     Titel:
  Antworten mit Zitat      
hallo harald,
wird die änderung über optimset gespeichert? gilt sie dann für immer oder nur für die aktuelle session?
der aufruf der optimierung sieht dann so aus oder?

Code:
x = patternsearch(zielfunktion,[Startwerte],[constraints],[bounds])


in der hilfe steht auch, dass man die optionen in den aufruf einbinden kann:

also
Code:
x = patternsearch(zielfunktion,[Startwerte],[constraints],[bounds], options)


macht das einen unterschied? es würde nahe liegen, dass die änderungen der optionen dann nur für den einen optimierungsvorgang gültig sind.

mit fminsearch kann ich leider nicht arbeiten, da dort keine constraints angegeben werden können, die ich aber brauche.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.10.2013, 15:44     Titel:
  Antworten mit Zitat      
Hallo,

man muss die options beim Aufruf zwingend abgeben, damit sie berücksichtigt werden! Ansonsten ist das ja nur eine Variable, die irgendwo herumliegt. Das ist bei jedem Solver so!

Die Idee wäre, dass du beispielsweise patternsearch und fminsearch jeweils ohne Nebenbedingungen vergleichst. Es ist ja durchaus möglich, dass fminsearch nur deswegen weit weg vom Startwert gekommen ist, weil eben keine Nebenbedingungen dabei waren.

Bei patternsearch ist das von dir bemerkte Verhalten an sich das typische, lies dir doch mal die Beschreibung des Algorithmus in der Hilfe durch.

Man kann übrigens auch in fminsearch Nebenbedingungen unterbringen, indem man Strafterme auf die Zielfunktion aufschlägt, d.h.
f = ziel + c * (Verletzung der Nebenbedingungen) mit großem c.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 08.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 12:43     Titel:
  Antworten mit Zitat      
hallo mal wieder Smile

mittlerweile bin ich ganz zufrieden mit patternsearch, da ich damit auch noch andere algorithmen benutzen und vergleichen kann.
allerdings ist das vergleichen nicht so einfach. ich hab mir zwar alle möglichen plots anzeigen lassen, aber die sind leider nur als bild da und auch nicht wirklich brauchbar. Ich hätte gerne eine tabelle aus zahlen, damit ich die zur ergebnisdarstellung z.b. in excel benutzen kann. kann man die mit patternsearch usw. errechneten werte in matlab speichern? der workspace bleibt leider immer leer.

danke und grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.11.2013, 13:02     Titel:
  Antworten mit Zitat      
Hallo,

um was genau geht es?
Die Endergebnisse stehen ja in den Rückgabeargumenten zur Verfügung.

Falls du den iterativen Output in eine Textdatei bringen möchtest, würde ich
Code:

dafür verwenden. Damit kannst du im Nachhinein die einzelnen Schritte analysieren.

Was die Plots angeht: was heißt "nicht wirklich brauchbar"? Du kannst übrigens auch eigene PlotFunctions erstellen.

Ansonsten bitte genauer spezifizieren, welche Informationen du benötigst.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 08.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 14:08     Titel:
  Antworten mit Zitat      
Das Endergebnis reicht nicht, ich hätte gerne alle Werte des iterativen Verlaufs, die errechnet wurden. leider wird eben nur das endergebnis gespeichert. Sad
Was die Plots angeht würde ich z.b. gerne verschiedene auswertungen übereinander legen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

man muss das wie gesagt selbst implementieren, über Plot Functions oder vielleicht noch besser über Output Functions
http://www.mathworks.com/help/optim/ug/output-functions.html

Das Beispiel auf der Seite erstellt z.B. eine History.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 08.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2013, 12:05     Titel:
  Antworten mit Zitat      
Hallo Harald, ich glaube Outputfunctions werden erstmal zu kompliziert. Mir reicht es ja die einzelnen Funktionswerte aus jeder Iteration zu speichern, deswegen schau ich mir erstmal diary an.

Wie würde denn eine Implementierung aussehen?
Muss ich den Befehl irgendwo in der objective function reinschreiben?

Code:


werden dann aber nicht bei jedem update die alten werte überschrieben?

oder läuft das ganze unabhängig davon. also schreibe ich das einfach vorher in matlab in die command line und er speichert dann alles was kommt ab?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.11.2013, 13:37     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die x-Werte brauchst, kommst du meines Wissens mit diary nicht weiter, da die x-Werte ja im Command Window nicht angezeigt werden.

Der Weg mit Output Functions ist meines Erachtens letztlich einfacher. Du musst an sich nur das übernehmen, was in dem Beispiel gemacht wird.

Wenn du mit diary arbeiten willst:
diary-Befehl am Anfang setzen. Wenn du verschiedene Codes vergleichen willst, würde ich auch mit verschiedenen log-Dateien arbeiten. Die musst du allerdings wieder importieren, d.h. Output Functions sind wirklich einfacher.

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