首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scipy:使用optimize.leastsq时拟合参数的界限

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

Stack Overflow用户
提问于 2011-09-14 07:28:51
回答 3查看 8.4K关注 0票数 6

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

EN

回答 3

Stack Overflow用户

发布于 2011-09-14 08:06:11

我认为处理边界的标准方法是当参数超出边界时,使要最小化的函数(残差)非常大。

代码语言:javascript
复制
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)
票数 6
EN

Stack Overflow用户

发布于 2011-09-18 05:05:43

我不久前才发现这个

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

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

BSD有许可证,但我还没试过。

票数 3
EN

Stack Overflow用户

发布于 2011-09-18 06:12:25

你可能会发现

https://lmfit.github.io/lmfit-py/对此很有用。它允许每个变量的上限/下限,并允许参数之间的代数约束。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7409694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档