我被要求编写一个使用中央差异的程序
"Central difference formula"
def difc(f,x,h):
h = float(h)
return (f(x + h) - f(x - h))/2*h
"Entraphy function"
f = 259.8*(3.782*x - 2.997*(10**-3)*(x**2)/2 + 9.847*(10**-6)*(x**3)/3 - 9.681*(10**-9)*(x**4)/4 + 3.243*(10**-12)*(x**5)/5 - 1.064*10**3)
"temperature"
x = 500
print (difc(f,500,5))
当我运行代码时,我收到错误
line 9, in derivative
return (f(x+h) - f(x))/h
TypeError: 'int' object is not callable"
我哪里出错?
答案 0 :(得分:2)
似乎f
不是函数而是值(即使此时未定义x
...)。也许您想要定义一个实际的函数,并且使用您的格式,lambda
是完美的候选者:
f = lambda x: 259.8*(3.782*x - 2.997*(10**-3)*(x**2)/2 + 9.847*(10**-6)*(x**3)/3 - 9.681*(10**-9)*(x**4)/4 + 3.243*(10**-12)*(x**5)/5 - 1.064*10**3)