我有以下代码,但在运行时,它会提供0.0
由于我尝试在2
区间内集成sin(x)
,因此应返回[0, pi]
的值。
请指教。
from math import sin, pi
def Rsum(a,b):
for i in range(1001):
s = 0
delx = float((b-a)/1000)
g = i*delx
h = (i+1)*delx
y_i = float(sin(a+g))
y_ii = float(sin(a+h))
s += 1/2 * (y_i + y_ii) * delx
return s
print Rsum(0,pi)
答案 0 :(得分:4)
1/2
是0
。它正在执行整数除法和舍入。您可以使用0.5
或1.0/2
来获得所需内容。
答案 1 :(得分:0)
试试这个:
from math import sin, pi
def Rsum(a,b):
for i in range(1001):
s = 0.0
delx = float(b-a)/1000.0
g = i*delx
h = (i+1.0)*delx
y_i = float(sin(a+g))
y_ii = float(sin(a+h))
s += 1.0/2.0 * (y_i + y_ii) * delx
#s += 1/2 * (sin(a+i*delx) + sin(a+(i+1)*delx)) * delx
return s
print Rsum(0,pi)
如果你有一个整数,你应该注意在浮点方程中使用整数值,然后用float()
转换它。如果您的代码中有一个常量,例如10
,那么请将其设为十进制... 10.0
。