Python 用LMFIT拟合负指数模型

Python 用LMFIT拟合负指数模型,python,lmfit,Python,Lmfit,当近似(负)指数函数时,lmfit的指数模型是如何工作的 以下内容试图遵循,但未能提供正确的结果: mod = lmfit.models.ExponentialModel() pars = mod.guess([1, 0.5], x=[0, 1]) out = mod.fit([1, 0.5], pars, x=[0, 1]) out.eval(x=0) # result is 0.74999998273811308, should be 1 out.eval(x=1) # result is

当近似(负)指数函数时,
lmfit
的指数模型是如何工作的

以下内容试图遵循,但未能提供正确的结果:

mod = lmfit.models.ExponentialModel()
pars = mod.guess([1, 0.5], x=[0, 1])
out = mod.fit([1, 0.5], pars, x=[0, 1])
out.eval(x=0) # result is 0.74999998273811308, should be 1
out.eval(x=1) # result is 0.75000001066995159, should be 0.5

需要两个以上的数据点才能使双参数指数模型适合数据。Lmfit模型用于进行数据拟合。类似这样的方法会奏效:

import numpy as np
import lmfit

xdat = np.linspace(0, 2.0, 11)
ydat = 2.1 * np.exp(-xdat /0.88) + np.random.normal(size=len(xdat), scale=0.06)

mod = lmfit.models.ExponentialModel()
pars = mod.guess(ydat, x=xdat)
out = mod.fit(ydat, pars, x=xdat)

print(out.fit_report())

相反,您得到的是
振幅=0.75
衰减>1e6

谢谢。数据本来是一个MVCE,但太简单了。似乎lmfit与我的真实数据不太吻合。