我正在尝试使用scipy.optimize
函数来找到具有多个参数的复杂函数的全局最小值。scipy.optimize.minimize
似乎做得最好,即“Nelder-Mead”方法。但是,它往往会进入参数域之外的区域(将负值分配给只能为正的参数),因此在这种情况下会返回错误。有没有办法限制函数本身的参数范围?scipy.optimize.minimize
或者可能在其他scipy.optimize
功能中?
我找到了以下建议:
当参数超出允许范围时,返回一个非常大的数字(远离要拟合的数据)。这将(希望)严重惩罚这种参数选择,从而
curve_fit
将其他一些可接受的参数集确定为最优。
在上一个答案中给出,但在我的情况下,该过程将花费大量计算时间。