Python 错误:函数及其Jacobian必须是可调用函数

Python 错误:函数及其Jacobian必须是可调用函数,python,odeint,Python,Odeint,错误:函数及其雅可比矩阵必须是可调用函数。我怎么解决这个问题 #!/usr/bin/env python from sympy import * from scipy.integrate import odeint from matplotlib import pyplot as plt from scipy import optimize as opt import numpy as np x = Symbol('x') def f(x): y = 100*(1-x**2)

错误:函数及其雅可比矩阵必须是可调用函数。我怎么解决这个问题

#!/usr/bin/env python
from sympy import *
from scipy.integrate import odeint
from matplotlib import pyplot as plt 
from scipy import optimize as opt 
import numpy as np 

x = Symbol('x')

def f(x):
    y =  100*(1-x**2)**2+(1-x)**2
    return y

def steepestDescent(f,x0,x):
    #y = np.zeros(100)
    for i in range(100):
        y = odeint(f,x0,x)
        x0 = x0-0.1*y;
    return x0

if __name__ == '__main__':
    x = np.linspace(-8,8,100)
    plt.plot(x,f(x),x,steepestDescent(f(x),2,x))
    plt.show()

请发布包含回溯的实际错误消息。在代码中的任何地方都看不到您实际上在调用雅可比矩阵。您想要实现什么?我猜问题在于,您在调用
plt()
最陡下降()
时调用了
f(x)
,而不是将函数
f
作为参数传递给这些方法。