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

Optimierung zielfunktion von parameter trennen

 

mike793
Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2009, 14:06     Titel: Optimierung zielfunktion von parameter trennen
  Antworten mit Zitat      
Hallo zusammen

mich würde bei den gesamten Optimierungsbefehlen noch interessieren, ob es möglich ist, die eingabe parameter von der Zielfunktion zu trennen! Ich verstehe darunter jenes.... Matlab verwednet zum optimieren keine Zielfunktion im speziellen Sinne sondern nur das Ergebniss der Zielfunktion (die Zielfunktion soll ein anderes Programm bestimmen) --> nur zahlenwerte darf zur Optimeirung vervwendet werden und keine Funktion!!!!!!

DANKE
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Harald
Forum-Meister

Forum-Meister


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

wenn ich das richtig verstehe, bedeutet das nur, dass du in die Zielfunktion einen Aufruf des "anderen Programms" (könnte z.B. die Simulation eines Simulink-Modells sein oder aber auch ein C-Programm, eine Ansteuerung eines Roboters oder sonstwas sein) einbaust.

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

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2009, 17:19     Titel:
  Antworten mit Zitat      
genau ich will das Matlab die Parameter verändert und die Lösung einließt und mit diesem dann eine neue Berechnung starten!

Daher ist es wichtig das die Zielfuntion nicht " Verwendet wird von Matlab wie üblich"!!!! Danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2009, 23:08     Titel:
  Antworten mit Zitat      
... meine Frage noch .... ist das möglich??????????
und gibt es da ein Beispiel dazu?


DANKE
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2009, 23:42     Titel:
  Antworten mit Zitat      
Natürlich ist es möglich. Was willst du denn konkret machen?

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

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2009, 00:26     Titel:
  Antworten mit Zitat      
also ich will ein bat- File starten mit diesem kann man dann ja fast alles starten! der generlle Ablauf soll so aussehen:

Matlab schreib ein File aus mit den Parameter die das fminsearch zum variieren hat nachdem wird ein bat- File gestartet, Matlab wartet mit Hilfe einer Schleife so lange bis ein Ergebnisfile vorhanden ist! dieses liest Matlab ein und benutzt dieses zum optimieren (es stehen dort die einzelnen werte drin) ! Das wäre mein Ablauf den ich gern möchte eigentlich ist nur das starten des batfiles mit der Zielfunktion noch ein Problem! alles andere hätte ich ja fast schon!!!


Danke Harald! vielen Dank!!!!!!!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


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

Ausführen eines Systembefehls aus MATLAB heraus:
!datei.bat
oder
system('datei.bat')

Der Schnelligkeit Willen würde ich die Parameter nach Möglichkeit in den Aufruf der BAT-Datei einbauen.

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

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2009, 13:36     Titel:
  Antworten mit Zitat      
Hallo

ich habe nun deinen Vorschlag umgesetzt nur bekomme ich jetzt noch einen Warnung bzw eine Fehlermeldung!

Der Code schaut so aus:

Code:

function fminsearch23
 anzahl_erg=4;
 Start_werte= [1 1 5 6];
 max_iter= 5;

%%% Optizionen
 options = optimset('Display','iter','TolX',1e-4,...
                   'Maxfunevals',500,'MaxIter',max_iter);
               
%%% Startpunkt
 x0 = Start_werte;

String ='2*x(1)^2+x(2)^2-4*x(1)-2*x(2)+3';


[x,fval,existflag,output] = fminsearch(@fun, x0, options);
        function f = fun (x)
        save -ascii xxx.ASCII x
        system('datei.bat') % so lautet das start file für Matlab
        pause (10)
        fid=fopen('erb.ASCII','r');
        Ergeb= dlmread('erb.ASCII');
        fclose(fid);
        f=Ergeb(1)*.4+Ergeb(2);
       
       
       end


end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fid=fopen('xxx.ASCII','r');
x = dlmread('xxx.ASCII');
fclose(fid);



f1= x(1)^2+x(3)-11^2+(x(2)+x(4)^2-7)^2;
f2= x(4)^2+x(2)-11^2+(x(1)+x(2)^2-7)^2;

Ergeb=[f1 f2];
save -ascii erb.ASCII Ergeb



 


die Warnung sieht so aus!

ans =

0

Warning: Attempt to write an unsupported data
type to an ASCII file.
Variable 'x' not written to file.
> In fminsearch23>fun at 40
In fminsearch at 326
In fminsearch23 at 33


wo steckt da das Prblem noch! in den Files?

Danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.11.2009, 13:56     Titel:
  Antworten mit Zitat      
Wenn die Fehlermeldung in der Zeile mit dem save- Befehl auftaucht, versuch doch mal den Fehler so zu isolieren. Mir scheint, dass da vielleicht die Syntax / die Reihenfolge nicht passt. Das sollte aber auch unabhängig von dem Minimierungsproblem klärbar sein.

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



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.