簡體   English   中英

此Python錯誤“ ValueError:負數不能升為分數冪”是否有錯誤?

[英]Does this Python error 'ValueError: negative number cannot be raised to a fractional power' have an error?

我的以下代碼有問題:

- k_cav*((Tcav*b**3*Pr/((T3+T2)*v**2))**4.42)**0.091/b

它會引發標題中所示的錯誤,但我確保所有所有可能的值的小數冪(0.091)的底數均為正。 Tcav = abs(T3-T2), b = 0.01, Pr = 0.72, v = 1.34*10**(-5) ,T3和T2是開爾文的溫度約285。

應該提到的是,該計算是巨大計算的一部分,該計算通過牛頓-拉夫森數值根查找方法重復多次以確定多個溫度,並且誤差僅在多次迭代后才會發生。

任何機構都可以幫助我解決這個問題。 我不知道該怎么辦。

我建議使用try / except捕獲錯誤, 然后打印出變量的值。 這樣,您就可以確保看到罪魁禍首:

try:
    computedValue = - k_cav*((Tcav*b**3*Pr/((T3+T2)*v**2))**4.42)**0.091/b
except ValueError:
    print k_cav, Tcav, b, Pr, T3, T2, v
    raise
doWhateverYouDoWith(computedValue)

Python 2考慮了負數的優先級(在Python 3中已解決)。 看看這個 ,類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM