我需要最大化3变量函数,该函数在以下空间中定义:
] 0,∞[x] 1,∞[x [0,∞[
我将使用scipy.optimize.minimize中的SLSQP算法,我认为应该为函数定义边界。但我不知道如何在python或这个限制中写“无限”。也许它应该使用,然后,约束,但我找不到一种方法来定义它。
如果我能得到一些帮助,我会很高兴。
提前致谢!
答案 0 :(得分:3)
scipy.optimize.minimize
的文档指出:
界限:序列,可选
变量的界限(仅适用于L-BFGS-B,TNC和SLSQP)。
(min, max)
中每个元素的x
对,定义了它的边界 参数。 当没有限制时,使用None
作为最小值或最大值之一 那个方向。
所以你不必代表无限,只需通过None
。传递浮点无穷可能无法正常工作。
在python中表示无穷大的标准方法是使用float('inf')
表示无穷大,使用float('-inf')
表示负无穷大。这些代表标准的IEEE 754无穷大值。
numpy
还提供numpy.inf
。