我对辛普森一家的规则有疑问。这是说浮动对象不能被解释为i在范围内的整数(1,(n / 2)+ 1):
def simpson(f, a, b, n):
h=(b-a)/n
k=0.0
x= a + h
for i in range(1, (n/2) + 1):
k += 4*f(x)
x += 2*h
x = a + 2*h
for i in range(1, n/2):
k +=2*f(x)
x += 2*h
return (h/3)*(f(a)+f(b)+k)
result = simpson(lambda x:x,0,1,4) 打印(结果)
答案 0 :(得分:0)
n / 2
在Python 3中返回一个浮点数,而range
仅适用于整数。您需要使用整数除法(//
):
range(1, (n // 2) + 1)
。