Я пытаюсь решить проблему линейного программирования в Matlab, ввод
[weights,~,flag]=linprog(f,[],[],C,b,0,10);
так, согласно инструкции это должно решить проблему min f*x with the constraints C*x=b and 0<=x<=10
. Таким образом, все записи x
должны быть положительными. Однако решение, которое я получаю, содержит отрицательные записи (см. Пример, чтобы воспроизвести проблему ниже). Флаг, который я получаю, равен 1, что в соответствии с документами означает, что метод сходится.
Что я делаю не так?
здесь ввод
C =
19 20 18 20 18
3 3 4 5 3
1 1 1 1 2
1 1 1 1 1
и
b =
19
4
1
1
и
f =
1
1
1
1
результат
weights =
84.1104
-62.8328
-41.5552
21.2776
-0.0000