SciPy中的约束优化

3 投票
2 回答
5199 浏览
提问于 2025-04-18 07:28

我需要在一个模拟中找到能够最大化一个多变量函数的参数,同时还要满足一些限制条件。

我看到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

撰写回答