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 - Energieminimum finden

 

Joker87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2013, 20:52     Titel: Optimization Toolbox - Energieminimum finden
  Antworten mit Zitat      
Hallo Forengemeinde,

ich habe noch nicht viel mit Matlab gearbeitet und suche deshalb Rat in diesem Forum.

Ich habe eine Funktion p_{gesamt} = \sum\limits_{i=1}^n f_i(x_i \cdot o) die es zu minimieren gilt. Diese Funktion ist die Summe von n Polynomen 3. Grades. Aktuell habe ich die Funktion so implementiert:
Code:

function y = pgesamt(FL, x )

p = 0;
for i = 1:23
    p_i = polyval(FL(i,:),x(i));
    p = p + p_i;
end

y = p;
end
 

FL ist eine n x 4 Matrix mit den Koeffizienten des i-ten Polynoms, x ein n-langer Vektor. Diese Funktion macht prinzipiell das, was sie soll. Ich habe nun aber Probleme mit fmincon das Energieminimum zu finden. o ist ein skalarer Wert, der auf die einzelnen Funktionen mittels x_i aufgeteilt werden soll.
Es gibt folgende Randbedingungen:
x_i \cdot o \leq x_i^{max}
x_i > 0
\sum\limits_{i=1}^n x_i = 1

Ich habe nun versucht, die fmincon wie folgt aufzurufen:
Code:
fmincon(@(x)pgesamt(FL,x),[1,1],A,b,Aeq,beq)

A ist eine Matrix mit zwei Spalten (was ich noch nicht ganz verstanden habe). b ist ein n-langer Vektor mit den x_i^{max}

Könnte mir bitte jemand beim Aufruf der Funktion helfen?

Vielen Dank Smile


marc-205
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 12.12.12
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 29.07.2013, 12:07     Titel:
  Antworten mit Zitat      
Am einfachsten ist es die Restriktionen auch als Funktion zu übergeben (glaub das heißt anonyme Funktion oder so). So mach ich es zumindest, weil ich es übersichtlicher finde.

Code:

[x_opt,fval,exitflag,output]=fmincon(@(x)pgesamt(FL,x),[1,1],[],[],[],[],@constraintFunction)
 


die constraint function baust du dann so auf:

Code:
function [unequal,equal]=constraintFunction(x)


unequal enthält dann die Werte die <0 sein müssen und equal die, die =0 sein müssen.
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 - 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.