0
我正在尋找一種方法來準確計算Python中負數的根。我相信,我看都與浮點不準確,但似乎應該有一個方式來獲得這樣簡單的東西是正確的答案:Python中負數的準確根源
>>(-1+0j)**0.1
(0.9510565162951535+0.3090169943749474j)
我希望在回答這種情況是(0+1j)
。雖然提高Python對第十個的反應接近-1,但我正在尋找一個更精確的方法得到的答案,即當提升到十分之一時,精確到-1,而不是真正接近-1。
有沒有一種方法可以正確地使用本機Python庫或sympy/numpy/scipy等來做到這一點?
沒有這樣的東西*複數的第十個根。 Python給了你一個*第十個根,直到浮點表示的極限。你想如何指定你想要得到的根? – user2357112 2015-02-24 20:40:34
值得注意的是,'0.1'不可能完全代表浮點數。嘗試'sum(0.1 for _ in range(8))'作爲它可能導致的舍入誤差的一個例子。 – Blckknght 2015-02-24 21:33:42
@ user2357112將它們全部取出是很好的做法,如果可以的話,避免處理浮點是理想的。這就是我提到sympy的原因 - 我寧願用整數和i來表示符號回答,而不是浮點數。 – Marty 2015-02-24 21:56:45