Кривое соответствие с неопределенностью в фиксированных параметрах функции, чтобы соответствовать (Python)
У меня есть функция, которая выглядит как f(x, m, E, I) = m * (x - x ** 2) / (E * I)
где я хочу получить значение для E
, У меня есть некоторые данные, которые я называю X
а также Y
и некоторая неопределенность в данных у, которые я называю yerr
, Дополнительно параметры m
а также I
являются физическими величинами, и они были измерены с некоторой неопределенностью.
Я хочу соответствовать функции f
к моим данным X, Y
с учетом неопределенности величин m, I
, Прямо сейчас это команда, которую я использую для подгонки:
m = some value
I = some other value
popt, pcov = curve_fit(lambda x, E: f(x, m, E, I), X, Y, p0=[1e9], sigma=yerr)
Конечно, это не учитывает неопределенность в m
а также I
, Есть ли способ подогнать кривую с учетом этой неопределенности?
Например, здесь они решают ODE, используя неопределенности модуля, я попытался скопировать процедуру, но не сработало:
import uncertainties as u
def f(x, m, E, I):
return m * (x - x ** 2) / (E * I)
m = u.ufloat(3e-4, 0.1e-6)
I = u.ufloat(1e-10, 0.2e-12)
@u.wrap
def fit():
popt, pcov = curve_fit(lambda x, E: f(x, m, E, I), X, Y, p0=[1e9], sigma=yerr)
return popt, pcov
где X, Y, yerr
данные и ошибка в Y
как уже упоминалось ранее.