我有一个看起来像的函数,f(x, m, E, I) = m * (x - x ** 2) / (E * I)
我想在其中获取E
. 我有一些数据,我称之为X
和Y
,还有一些不确定性的 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