LMFIT: 'ValueError: вход содержит значения nan', когда все данные вводятся с плавающей точкой - PullRequest
2 голосов
/ 29 мая 2019

Я пытаюсь изогнуть набор данных, который я получил, и 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 Ответ

1 голос
/ 29 мая 2019

Будьте осторожны, когда подходите к экспоненте.Если программа устанавливает эту переменную меньше нуля, возможно, у вас ошибка NaN.Прочитайте документацию и попробуйте добавить min = 0 к a3 и a5 в качестве опции оптимизации.

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

Удачи!

...