使用matlab解决双lp问题

时间:2014-02-25 04:22:31

标签: matlab linear-programming simplex

您好我想知道是否有人知道如何使用MATLAB命令linprog来解决双重问题。它的记录方式似乎非常有助于解决原始问题,但我不确定如何使它解决双重问题。

例如,MATLAB可以使用linprog命令解决,因为它已记录在案

max f(x) = 5x1 + 4x2 + 6x3
subject to
x1 – x2 + x3 ≤ 20
3x1 + 2x2 + 4x3 ≤ 42
3x1 + 2x2 ≤ 30
0 ≤ x1, 0 ≤ x2, 0 ≤ x3

但我不知道如何使用命令解决双重问题:

min f(y) = 20y1 + 42y2+ 30y3
subject to
y1 + 3y2 + 3y3 >= 5
-y1 + 2y2 +2y3 >= 4
y1 + 4y2 >= 6
 0 ≤ y1, 0 ≤ y2, 0 ≤ y3

我尝试以相同的方式输入它并否定矩阵A和b向量来翻转不等式,但结果不是我所期望的:

f = [ 20; 42; 30];

A = -[1 3 3  
    -1 2 2 
     1 4 0];

b = -[5; 4; 6];

lb = zeros(3,1);

[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);

我是线性编程的新手,想要检查我使用单纯形做的问题,但要快速检查。提前致谢。我希望我的问题很明确。

0 个答案:

没有答案