将 Sympy 表达式传递给 Scipy.optimize.minimize

Passing a Sympy expression to Scipy.optimize.minimize

我正在尝试优化以下功能

fun=-300.49858410695*C_0 - 301*C_1 - 60.2000000000003*C_2

但是,当我将此表达式传递给 scipy.optimize.minimize 函数时,出现错误。

TypeError: 'Add' object is not callable

这是我试过的全部代码

x0=[1,1,1]
scipy.optimize.minimize(fun,x0,method="Nelder-Mead")

我知道问题在于将 sympy 表达式作为函数传递,但有什么方法可以解决这个问题吗?

您需要通过 lambdifying 从表达式中创建一个函数。

from sympy import lambdify
fun = lambdify( (C_0,C_1,C_2), fun))
...