文章目录
(1)题目
1.线性规划求解实现与代码
(2)分支定界求解
一、题目
(1)题目
用线性回归求该解问题,具体求解代码如下:
format short %设置显示模式,short为十进制4位的浮点小数;
>> z=[40 90]; %所求问题左边未知数系数,即限制条件
>> a=[9 7;7 20]; %不等式左边限制条件
>> b=[56 70]; %不等式右边限制条件
>> aeq=[]; %等式左边限制条件,由于无等式,所以为空矩阵;
>> beq=[]; %等式右边限制条件,由于无等式,所以为空矩阵;
>> lb=[0;0]; %变量x1,x2的下限
>> ub=[inf;inf]; %变量x1,x2的上限,inf代表无穷大
>> [x,fval]=linprog(-z,a,b,aeq,beq,lb,ub) %x是一个2*1的矩阵,z取最大值对应x1,x2的值
Optimal solution found.
x =
4.8092
1.8168
fval =
-355.8779
>> best=z*x %求得最优解
best =
355.8779
(2)分支定界求解
对x1进行分支定界:
对x1<=4部分
0<=x1<=4
代码实现如下:
>> z=[40 90];
>> a=[9,7;7,20];
b=[56;70];
aeq=[];
beq=[];
>> lb=[0;0];
>> ub=[4;inf];
>> [x,fval]=linprog(-z,a,b,aeq,beq,lb,ub)
Optimal solution found.
x =
4.0000
2.1000
fval =
-349
>> best=z*x
best =
349
对x1>=5部分
>> z=[40 90];
a=[9,7;7,20];
b=[56;70];
aeq=[];
beq=[];
lb=[5;0];
ub=[inf;inf];
[x,fval]=linprog(-z,a,b,aeq,beq,lb,ub)
Optimal solution found.
x =
5.0000
1.5714
fval =
-341.4286
>> best=z*x
best =
341.4286
对x2进行分支定界时,对x2>3部分,代码如下:
>> z=[40 90];
a=[9,7;7,20];
b=[56;70];
aeq=[];
beq=[];
lb=[0;3];
ub=[4;inf];
[x,fval]=linprog(-z,a,b,aeq,beq,lb,ub)
Optimal solution found.
x =
1.4286
3.0000
fval =
-327.1429
>> best=z*x
best =
327.1429
x1>5,0<x2<1时代码求解如下:
>> z=[40 90];
a=[9,7;7,20];
b=[56;70];
aeq=[];
beq=[];
lb=[5;0];
ub=[inf;1];
[x,fval]=linprog(-z,a,b,aeq,beq,lb,ub)
Optimal solution found.
x =
5.4444
1.0000
fval =
-307.7778
>> best=z*x
best =
307.7778