2

我有一个看起来像的函数,f(x, m, E, I) = m * (x - x ** 2) / (E * I)我想在其中获取E. 我有一些数据,我称之为XY,还有一些不确定性的 y 数据,我称之为yerr。此外,参数mI是物理量,它们的测量具有一定的不确定性。

我想将函数拟合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

4

0 回答 0