第一章 线性规划习题解答

第一章 线性规划习题解答_第1张图片MATLAB:

c=[3,-1,-1];
a=[1 -2 1;4 -1 -2];
b=[11,-3];
aeq=[-2 0 1];
beq=1;
[x,y]=linprog(-c,a,b,aeq,beq,zeros(3,1))
y=-y

LINGO:

MODEL:
  SETS:
     col/1..3/:c,x;
     row/1..2/:b;
     links(row,col):a;
  ENDSETS
  DATA:
     C=3 -1 -1;
     a=1 -2 1 4 -1 -2;
     b=11 -3; 
  ENDDATA
  MAX=@SUM(col:c*x);
  @FOR(row(i):@SUM(col(j):a(i,j)*x(j))<b(i));
  -2*x(1)+x(3)=1;
END

在这里插入图片描述
第一章 线性规划习题解答_第2张图片
MATLAB:
转换成线性的方法:
第一章 线性规划习题解答_第3张图片

clc,clear
c=1:4;
c=[c,c]';
aeq=[1 -1 -1 1;1 -1 1 -3;1 -1 -2 3];
beq=[0 1 -1/2];
aeq=[aeq,-aeq];
[uv,val]=linprog(c,[],[],aeq,beq,zeros(8,1))%这时uv有八个数字,上面推导中的ui是x1~x4,vi是x4~x8
x=uv(1:4)-uv(5:end)

LINGO:

model:
sets:
col/1..4/:c,x;
row/1..3/:b;
link(row,col):a;
endsets

data:
c=1 2 3 4;
a=1 -1 -1 1 1 -1 1 -3 1 -1 -2 3;
b=0 1 -0.5;
enddata

min=@sum(col:c*@abs(x));
@for(row(i):@sum(col(j):a(i,j)*x(j))=b(i));
@for(col:@free(x));
end

第一章 线性规划习题解答_第4张图片第一章 线性规划习题解答_第5张图片第一章 线性规划习题解答_第6张图片第一章 线性规划习题解答_第7张图片LINGO(结果和答案不对)

model:
sets:
product/1..3/:a,b;
row/1..5/:c,d,y;!y为中间变量;
num/1..9/:x;
endsets

data:
a=0.25 0.35 0.5;
b=1.25 2 2.8;
c=6000 10000 4000 7000 4000;
d=300 321 250 783 200;
enddata

max=(b(1)-a(1)*(x(1)+x(2))+(b(2)-a(2))*x(8)+(b(3)-a(3))*x(9)-@sum(row:d/c*y));
y(1)=5*x(1)+10*x(6);
y(2)=7*x(2)+9*x(7)+12*x(9);
y(3)=6*x(3)+8*x(8);
y(4)=4*x(4)+11*x(9);
y(5)=7*x(5);
@for(row:y<c);!写出不等式约束;
x(1)+x(2)=x(3)+x(4)+x(5);!写出等式约束;
x(6)+x(7)=x(8);
end

第一章 线性规划习题解答_第8张图片

你可能感兴趣的:(数学建模)