LMFIT - Дополнительные переменные из Fitfunction - PullRequest
0 голосов
/ 30 апреля 2018

я написал короткий код, чтобы соответствовать спектрам из оптического излучения. Для этого я установил VoigtModel в Peak, а LinearModel - в фоновый режим. Примерно так:

mod=VoigtModel()
pars = mod.guess(y, x=x)
out = mod.fit(y, pars, x=x)`

и

mod=LinearModel() 
pars = mod.guess(y, x=x)
func=mod.fit(y,pars,x=x)`

Теперь я хотел бы вычислить площадь между линейной функцией и функцией пика фойгта. Кто-нибудь знает как это сделать. Моя идея состояла в том, чтобы восстановить функции и выполнить интеграцию. Но я не знаю, как извлечь переменную (наклон, перехват, гамма, сигма, ...) из fit_report () ?? Спасибо BR математика

1 Ответ

0 голосов
/ 30 апреля 2018

Я не совсем уверен, о чем вы просите, но вот некоторые вещи, которые вы можете извлечь из результата подгонки out или func (что-то вроде странного имени, чтобы дать результат подгонки, но OK):

ModelResult имеет:

  • params: упорядоченный словарь наиболее подходящих параметров. Ключами являются имена параметров, а значениями являются lmfit.Parameter объекты, которые имеют атрибуты value, stderr, max, min, correl и т. Д.

  • best_values: простой словарь с именами параметров в качестве ключей и наиболее подходящими значениями в качестве значений.

  • best_fit: ndarray наиболее подходящей модели.

Дополнительные атрибуты результата описаны в http://lmfit.github.io/lmfit-py/model.html#modelresult-attributes

Итак, вероятно, вы хотите что-то вроде:

for parname, param in out.params.items():
    print("%s = %f +/- %f " % (parname, param.value, param.stderr))

, что в основном и делает метод fit_report.

...