0

假设我有一个目标函数f(a,b,c)。我想找到最小化它的b值,保持ac不变,并尝试ac的不同组合,我不想将f(a,b,c)写为g(b)

from scipy.optimize import minimize

def f(a,b,c):
    return((a+1)**2 + b + c/2)

res = minimize(f, x0=1, args=(a,c,),)
print(res.x)

那么我如何指定bf(a,b,c)应该最小化的参数?该参数是否必须表示为x?或者我应该将b作为f的第一个参数?

4

1 回答 1

1

正如文档所述,函数的签名应该fun(x, *args)x最小化参数的位置。因此,您可以在原始函数周围使用一个小包装器:

res = minimize(lambda b, a, c: f(a, b, c), x0=1, args=(a, c))
于 2020-04-23T21:49:10.420 回答