"Can't convert expression to float"符号错误



我正在尝试解决这样的方程,

from sympy.solvers import solve
from sympy import Symbol
import math
x = Symbol('x')
A, B = 1, 2
print(solve((x) + (A/math.sqrt(x**4)) - (B * math.exp(-x)), x))

Traceback (most recent call last):
  File "C:Users****DesktopPython Stuff*******.py", line 7, in <module>
    print(solve((x) + (A/math.sqrt(x**4)) - (B * math.exp(-x)), x))
  File "C:Users****AppDataLocalProgramsPythonPython37libsite-packagessympycoreexpr.py", line 280, in __float__
    raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float

为什么会这样?

x是一个sympy.Symbol,所以你不能用普通的math库函数使用它,因为他们不知道sympy。相反,请使用sympy函数,例如 sympy.sqrt

from sympy.solvers import solve
import sympy
x = sympy.Symbol('x')
A, B = 1, 2
print(solve((x) + (A / sympy.sqrt(x ** 4)) - (B * sympy.exp(-x)), x))

(这引发了另一个例外,sympy抱怨它没有解决这个问题的算法 - 如果你也有问题,你应该发布单独的问题。

PS:正如评论中指出的那样,您得到的实际错误来自不同的表达式。您需要始终解决此问题。

最新更新