ich habe eine Aufgabe vorliegen, bei der ich überhaupt nicht weiterkomme. Es soll ein Quellcode zur Optimierung geschrieben werden (Bild hinzugefügt). Mein Ansatz ist, die einzelnen Betriebe durch Gleichungen für das Grundfutter zu definieren.
Dabei ist:
Betrieb A - x
Bertieb B - y
Betrieb C - z
Die Gleichungen, die definiert werden, wären folgende:
min
1200x+500y+600z
u.d.N.
8x+4y+2z=40
x+2z=20
3x+z=10
3x+y=5
Es gibt auch keine Art von Beschränkungen, d.h. ich müsste wirklich nur mit diesen 5 Gleichungen arbeiten. Wie ich aber hieraus ein Matlab Programm schreiben soll... ich weiß es nicht.
in MATLAB gibt es hierfür linprog.
Mach aus x, y, z einen Vektor u = [x,y,z] und formuliere Zielfunktion und die linearen Gleichungsnebenbedingungen in Matrix-Vektor - Form
Mir erscheinen die Gleichungsnebenbedingungen recht viele für nur 3 Variablen. Sollen das wirklich alles *Gleichungs*nebenbedingungen sein und nicht etwa Ungleichungen? Es macht doch schließlich nichts aus, wenn man etwas mehr geliefert bekommt als nötig, solange man nicht mehr bezahlt?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
vielen Dank für deine schnelle Antwort.
Ich habe das so umgesetzt, wie du gesagt hast. Den Artikel zu linprog habe ich mir im Help Center von Matlab soeben durchgelesen. Das wäre mein Resultat:
Nun kommt da allerdings überall 0 raus. Heißt, der Landwirt soll gar nichts kaufen.
Und zu deiner Frage, nun das dachte ich mir auch, aber in der Aufgabe ist nirgends die Rede von Aussagen wie "höchstens..." oder Ähnlichem.
ein kleiner, aber feiner Fehler: die Ungleichungen sind in der Form A*x <= b. Wenn der Landwirt aber bestimmte Futtermittel benötigt, dann würde ich sagen, dass er die mindestens benötigt, d.h. du willst A*x >= b oder äquivalent -A*x <= -b. Anders gesagt: du musst bei A und b ein Minus davor setzen.
Ich bekomme dann als Lösung [5 0 0], und das ist sinnvoll: A verlangt das doppelte wie C, bietet aber von allem mindestens doppelt so viel und ist somit besser als C. B bietet keine Maissilage, d.h. ich muss den Bedarf daran durch Kauf von 5 Einheiten bei A decken. Dann ist der Bedarf an allem anderen aber auch schon gedeckt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Das ergibt natürlich Sinn. Jetzt bekomme ich ebenfalls [5 0 0] raus. Ich danke dir vielmals! An den nächsten Aufgabenteil versuche ich mich erstmal selbst dran. Falls ich nicht weiterkommen sollte, hoffe ich, dass ich hier wieder Hilfe finden kann. (:
Einstellungen und Berechtigungen
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
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.