SciPy中的约束优化
我需要在一个模拟中找到能够最大化一个多变量函数的参数,同时还要满足一些限制条件。
我看到scipy.optimize.minimize这个工具可以找到一个函数的最小值(其实也可以找到负函数的最大值),而且它支持限制条件和边界。不过,我在看文档的时候发现,它返回的是最小值,而不是使函数最小的参数(我理解得对吗?)
scipy.optimize.fmin可以给出使函数最小的参数,但它不支持边界或限制条件。
在numpy中,有一个叫argmin的函数,它接受一个向量作为参数,并返回使其最小的“参数”。
有没有这样的函数,既像minimize那样支持限制条件,又像fmin那样能返回使函数最小的参数呢?
提前谢谢你。
2 个回答
1
scipy.optimize.minimize这个函数返回的结果是一个叫做Result的东西。
这个Result里面有很多信息,其中包括让函数f达到最小值的输入值(x)。
1
新的 minimize
函数在使用某些优化算法时,可以接受一个叫 bounds
的参数。在旧版的 SciPy 中,你需要直接调用这些算法,比如 fmin_l_bfgs_b
。