我是scipy的新手,以下代码似乎不起作用:
from scipy import optimize
def f(x, y):
return x * x - 3 + y
def main():
x0 = 0.1
y = 1
res = optimize.newton(f(x0,y), x0)
print (res)
我收到的错误是:
File "C:\Python27\lib\site-packages\scipy\optimize\zeros.py", line 144, in newton
q0 = func(*((p0,) + args))
TypeError: 'float' object is not callable
答案 0 :(得分:7)
您需要提供一个函数作为optimize.newton
的第一个参数。独立参数的猜测x0
作为第二个参数提供,您可以使用args
提供常量参数:
def f(x, y):
return x * x - 3 + y
def main():
x0 = .1
y = 1
res = optimize.newton(f, x0, args=(y,))