matlab求解下面的线性规划和整数规划

matlab求解下面的线性规划和整数规划

  本篇博客主要讲了用matlab实际求解整数规划问题,目前还没有时间去自己实现整数规划算法,只能通过调用MATLAB的函数去实现。

题目

这里写图片描述

代码

第一小题

%线性规划代码
%author Canlong
f=[-3,-2];
A=[2,3;1,0.5];
b=[14;4.5];
C=[];
d=[];
xm=[0;0];
xM=1e+10*[1;1];
x0=[0,0];
%f,代表目标函数系数,A自变量系数矩阵,b,右边的目标值矩阵,xm自变量最小值,
%xM自变量最大值,x0初值。
 [x,y]=linprog(f,A,b,C,d,xm,xM,x0)

运行得到x1=3.25,x2=2.5 。y=14.75
第二小题

%整数规划代码
%author Canlong
f=[-3,-2];
A=[2,3;1,0.5];
b=[14;4.5];
C=[];
d=[];
xm=[0;0];
xM=1e+10*[1;1];
x0=[0;0];
%intlinprog 函数,用于进行整数规划和整数非整数的混合规划
[x,y,flag]=intlinprog(f,[1,2],A,b,C,d,xm,xM)

运行得到,x1=4,x2=1,y=14
这里需要说明一下的是,matlab较新的版本中才会有intlinprog。编者在这里用的MATLAB 7.0.

总结

  用MATLAB求解整数规划的函数为intlinprog,求解线性规划的函数是linprog.不过在实验中,在得到y的值的时候,要注意求解得到的y的值是原来应该求解y 的值的负值,因为原来求解的是最大值。一不小心这个细节方面的问题很容易就会出错。然后整数规划中的intlinprog函数要注意的主要是第二个参数是intcon,代表的是intcon的意义为整数约束变量的位置。

猜你喜欢

转载自blog.csdn.net/weixin_37610397/article/details/79898423
今日推荐