Python 如何获得类似“单纯形”的;“稳健性”;和SciPy中的边界一起?

Python 如何获得类似“单纯形”的;“稳健性”;和SciPy中的边界一起?,python,scipy,minimize,Python,Scipy,Minimize,我想将sicpy.minimize中的一种最小化方法应用于一个函数,该函数可能并不总是提供平滑导数。我对单纯形法的Nelder-Mead实现感到满意,但它似乎不接受边界参数:(…,bounds=[xmin,xmax],…)。读到这里,似乎只有L-BFGS-B、TNC和SLSQP方法接受边界,而这三种方法都以牛顿方法为基础,要么计算数值导数,要么接受数值导数 我不知道确切的术语,但我正在寻找scipy中的“类似单纯形”或“无导数”方法,该方法接受边界,但也可以忽略不能提供平滑导数的函数(例如阶梯状

我想将
sicpy.minimize
中的一种最小化方法应用于一个函数,该函数可能并不总是提供平滑导数。我对单纯形法的
Nelder-Mead
实现感到满意,但它似乎不接受边界参数:
(…,bounds=[xmin,xmax],…)
。读到这里,似乎只有L-BFGS-B、TNC和SLSQP方法接受边界,而这三种方法都以牛顿方法为基础,要么计算数值导数,要么接受数值导数


我不知道确切的术语,但我正在寻找
scipy
中的“类似单纯形”或“无导数”方法,该方法接受边界,但也可以忽略不能提供平滑导数的函数(例如阶梯状行为)。现在,我正在做1d。稍后我可能会添加维度,但现在这并不重要。

我会尝试一下lmfit


虽然不是scipy的一部分,但基于,它提供了有界最小化。我使用它进行曲线拟合和参数提取。尽管如此,我无法说出它在您的特定函数上的执行情况。

我正在SciPy中寻找一种不使用导数且允许有界的最小化方法。1d现在就可以了。这怎么太宽了?要么有,要么没有。对于1d,看这里,嘿,这真的很有趣!如果我理解正确,它在内部使用了
scipy
中的最小化方法(至少有时),但为用户提供了一组更“pythonic”的类来设置问题。对于
scipy
中没有显式处理边界的方法,当暴露于scipy时,它将在用户空间中设置为
-inf
+inf
。事实上,我可以自己试着去做,而不用
lmfit
!但看起来很有趣,所以我想我会试试看。非常感谢。