dann wird die Situation in irgendeiner Form anders sein als ich gedacht habe.
Die Meldung ist ja recht klar. Es empfiehlt sich also ein Blick in den Workspace um zu sehen, was die Dimensionen der Variablen sind. Wenn das nicht weiterhilft, dann bitte den momentanen Code hier posten - am besten so, dass man das Problem reproduzieren kann.
Zitat:
Also ich habe die Preisliste (A) in eine 2. Spalte kopiert > A2
Was du damit bezweckst ist mir nicht klar. A steht bei Optimierungsproblemen allgemein für die Matrix in den linearen Ungleichungsnebenbedingungen A*x <= b.
So klappt es, dass die Nebenbedingung M immer größer 0 bleibt. Jedoch übersteigt M den Wert 4. Und wenn ich für b ein vektor mit 100 4en aufstelle, dann bleibt die Nebenbedingung immer unter 4, geht aber in den Minusbereich rein.
Du musst nach deiner Variablenbenennung zwei Matrizen M1 und M2 erzeugen, eine für die >=0 - Ungleichungen und eine für die <=4 - Ungleichungen, und diese untereinanderhängen und so ein größeres M erzeugen. Dann dazu passend ein größeres b erzeugen.
ich hatte dir ja meinen Vorschlag geschrieben. Die Rückfrage verstehe ich nicht.
Wenn du Wochen später nachfragst, entsteht zudem das Problem, dass man sich von neuem in deine Fragestellung hineindenken muss.
Du musst nach deiner Variablenbenennung zwei Matrizen M1 und M2 erzeugen, eine für die >=0 - Ungleichungen und eine für die <=4 - Ungleichungen, und diese untereinanderhängen und so ein größeres M erzeugen. Dann dazu passend ein größeres b erzeugen.
Grüße,
Harald
Stimmt, ist etwas länger her. Sorry. Das mit dem untereinanderhängen habe ich leider nicht verstanden.
Code:
M1 = zeros(100, 200);
M1(1, 1:2) = [0.5, -1];
for k = 2:100
M1(k, :) = M1(k-1, :);
M1(k, 2*k-1:2*k) = [0.5, -1];
end
M2 = zeros(100, 200);
M2(1, 1:2) = [0.5, -1];
for k = 2:100
M2(k, :) = M2(k-1, :);
M2(k, 2*k-1:2*k) = [0.5, -1];
end
du kannst auch beide Matrizen in einer Schleife anlegen, was ich aber aus Gründen der Übersichtlichkeit lassen würde.
Viel wichtiger: eine der Matrizen muss die <= Ungleichungen enthalten, die andere die >= Ungleichungen. Bei einer der Matrizen musst du also die Vorzeichen tauschen.
Ich habe nun 2 Matrizen M1 und M2 aufgestellt und dementsprechend auch 2 b-Vektoren. Aber leider klappt es so nicht. Muss ich für intlinprog die M´s und b´s irgendwie zusammenfassen?
Gibt es eine Fehlermeldung? Unerwartete Ergebnisse? Fängt dein Computer an zu klappern oder sendet er Rauchzeichen?
Zitat:
Muss ich für intlinprog die M´s und b´s irgendwie zusammenfassen?
Ja, denn momentan wird das erste Paar als Gleichungsnebenbedingungen aufgefasst. Das kannst du auch aus der Dokumentation herausfinden.
Ich hatte dir auch schon geschrieben wie du das zusammenfassen musst, siehe 04.07.2017, 11:32. Nur eben mit Buchstaben M statt A, weil du dich für diese unübliche Benennung entschieden hast.
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.