使用minimize_scalar时如何将参数传递给目标函数?

时间:2018-03-12 05:51:47

标签: python scipy

正如here所述,要使用scipy.optimize.minimize_scalar,我们需要定义目标函数,例如:

def f(x):
    return (x - 2) * x * (x + 2)**2

然后,我们将通过以下方式对其进行优化:

from scipy.optimize import minimize_scalar
res = minimize_scalar(f)

现在,我想用一个变量来定义我的函数以优化和几个参数。例如,有些事情如下:

def f(x, a, b):
   return (x - a) * x * (x + a)**a + b
res = minimize_scalar(f(x, 2, 3))

如何定义函数并使用它? 请注意,因为a和b每次都可能不同,所以我无法在函数定义中定义它们。

1 个答案:

答案 0 :(得分:0)

使用args参数:

  

args :元组,可选

     

传递给目标函数的额外参数。

正确的语法如下所示:

res = minimize_scalar(f, args=(2, 3))