Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拟拟合函数固定参数不确定性曲线拟合(Python)_Python_Curve Fitting_Uncertainty - Fatal编程技术网

拟拟合函数固定参数不确定性曲线拟合(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我现在面临着一个类似的问题。您找到了让代码运行的方法还是尝试了其他方法?任何形式的暗示都很感激!