如何获得类似单纯形的 "robustness" 以及 SciPy 中的边界?

How to get Simplex-like "robustness" together with bounds in SciPy?

我想将 sicpy.minimize 中的一种最小化方法应用于可能并不总是提供平滑导数的函数。我已经习惯了 Simplex 方法的 Nelder-Mead 实现,但它似乎不接受边界参数:(...,bounds=[xmin, xmax],...)。阅读此 documentation 似乎只有 L-BFGS-B、TNC 和 SLSQP 方法接受边界,并且所有这三种方法都以某种方式基于牛顿法,并且将计算数值导数或接受一个。

我不知道确切的术语,但我正在寻找 scipy 中的 'Simplex-like' 或 'derivativeless' 方法,它接受边界,但也会宽容函数这不会提供平滑的导数(一个例子是类似楼梯的行为)。现在,我正在做 1d。稍后我可能会添加尺寸,但现在这并不重要。

我会尝试 lmfit (http://cars9.uchicago.edu/software/python/lmfit/)。

虽然不是 scipy 的一部分,但基于它提供了有界最小化。我用它来进行曲线拟合和参数提取。不过,我不知道它对您的特定功能有何影响。