微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scipy.optimize.curve_fit,所有参数均返回1

如何解决scipy.optimize.curve_fit,所有参数均返回1

我使用scipy.optimize.curve_fit来拟合数据。

params = curve_fit(gauss2,A,B)

def gauss2(x,a1,b1,c1,a2,b2,c2):
    return a1*np.exp(-((x-b1)/c1)**2) + a2*np.exp(-((x-b2)/c2)**2)

由于A和B是很大的数字(np.mean(A)=38956np.mean(B)=3112),params这里是1。我的问题有解决方案吗?

解决方法

您可以通过提供初始猜测和参数边界来改善curve_fit的结果。

curve_fit(gauss2,A,B,p0=(a0,b0,c0,a0,c0),# your inital guess for these parameters
       bounds=[
        (a1,b1,c1,a1,c1),# lower bound for parameters
        (a2,b2,c2,a2,c2) # upper bound for parameters
       ] )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。