gpt4 book ai didi

python - ZeroDivisionError : 0. 0 的负数或复数幂

转载 作者:行者123 更新时间:2023-12-01 05:36:13 25 4
gpt4 key购买 nike

我想找到一个积分((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

最佳答案

And I just don't see where something is divided by zero or have power of complex number, all variables have only real positive value.

不正确。在第一次迭代时

for i in range(0,k-1):
sum+=(ser(i*2*3.1415926/k))**8

你有i=0,所以ser的参数是0,所以a == 0,你有 (a**(2j-1)),取 0 的复数次幂。

也许您的意思是a**(2*j-1)? Python 使用 j 作为虚数单位,因此 2j-1 是一个复数。

关于python - ZeroDivisionError : 0. 0 的负数或复数幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com