The problem:
min x1+3*x2+0.5*x3
s.t. x1<=2;
x1+x2-x3=3;
x1,x2,x3>=0
Correct solution is x1=2; x2=1; x3=0; dual solution is y=(-2; 3)
I have made the following code, but the result of dual solution obtained from “lambda” is not correct.
clear
% Parameters
N=3;f=[1; 3; 0.5];lb=zeros(N,1);
% Define Matrices
A=[1 0 0];b=[2];
Aeq=[1 1 -1];beq=[3];
[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb,[])
When the quality is transformed into inequality, the corresponding code is shown as follows:
clear
% Parameters
N=3;f=[1; 3; 0.5];lb=zeros(N,1);
% Define Matrices
A=[1 0 0;1 1 -1;-1 -1 1];b=[2;3;-3];
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb,[])
These two paragraphs of codes can only get the correct answer to the primal problem, but they cannot get the right solution of dual problem. Could you tell me how to get to correct dual solution? Thanks a lot.