您可以设置的目标函数和约束条件几乎为枫树,除了你的符号不应该用大写字母开头,因为这些是保留给数学的关键字,行N
:
objectiveFunction = 0.30 x1 + 0.15 x2;
n = 0.04 x1 + 0.08 x2 >= 25.4;
p = 0.08 x1 + 0.04 x2 >= 26.4;
然后,你可以简单地传递那些FindMinimum
{objectiveValue, solution} = FindMinimum[{objectiveFunction, n, p}, {x1, x2}]
Out [=] {99.,{x1 - > 228.333,x2 - > 203.333}}
(您也可以使用NMinimize
; FindMinimum
使用本地,基于梯度的优化方法,如牛顿,NMinimize
尝试全局优化。在这种情况下,这两个函数应该弄清楚,这是一个线性规划问题)
我不知道你的阴谋正在做,但我可以尝试以可视化的结果:
Show[
ContourPlot[objectiveFunction, {x1, 200, 1500}, {x2, -200, 1500}],
RegionPlot[n && p, {x1, 200, 1500}, {x2, -200, 1500},
PlotStyle -> Directive[White, Opacity[0.2]],
BoundaryStyle -> Directive[Red, Dashed]],
Graphics[{Red, PointSize[Large], Point[{x1, x2} /. solution]}]]
findminimum或nminimize。 – agentp
我仍然不明白如何设置它。 –