大家好,又见面了,我是你们的朋友全栈君。
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的意义为整数约束变量的位置。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157931.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...