如何解决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)=38956
,np.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 举报,一经查实,本站将立刻删除。