[英]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.