Newton-Cotes メソッドを使用して特定の関数を統合する関数を Python で作成しようとしていますが、非常に奇妙な結果が返されます。正しい答えが得られる場合とそうでない場合があります (ほとんどの場合、-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
私が従ってきたニュートン・コートの式は、ウィキペディアからのものです。
例:
print integrate("x**3-4*x+9", -7, 7)
戻り値:-38
実際の答えが126