使用"无限边界"在scipy.optimize.minimize?

时间:2014-05-24 11:06:59

标签: python scipy

我需要最大化3变量函数,该函数在以下空间中定义:

] 0,∞[x] 1,∞[x [0,∞[

我将使用scipy.optimize.minimize中的SLSQP算法,我认为应该为函数定义边界。但我不知道如何在python或这个限制中写“无限”。也许它应该使用,然后,约束,但我找不到一种方法来定义它。

如果我能得到一些帮助,我会很高兴。

提前致谢!

1 个答案:

答案 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