Я хочу использовать функцию optimize.curve_fit с функцией:
def nlorentz(x,X0,G):
# This function calculates the sum of n = len(X0) lorentzians.
s = 0
for i in range(len(X0)):
s += lorentz(x,X0[i],G[i])
return s
, где X0 и G - массивы.
У меня есть список предположений:
gG = [1,2]
gX0 = [1.2,3]
Тогда я хочу не оптимизировать функцию для каждого значения X0:
p,cov = curve_fit(nlorentz,x,y,p0=[gX0,gG])
, чтобы получить желаемый результат:
p = [optimized_X0, optimized_G]
, где optimized_X0 и optimized_G являются массивами.
Но я получаю ошибку:
TypeError: nlorentz() takes 3 positional arguments but 5 were given
Я не знаю, есть ли способ сделать это. Любая помощь будет оценена. Благодаря.