Mathematica求解线性规划中,结果要求取整,怎么实现?

Mathematica求解线性规划中,结果要求取整,怎么实现啊?Minimize[{x1+x2+x3+1,x1>=0.5*(x1+x2+x3+1),x2>=(1/3)*(... Mathematica求解线性规划中,结果要求取整,怎么实现啊?

Minimize[{x1 + x2 + x3 + 1,
x1 >= 0.5*(x1 + x2 + x3 + 1),
x2 >= (1/3)*(x1 + x2 + x3 + 1),
x3 >= (1/9)*(x1 + x2 + x3 + 1), x1 >= 1, x2 >= 1, x3 >= 1

}, {x1, x2, x3}]
其中要求x1、x2、x3、(x1 + x2 + x3 + 2)/2为整数
展开
 我来答
山水阿锐
2015-04-22 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.1亿
展开全部
您好,ConstrainedMax函数早在Mathematica5.0就被淘汰。据4.0版的帮助,这段代码有两点错误:
第一,ConstrainedMax的用法应该是ConstrainedMax[f, {inequalities}, {x, y, ... }],并没有{x1->0,x2->0,x3->0}一项。所以应改作ConstrainedMax[3 x1 + 2 x2 + 2.9 x3, {8 x1 + 2 x2 + 10 x3 < -300, 10 x1 + 5 x2 + 8 x3 < -400, 2 x1 + 13 x2 + 10 x3 < -420}, {x1, x2, x3}]。
第二,即使这样改了,也不能得到结果,因为ConstrainedMax默认所有变量都是非负的。但这道题的结果实际算出来是负的。
所以,对于5.0以上的版本,应该用:
NMaximize[{3x1 + 2x2 + 2.9x3, {8x1 + 2x2 + 10x3 < -300, 10x1 + 5x2 + 8x3 < -400, 2x1 + 13x2 + 10x3 < -420}}, {x1, x2, x3}]
4.0以下的版本线性规划的函数都只认非负数。
另,Mathematica的新版本可在VeryCD找到。
ConstrainedMax函数太老了,Mathematica5.0以后都用Maximize函数了.结果要求取整数,只需要加Element选项即可,比如:
Maximize[{2 x + 3 y - z,1
追问
答非所问
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式