我正在尝试解决这样的方程,
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:正如评论中指出的那样,您得到的实际错误来自不同的表达式。您需要始终解决此问题。