[英]“Can't convert expression to float” error with sympy
我试图解决这样的方程式,
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
为什么会这样呢?
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:正如评论中指出的那样,您得到的实际错误是来自其他表达式。 您将需要在整个过程中进行修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.