我正在尝试在python中计算正弦系列。
这是我正在使用的代码:
import math
x=int(raw_input('X = '))
i=1
r=0
s=1
t=1
for i in range(1,13,2):
fact=1
for j in range(1,i+1):
fact = fact * j
j=j+1
t = (s)*(math.pow(x,i)/fact)
r = r + t
s=s*(-1)
i+=2
print('sin('+str(x)+') = '+str(r))
它将最后计算的t值存储在r中,而不是更新它(r)。 请告诉我为什么会这样发生。
答案 0 :(得分:0)
也许你正在尝试做这样的事情(查看循环中的更正):
import math
x=float(raw_input('X = '))
#x = math.pi/2
xx = x
i=1
r=0
s=1
t=1
fact=1
for i in range(1,13,2):
t = s*xx/fact
r = r + t
s = -s
fact = fact * (i+1) * (i+2)
xx *= x*x
print('sin(%f) ~ %f' % (x,r))
print('sin(%f) = %f' % (x,math.sin(x)))
刚试过:
x = math.pi/3
并获得0.866025
x = math.pi/2
并获得1.000000