我是Python的新手,请温柔一点。
我真的不知道我的代码哪里出了问题。
这是我的代码:
import numpy as np
def epsilon(t):
epsilon = (1 - np.exp(-pow(t, 4)))
return epsilon
def r(t):
r = pow( (epsilon(t) - 16) / 4, 1/4)
return r
print(r(0))
由于 epsilon(0) = 0
,我期望(分析上)得到 r = (-16/4)^(1/4) = (-1)^(1/4)*sqrt(2) = exp(i pi /4)*sqrt(2) = 1 + 1 i
但实际上我得到的是:
RuntimeWarning: invalid value encountered in double_scalars
r = pow((4 * epsilon(t) - 16) / 4, 1/4)
nan
我已经尝试找到错误。如果我打印epsilon(0)
,我会得到预期的0,如果我手动设置epsilon(0)
如下:
def r(t):
r = pow( 0 - 16) / 4, 1/4)
return r
print(r(0))
我得到了 1 + 1j
。如果我去掉 的四次方根
,它就可以工作并且我会得到 -4
import numpy as np
def epsilon(t):
epsilon = (1 - np.exp(-pow(t, 4)))
return epsilon
def r(t):
r = (epsilon(t) - 16) / 4
return r
print(r(0))
所以为什么要这样做呢?
import numpy as np
def epsilon(t):
epsilon = (1 - np.exp(-pow(t, 4)))
return epsilon
def r(t):
r = pow( (epsilon(t) - 16) / 4, 1/4)
return r
print(r(0))
我遇到了这个错误?