这个问题可以用线性规划的方法求解,但由于目标函数中存在常数项,求解时还需要做一下转换,显得稍微有点繁琐。建议用非线性约束优化的函数fmincon求解,一个命令就够了:
>> [n,fval]=fmincon(@(n)1064-27.60*n(1)+232.78*n(2)+59.38*n(4),[1 1 1 1],[],[],[],[], [0 0 -inf 0],[10 15 inf 10])
Warning: Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
> In fmincon at 437
Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
2 1
4
n =
10 0 1 0
fval =
788
其中,红色字体部分为需要输入的命令,黑色为命令提示符或运行输出。存在一个警告信息,但可以忽略。得到的结果是[n1 n2 n4] = [10 0 0](n3可忽略),目标函数最优值为788.