拟拟合函数固定参数不确定性曲线拟合(Python)
我有一个函数,看起来像拟拟合函数固定参数不确定性曲线拟合(Python),python,curve-fitting,uncertainty,Python,Curve Fitting,Uncertainty,我有一个函数,看起来像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,
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
中的数据和误差。您是否只有可用的不确定性,或者不确定性所基于的所有数据集?你说的“不起作用”是什么意思?出了什么问题?@Cleb,我发现包装不起作用,因为被包装的函数只需要返回一个浮点数。看起来包装只是多次调用函数,其中包含可能变量的值与不确定性的所有可能组合。明天我将编辑这个问题。@VladimirVargas我现在面临着一个类似的问题。您找到了让代码运行的方法还是尝试了其他方法?任何形式的暗示都很感激!