【发布时间】:2018-05-20 17:52:17
【问题描述】:
我为 Simpson 的规则集成编写了以下代码来近似 sin。方程式在此attachment 中。我为偶数和奇数项编写了单独的循环,因为它们在附件中分组显示。
import math
x1=0
x2=math.pi
N=6
delta_x=(x2-x1)/N
f=math.sin
sum=f(0)
#odd summation
for i in range (1,N+1):
sum=sum+f(x1+(2*i+1)*delta_x)
sum=4*sum
print(sum)
#even summation
for i in range(2,N+1):
sumeven=0
sumeven=sumeven+f(x1+(2*i)*delta_x)
sumeven=2*sumeven
sumeven=sumeven+f(N)
print(sumeven)
integral=(delta_x/3)*(sum+sumeven)
print(integral)
但是当我打印这些值时,它给了我非常小的负数。
谁能看到我的代码有什么问题?
【问题讨论】:
-
我还没有真正深入研究它,但我要检查的第一件事是你是否在某处得到整数除法。至少如果您使用的是 Python 2。
-
只看一下你的代码,你在循环中使用
sumeven=0inside,即在每次迭代时将sumeven值重置为0,这样你就只能得到最后一个值,而不是序列的总和。
标签: python integration simpsons-rule