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

Optimierungsproblem mit Summenzeichen formulieren

 

hydroxid
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 15:17     Titel: Optimierungsproblem mit Summenzeichen formulieren
  Antworten mit Zitat      
Hallo zusammen,

ich muss gleich als aller erstes sagen, dass ich totaler Matlab-Anfänger bin, von dem her nicht wundern, wenn euch meine Frage abwegig vorkommt.

Ich muss im Rahmen meiner Abschlussarbeit u.a. folgende Funktion minimieren

min [summe(i bis n) summe (j bis m) x(i,j) * (a*l(i,j)+c(i,j)] + [a * summe(j bis m) f * y(j)]

Nebenbedingungen sind:
summe(j bis m) y(i) <= p
summe(j bis m) x(i,j) = 1
x(i,j), y(j) e {0,1}
x(i,j) <= y(j)

Die Variablen sind die x(i,j) und y(j)'s, c(i,j) und l(i,j) liegen als Matrix vor und a ist ein konstanter Wert.

Nun zu meiner eigentlichen Frage, wie formuliere ich so eine Funktion in Matlab aus? Vorallem bei dem doppelten Summenzeichen und den Matrixwerten weiß ich nicht, wie das gehen soll. Oder gibt es eine Möglichkeit, mir die Funktion über eine Schleife "zusammensetzen zu lassen"? Alternativ freue ich mich natürlich auch über gute Links, die mir weiterhelfen könnten.

MfG, hydroxid
Private Nachricht senden Benutzer-Profile anzeigen


mmz
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 16:10     Titel:
  Antworten mit Zitat      
Hi, grundsätzlich lassen sich summen durch eine for-Schleife realisieren. Woraus folgt das man eine Doppelsumme mit 2 for-schleifen löst.

Code:

for i = 1:n
   for j = 1:m
      sum = sum + T % T ist der Term der hinter deinem Summenzeichen steht
   end
end
 


Grüße

Michael

P.s: an und für sich i und j nicht verwenden da sie für die imaginäre einheit stehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
hydroxid
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 16:42     Titel:
  Antworten mit Zitat      
Hallo mmz,

erstmal vielen Dank für deine schnelle Anwort. Dass man die doppelte Summe irgendwie über zwei Schleifen realisieren kann, habe ich schon vermutet. Wie ergibt sich daraus dann aber eine Funktion, die ich mit Hilfe der Optimization Toolbox minimieren kann?

P.S. Danke für den Tipp mit i und j, ich habe die Buchstaben nur verwendet, weil sie so in einem von mir verwendeten OR-Skript benutzt werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
mmz
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2010, 08:47     Titel:
  Antworten mit Zitat      
Leider hab ich noch nie mit der Optimization Toolbox gearbeitet und auch keine Ahnung davon.

Meinst du eine funktion im Sinne von:

Code:

function sum = MyFunction(n,m)

for i = 1:n
   for j = 1:m
      sum = sum + T % T ist der Term der hinter deinem Summenzeichen steht
   end
end
end
 



oder was ich noch kenn ist eben im Mathematischen Sinne. (oder wie auch immer)

Code:

y = @(x) 3*x^2+2*x+1;
y(2)
ans =

    18
 


Leider weiß ich nicht was die Toolbox für ne function braucht, und kann dir desewegen nicht wirklich weiter helfen.

Die Sache mit dem i und j hab ich mir schon fast gedacht..bei unseren skripts war der Summen index auch meistens ein i oder j^^

grüße

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