当这里的Python数学域误差的代码:的t
范围从0到1(例如0.04)POW使用
exp = 1.79
def calc(t):
return pow(t - 1, exp)
的输入值。这段代码抛出了一个“数学领域异常”,但我不知道为什么。
我该如何解决这个问题?
当这里的Python数学域误差的代码:的t
范围从0到1(例如0.04)POW使用
exp = 1.79
def calc(t):
return pow(t - 1, exp)
的输入值。这段代码抛出了一个“数学领域异常”,但我不知道为什么。
我该如何解决这个问题?
如果t
范围从0到1,然后t - 1
范围从-1到0负数不能被提高到一个分数功率,既不pow
内置也不math.pow
。
pow和math.pow是一样的吗? – 2012-02-01 03:13:44
@Joan:号'pow()'支持3个参数,模数,而'math.pow()'不支持。 – 2012-02-01 03:14:42
几乎..内建'pow'可以接受模数 – wim 2012-02-01 03:15:29
将负数提升到分数指数不会导致实数。如果你坚持计算和使用它们,你将不得不使用cmath
,但请注意,为了利用结果,你需要一些复数的经验。
>>> cmath.exp(cmath.log(0.04 - 1) * 1.79)
(0.7344763337664206-0.5697182434534497j)
Python使用* j *而不是* i *?异端! – 2012-02-01 06:18:29
exp = 1.79
def calc(t):
return pow(t - 1, exp)
print calc(1.00) # t-1 is 0, there will be no error.
print calc(0.99) # t-1 is negative, will raise an error.
这是什么版本的Python?我在Python 3.2中尝试了'pow( - 。6,1.79)'并且得到了一个复杂的结果。 – 2012-02-01 03:13:36
这是2.6 .......... – 2012-02-01 03:14:03