LMFIT:'ValueError:当数据输入全部为Float时,输入包含nan值

时间:2019-05-29 10:54:02

标签: python curve-fitting lmfit

我正在尝试曲线拟合一个数据集,该数据集是从and Integration获得的,lmfit表示其中包含NaN值。

同一数据使用scipy_curvefit拟合,即超级错误。我正在尝试使用该库以获得更好的结果。

我试图将yData和xData更改为一些简单的数组(您将在下面看到),并遇到相同的错误!

from lmfit import Model
def poly(x, a1,a2,a3,a4,a5):
    return a1+a2*x**a3+a4*x**a5
x=s
y=vrr
x=[0.,1.,2.,3.,5.,6.]
y=[4.,5.,6.,12.,3.,5.]
gmodel = Model(poly)
gmodel_parameters= gmodel.make_params()
gmodel_parameters['a1'].set(value=10)
gmodel_parameters['a2'].set(value=10)
gmodel_parameters['a3'].set(value=7)
gmodel_parameters['a4'].set(value=10)
gmodel_parameters['a5'].set(value=7)
result=gmodel.fit(x=x,data=y,params=gmodel_parameters)

plt.plot(x, y, 'k--')
plt.plot(x, result.best_fit, 'r-')
plt.show()

1 个答案:

答案 0 :(得分:1)

适合指数时要小心。如果程序将此变量设置为小于零,则可能会出现NaN错误。阅读文档,尝试将min = 0添加到a3和a5作为优化选项。

https://lmfit.github.io/lmfit-py/model.html#the-model-class

祝你好运!