如何解决Python 的 Lmfit 包没有收敛到有意义的结果
我正在运行以下代码:
import numpy as np
from lmfit import Model
def exp_model(x,ampl1=1.0,tau1=0.1):
exponential = ampl1*np.exp(-x/tau1)
return exponential
x = np.array([2.496,2.528,2.56,2.592,2.624])
y = np.array([8774.52,8361.68,7923.42,7502.43,7144.11])
dec_model = Model(exp_model,nan_policy='propagate')
results = dec_model.fit(y,x=x,ampl1=y[0])
results.plot()
我得到的结果是
这意味着拟合只是出于某种原因失败了。我不明白为什么。它以前曾用于类似的数据。任何帮助将不胜感激。
解决方法
它没有收敛,因为 tau1 参数的初始值与实际值相差太远。下面的代码运行良好。
import numpy as np
from lmfit import Model
def exp_model(x,ampl1=1.0,tau1=1.0): # The initial value of tau1 was changed from 0.1 to 1.0
exponential = ampl1*np.exp(-x/tau1)
return exponential
x = np.array([2.496,2.528,2.56,2.592,2.624])
y = np.array([8774.52,8361.68,7923.42,7502.43,7144.11])
dec_model = Model(exp_model,nan_policy='propagate')
results = dec_model.fit(y,x=x,ampl1=y[0])
results.plot()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。