Scipy:使用optimize.leatsq时拟合参数的界限

2024-05-15 02:06:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 数据参数定义边界optimize界限fminslsqp
3条回答

您可能会发现
https://lmfit.github.io/lmfit-py/ 这很有用。它允许每个变量的上下界,并允许参数之间的代数约束。

我不久前才发现的

http://code.google.com/p/nmrglue/source/browse/trunk/nmrglue/analysis/leastsqbound.py

它使用参数转换来施加框约束。它还计算参数估计的调整协方差矩阵。

BSD有执照,但我还没试过。

我认为处理边界的标准方法是使函数在参数超过边界时最小化(残差)。

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)

相关问题 更多 >

    热门问题