将 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))
...
我正在尝试优化以下功能
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))
...