如何解决lmfit 无法拟合或拟合没有计算出的不确定性,即使初始起始参数非常好,为什么?
这个问题我已经遇到过几次了,它非常令人沮丧,但结果证明很容易解决。只是想把它放在这里,这样其他人可能会找到它,因为它过去让我很头疼,而且我从未设法找到有关这方面的信息。
问题的症状:
即使拟合数据的初始参数非常好(基于看起来非常接近数据的初始拟合),运行 model.fit(...)
要么无法完全拟合数据,要么确实拟合但在fit.fit_report()
## Warning: uncertainties could not be estimated:...
。其他非常相似的拟合可能不会出错,因此似乎根本没有充分的理由。
请注意,这不是数据的限制,也不是任何超小或超大的拟合值实际上会使最小化器更难以处理。
解决方法
答案:
出于某种原因,lmfit 似乎不喜欢 np.float64
。在很多情况下(至少对我而言),只需更改传入 np.float32
的数据类型即可完全解决问题。
即使这些值只有几个小数点长也是如此,因此在转换为 float32
时根本不会改变。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。