我正在尝试使用 Scipy lib 实现简单的优化:
def f1(x):
sum(x)
initial_x_1 = np.ndarray([1])
res = optimize.minimize(f1, initial_x_1, [], 'COBYLA')
但出现错误:
fx = fun(np.copy(x), *args)
^^^^^^^^^^^^^^^^^^^^^^
TypeError: f1() takes 1 positional argument but 2 were given
问题出在你传递给 optimize.minimize 的第三和第四个参数上;它们是可选的,应该命名。否则,它们将被视为将传递给 f1() 的额外参数:
args:元组,可选。传递给目标函数及其导数(fun、jac 和 hess 函数)的额外参数。
以下修改应该可以解决您的问题: