Estou tentando implementar uma otimização simples com a biblioteca Scipy:
def f1(x):
sum(x)
initial_x_1 = np.ndarray([1])
res = optimize.minimize(f1, initial_x_1, [], 'COBYLA')
Mas obtive o erro:
fx = fun(np.copy(x), *args)
^^^^^^^^^^^^^^^^^^^^^^
TypeError: f1() takes 1 positional argument but 2 were given
O problema vem do terceiro e quarto argumentos que você passou para optimize.minimize; que são opcionais e devem ser nomeados. Caso contrário, eles são assumidos como argumentos extras que serão passados para f1():
args : tupla, opcional. Argumentos extras passados para a função objetivo e suas derivadas (funções fun, jac e hess).
A seguinte modificação deve resolver seu problema: