Mathematica求解线性规划8x1+2x2+10x3
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 09:43:09
Mathematica求解线性规划8x1+2x2+10x3
Mathematica求解线性规划
8x1+2x2+10x3
Mathematica求解线性规划8x1+2x2+10x3
您是 北风之神 我已在搜搜问问回答过这个问题.为了让更多人知道答案,我把我之前的回答的要点贴在这里.
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找到.也可留下邮箱地址,我发给你.
直接用Maximize【目标函数,{约束条件},{变量集合}】就可以了
Mathematica7.0下直接用Maximize函数求解即可:
Maximize[{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}]
答案:{-135.267, {x1 -> -22.5333, x2 -> -23.2, x3 -> -7.33333}}
Maximize和NMaximize有什么区别呢?