python - 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, b0, c0), # your inital guess for these parameters
bounds=[
(a1, b1, c1, a1, b1, c1), # lower bound for parameters
(a2, b2, c2, a2, b2, c2) # upper bound for parameters
] )
推荐阅读
- python - 如何将 TextInput 传输到 pandas 数据并将其写入 Excel 工作表?基维
- python - PyQt5:一次更改多个对象的布局
- python - 如何处理 DELETE 语句删除任何行的失败?
- php - 如何使用php或sql对已经存储在sql列中的字符串句子中的数字求和
- angularjs - 使用 angularjs 的 IIS 预渲染未检测到令牌
- javascript - 如何根据 url 的结果更改 angular 7 网站上的 css 元素?
- mysql - 如果在 WHERE IN 子句中没有找到任何值,则返回 0
- python-3.x - 使用 Gensim 训练 Word2vec 模型
- java - 为什么抽象类允许受保护的方法,为什么不在接口中?
- javascript - 无法使用 Laravel Blade 堆栈运行 JS 代码