Лучше:
def f_gob(a):
x = a[0]
y = a[1]
z = a[2]
c_1= ((1/x-y/x)+R*k_1)/(1+delta*(1+alpha))
c_2=delta*x*c_1
l=n-(alpha*c_2)/(1-y)
return -1*(math.log(c_1)+delta*(math.log(c_2)+alpha*math.log(n-l)+beta*math.log(z)))
f_gob([0.9996,0.332,0.7765])
Основная проблема заключается в том, что текущие уровни трех решающих переменных x,y,z
передаются как один массив, который я называю a
. Я просто распаковываю отдельных участников, чтобы держать вещи близко к тому, что у вас было. Передача данных в виде массива имеет смысл, особенно если вы хотите использовать большое количество переменных (например, сотен).
Для получения дополнительной информации см. Документацию : третье предложение объясняет формат вызываемой функции. Также проверьте примеры.