我正在使用optimize.leastsq来拟合数据。我想将拟合参数限制在一定范围内。使用optimize.leastsq时是否可以定义边界?界限是在optimize.fmin_slsqp中实现的,但我更喜欢使用optimize.leastsq。

最佳答案

我认为处理边界的标准方法是,只要参数超过边界,就要使函数最小化(残差)很大。

import scipy.optimize as optimize
def residuals(p,x,y):
    if within_bounds(p):
        return y - model(p,x)
    else:
        return 1e6

p,cov,infodict,mesg,ier = optimize.leastsq(
    residuals,p_guess,args=(x,y),full_output=True,warning=True)

关于python - Scipy:使用optimize.leastsq时拟合参数的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7409694/

10-11 03:51