簡體   English   中英

Python 問題:“溢出錯誤:Python int 太大,無法轉換為 C long”

[英]Python Problem: “OverflowError: Python int too large to convert to C long”

import sympy as sy
x = sy.symbols('x')
def f2(x,t,l):
    return 5*sy.log(x)+14388/((273+t)*x)-sy.log((1.1910*10**8)/l+1)
print(sy.solve(f2(x,35,80),x))

結果是:

溢出錯誤:Python int 太大,無法轉換為 C long

如何解決這個問題呢?

請檢查您的方程式。 似乎沒有解決方案:

>>> eq=f2(x,35,80);eq
5*log(x) - 14.2134480713559 + 327/(7*x)

function 中有一個最小值,並且在該點向上凸出並且為正:

>>> solve(eq.diff(x))
[327/35]
>>> eq.subs(x,_[0]).n()
1.95961247568333
>>> eq.diff(x,2).subs(x,Rational(327,35))
6125/106929

因此,如果常數稍微負一些,一切都會起作用:

>>> eq.subs(eq.atoms(Float).pop(),-20)
5*log(x) - 20 + 327/(7*x)
>>> ans=solve(_)
>>> [i.n(2) for i in ans]
[44., 3.3]

暫無
暫無

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

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