为什么 math.pow 会导致 ValueError: math 域错误?
代码如下:
exp = 1.79
def calc(t):
return pow(t - 1, exp)
t
的输入值范围为 0 到 1(例如 0.04)。这段代码引发了“数学域异常”,但我不确定为什么。
我该如何解决这个问题?
Here is the code:
exp = 1.79
def calc(t):
return pow(t - 1, exp)
The input values of t
range from 0 to 1 (e.g. 0.04). This code throws a "math domain exception," but I'm not sure why.
How can I solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果
t
的范围是 0 到 1,则t - 1
的范围是 -1 到 0。负数不能求分数幂,也不能通过pow< /code> 内置也不是
math.pow
。If
t
ranges from 0 to 1, thent - 1
ranges from -1 to 0. Negative numbers cannot be raised to a fractional power, neither bypow
builtin normath.pow
.负数乘以小数指数不会得到实数。如果您坚持计算并且使用它们,但请注意,您需要一些复数方面的经验才能使用结果。
Negative numbers raised to a fractional exponent do not result in real numbers. You will have to use
cmath
if you insist on calculating and using them, but note that you will need some experience in complex numbers in order to make use of the result.