Почему порядок функций имеет значение? - PullRequest
0 голосов
/ 26 мая 2020

У меня проблема с функцией, которую я пытаюсь подогнать под некоторые данные. У меня есть модель, заданная уравнением внутри функции, которую я использую, чтобы найти значение для v. Однако порядок, в котором я пишу переменные в определении функции, сильно влияет на значение, которое подгонка дает для v. Если, как в приведенном ниже блоке кода у меня есть def MAR_fit(v,x), где x - независимая переменная, подгонка дает значение для v, сильно отличающееся от того, если бы у меня было определение def MAR_fit(x,v). У меня не было большого опыта работы с функцией curve_fit в пакете scipy, и документы все еще заставляли меня задуматься.

Любая помощь была бы замечательной!

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 голосов
/ 26 мая 2020

Взгляните на документацию еще раз, там сказано, что вызываемый объект, который вы передаете curve_fit (функция, которую вы пытаетесь подогнать), должен принимать независимую переменную в качестве своего первого аргумента. Дальнейшие аргументы - это параметры, которые вы пытаетесь подобрать. Вы должны использовать MAR_fit(x,v), потому что это то, чего ожидает curve_fit.

...