我试图在 python 中编写一个函数,该函数将使用 Newton-Cotes 方法集成给定的函数,并返回一些非常奇怪的结果,有时它会给出正确的答案而其他的则不会(大多与 -ve 界限错误)。这是我的代码,如果有人能指出任何错误,将不胜感激:)
def integrate(function, a, b):
coeff = [7,32,12,32,7]
result = 0
for i in range(0,len(coeff)):
x = a + (i*(b-a))/(len(coeff)-1)
result += coeff[i]*eval(function)
print eval(function)
result = result*((b-a)/90.)
return result
我一直遵循的牛顿科特公式来自wikipedia。
例子:
print integrate("x**3-4*x+9", -7, 7)
返回:-38
当实际答案是126