我是python的新手,我正在编写这个简单的代码来查找函数的根源:
from scipy import optimize
x = eval(raw_input()) #Initial guess
f = eval(raw_input()) # function to be evaluated
F = eval(raw_input()) #derivative of function f
round(optimize.newton(f, x, F, tol = 1.0e-9), 4)
但是翻译返回: TypeError:'float'对象不可调用
我真的不确定从这段代码中遗漏了什么。有人可以帮帮我..谢谢你提前
答案 0 :(得分:1)
optimize.newton
期望引用可调用对象(例如函数)。这并不意味着您将函数作为'x*x'
之类的字符串给出,但您必须首先定义一个函数,例如:
def my_func (x):
return x*x
然后您可以将my_func
插入optimize.newton
(除了其他必需参数)。
答案 1 :(得分:0)
这取决于您为f
输入的内容。如果输入类似
lambda x: x ** 2
然后它将被解释为一个函数,例如
In [83]: f = eval('lambda x: x ** 2')
In [84]: f(5)
Out[84]: 25