我想用 sp.optimize.minimize 在 x 上优化函数 f(x,y,z)。Jacobian 只依赖于 x 和 y,它是函数 J(x,y)。(这只是一个玩具示例)
如果我尝试:
import numpy as np
import scipy as sp
def f(x,y,z):
return(x**2+x*y**3+z)
def J(x,y):
return(2*x+y**3)
x0,y,z=0,1,4
sp.optimize.minimize(f,x0,args=(y,z),jac=J)
我收到一个错误“J() 接受 2 个位置参数,但给出了 3 个”,因为优化将 y 和 z 传递给 J。
有什么方法可以定义我想传递给 f 的参数,以及我想传递给 J 的参数吗?
(一种选择是定义 f 和 J ,使它们具有相同的参数,而忽略函数不需要的参数,但我希望有更优雅的方法)
www说
相关分类