Код максимизации линейного программирования в MATLAB

Как решить задачу максимизации линейного программирования, которая содержит оба <= а также >= уравнения?

Например вот случай:

Максимизация:

z = c1x1 + c2x2 + c3x3

При условии:

a1x1 + a2x2 + a3x3 <= b1
a4x1 + a5x2 + a6x3 <= b2
x1 >= d1
x2 >= d2
x3 >= d3

куда a1, a2, a3, a4, a5, a6, b1, b2, b3, c1, c2, c3 являются константами в данных уравнениях.

Каким будет правильный код Matlab для решения этой проблемы?

1 ответ

Решение

Вот как:

    z = -[c1 ; c2 ; c3];

    A = [ a1 a2 a3 ; 
          a4 a5 a6]; 

    b=[b1;
       b2];

    Aeq= [ ]; beq= [ ];

    LB = [d1 ; d2 ; d3]; 

    UB = [1 ; 1 ; 1]* inf; % Any relax number

    x = linprog(z, A, b, Aeq, beq, LB, UB)
Другие вопросы по тегам