我想找到一个积分 ((sin x)^8, {x,0,2*Pi}) 并尝试编写一个简单的程序,没有任何外部模块作为“数学”,它计算泰勒级数并将其总结为区间(0,2*Pi) 但有错误
Traceback (most recent call last):
File "E:\python\ShAD\sin.py", line 27, in <module>
sum+=(ser(i*2*3.1415926/k))**8
File "E:\python\ShAD\sin.py", line 21, in ser
sin_part+=((-1)**(j-1))*(a**(2j-1))/(fact(2*j-1))
ZeroDivisionError: 0.0 to a negative or complex power
突然发生。而且我只是看不到某些东西被零除或具有复数的幂,所有变量都只有真正的正值。“k”是序列数量和区间 (0,2*Pi) 除法的值。
sum=0
k=20
res=0
def fact(t):
if t==0 or t==1:
res=1
else:
res=1
for l in range(2,t+1):
res=res*l
return res
def ser(a):
sin_part=a
for j in range(2,k):
print fact(2*j-1)
sin_part+=((-1)**(j-1))*(a**(2j-1))/(fact(2*j-1))
print 'yay'
return sin_part
for i in range(0,k-1):
sum+=(ser(i*2*3.1415926/k))**8
print sum