复化Simpson公式
def Simpson(func, n):
x_array = np.linspace(0, np.pi/2, 7)
item_0 = 1
item_1 = 0
for idx in range(1, n):
print(f"now is cal the seconod item with k = {idx}")
item_1 += func(x_array[idx])
item_1 *= 2
item_2 = 0
for idx in range(0, n):
real_x = (x_array[idx] + x_array[idx+1])/2
print(f"now is cal the third item with k = {idx}")
item_2 += func(real_x)
item_2 *= 4
item_3 = func(x_array[-1])
S = (x_array[-1] - x_array[0])/(6*n) * (item_0 + item_1 + item_2 + item_3)
return S