为什么功能顺序的顺序很重要?

时间:2020-05-26 13:46:47

标签: python curve-fitting scipy-optimize

我正在尝试适应某些数据的功能出现问题。我有一个模型,该模型由函数内部的方程式给出,我正在使用该方程式查找v的值。但是,我在函数定义中写入变量的顺序会极大地影响v的拟合值。在下面的代码块中,我有def MAR_fit(v,x),其中x是自变量,拟合给出的v值与如果我有定义def MAR_fit(x,v)时相差很大。我对scipy包中的curve_fit函数没有足够的经验,而文档仍然让我感到奇怪。

任何帮助都会很棒!

def MAR_fit(v,x):
    return (3.*((2.-1.)**2.)*0.05*v)/(2.*(2.-1.)*(60.415**2.)) * (((3.*x*((2.-1.)**2.)*v)/(60.415**2.))+1.)**(-((5./2.)-1.)/(2.-1.))

x = newCD10_AVB1_AMIN01['time_phys'][1:]


y = (newCD10_AVB1_AMIN01['MAR'][1:])
popt_tf, pcov = curve_fit(MAR_fit, x, y)

1 个答案:

答案 0 :(得分:0)

再次查看documentation,它说传递给curve_fit的可调用对象(您要使用的函数)必须将自变量作为其第一个参数。进一步的参数是您要适合的参数。您必须使用MAR_fit(x,v),因为这正是curve_fit的期望。