我正在尝试求解这样的方程式,
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\****\Desktop\Python Stuff\****\***.py", line 7, in <module>
print(solve((x) + (A/math.sqrt(x**4)) - (B * math.exp(-x)), x))
File "C:\Users\****\AppData\Local\Programs\Python\Python37\lib\site-packages\sympy\core\expr.py", line 280, in __float__
raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float
为什么会这样?
答案 0 :(得分:2)
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:正如评论中指出的那样,您得到的实际错误是来自其他表达式。您需要在整个过程中予以解决。