Python Simpson的Rule Float对象错误

时间:2017-03-06 09:05:58

标签: python-3.x

我对辛普森一家的规则有疑问。这是说浮动对象不能被解释为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) 打印(结果)

1 个答案:

答案 0 :(得分:0)

n / 2在Python 3中返回一个浮点数,而range仅适用于整数。您需要使用整数除法(//):

range(1, (n // 2) + 1)