【问题标题】:How to specify the parameter an objective function is minimized with respect to, using scipy.optimize.minimize()?如何使用 scipy.optimize.minimize() 指定目标函数最小化的参数?
【发布时间】:2020-04-24 05:49:10
【问题描述】:

假设我有一个目标函数 f(a,b,c)。我想找到最小化它的 b 的值,保持 ac 不变,并尝试不同的 a 组合c,我不想把 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 的第一个参数?

【问题讨论】:

    标签: python optimization arguments scipy-optimize-minimize


    【解决方案1】:

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

    res = minimize(lambda b, a, c: f(a, b, c), x0=1, args=(a, c))
    

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 2016-08-30
      相关资源
      最近更新 更多