如何用matlab解决这个问题?

某超市出售两种不同型号的某品牌奶制品,两种奶制品每瓶的进价分别为4元和5元. 它们的利润分别为每瓶0.6元和0.8元,该超市每月最多从厂家进该两种奶制品分别为1万瓶和1.5万瓶。通过统计,该超市对这两种奶制品总量的需求每月不少于2万瓶。请回答如下问题:
(1)试问该超市该如何设计进货计划,才能既满足超市周边群众需求,又使得超市利润最大。
(2)该企业应该如何安排生产计划,才能既能满足市场需求(不少于2万瓶),又节约投资,而且使生产利润达到最大?

题主给出的问题属于最优的线性规划问题,如何来求解呢?

下面给出其求解思路:

1、明确线性规划问题的函数式,即

max 0.6x+0.8y %超市获得最大利润

st. x+y≤2 %问题不应该是x+y>2,如是x+y=2.5

x≤1,y≤1.5

2、使用fmincon函数来求解其线性规划问题。即

[k,fval] = fmincon(@(k) myfun(k),k0,[],[],[],[],lb,ub,@(k) mycon(k));

这里,x=k(1),y=k(2),myfun(k)——自定义目标函数,mycon(k)——自定义约束条件函数,lb——x,y的下限,ub——x,y的上限

3、自定义目标函数myfun(),其内容

fx=-(0.6*x+0.8*y);

4、自定义约束条件函数mycon(),其内容

c=(x+y)-2; %不等式条件

5、x,y的下限,lb=[0,0];

6、x,y的上限,ub=[1,1.5];

7、按上述思路完善程序,并运行可以得到如下结果。(问题一)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-14
完整代码如下:
function fx=fun(k)
fx=-(0.6*k(1)+0.8*k(2));

function [c,ceq]=mycon(k)
c=k(1)+k(2)-2;
ceq = [];

lb=[0,0];
ub=[1,1.5];
k0 = (lb + ub)/2;
k=[1,1.5];
[k,fval] = fmincon(@(k)fun814(k),k0,[],[],[],[],lb,ub,@(k)mycon(k))
求解结果:
k =

0.5000 1.5000

fval =

-1.5000
这里fval是负值,取反后就是最大值。
两种奶制品分别进货0.5万瓶和1.5万瓶时,最大利润1.5万元