Кривое соответствие с неопределенностью в фиксированных параметрах функции, чтобы соответствовать (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 как уже упоминалось ранее.

0 ответов

Другие вопросы по тегам